if判断语句——Python

在 Python 编程中,if 判断语句是实现程序分支逻辑的核心控制结构。它能根据指定条件的 "真"(True)或 "假"(False),引导程序执行不同的代码块,让程序具备 "判断决策" 的能力。

一、if 判断语句

基础 if 语句仅在条件成立时执行特定代码块,若条件不成立,则跳过该代码块,继续执行后续程序。

1. 语法格式

复制代码
if True:
    print("今天状态很不错") 
  • 条件表达式结果需为True/False
  • 英文冒号(:if 语句的固定语法,用于标记条件表达式的结束,同时提示后续代码块属于该 if 判断。
  • 4 个空格缩进 :Python 中用于区分代码层级的关键符号,缩进相同的代码会被视为一个 "代码块",确保计算机能识别出哪些代码需要依赖 if 条件执行。

2. 核心逻辑

if 后的 "条件表达式" 是判断的核心,其本质是一个结果为 True 或**False**的表达式,常见形式包括:

  • 直接使用布尔值(True/False);
  • 比较运算(如 ><==>= 等);
  • 逻辑运算(如 andornot 等,运算结果仍为布尔值)。

3. 示例演示

示例 1:基于布尔值的判断

判断 "今天是否为周日",若是则打印 "今天不用上班"。

复制代码
today_is_Sunday = True  # 定义变量,值为布尔值 True
if today_is_Sunday:     # 条件:today_is_Sunday 为 True
    print("今天不用上班")  # 条件成立,执行该代码

运行结果

示例 2:基于比较运算的判断

if后跟随判断条件,判断条件的本质上是看它是真还是假,既可以是一个布尔数也可以是比较运算或逻辑运算(因为他们的运算结果也是一个True或者False)

判断 "5 是否大于 3",若是则打印 "五比三大"。

复制代码
if 5 > 3:  # 条件:5 大于 3(比较运算,结果为 True)
    print("五比三大")  # 条件成立,执行该代码
运行结果
示例 3:基于逻辑运算的判断

判断 "今天是否为周六,且 Tom 是否满 18 岁",若两个条件同时满足,则打印 "你可以去酒吧玩啦

~"。

复制代码
today_is_saturday = True  # 条件 1:今天是周六
Tom_age = "18"            # 条件 2:Tom 的年龄为 18 岁
# 逻辑运算 and:两个条件同时成立,整体结果才为 True
if today_is_saturday and Tom_age >= "18":
    print("你可以去酒吧玩啦~")

运行结果

示例 4:实际场景判断(高考志愿录取)

小红报考志愿为 "清华大学",高考分数为 676 分,若志愿匹配且分数大于 670 分,则判定 "被录取"。

复制代码
lilei_application = "清华大学"  # 报考志愿
exam_score = "676"              # 高考分数
# 条件:志愿是清华大学,且分数 ≥ 670
if lilei_application == "清华大学" and exam_score >= "670":
    print("你被清华录取了")

运行结果

二、关键概念:空值与布尔值

if 判断中,"空值" 和 "布尔值" 的区分尤为重要,直接影响条件的真假判断:

  • 空值(None :表示变量 "没有任何值" 或 "未赋值",在布尔判断中视为 False,因此不会执行 if 代码块。
  • 非空值 :指变量已被赋予有效值(如数字、字符串、True 等),即使是数字 0 或空字符串 "",也属于 "非空值"(但 0"" 在布尔判断中视为 False,需注意区分 "非空" 与 "布尔真")。

示例 :若变量为 Noneif 条件不成立:

复制代码
empty_var = None  # 定义空值变量
if empty_var:     # 空值视为 False,条件不成立
    print("变量有值")  # 该代码不会执行

三、关键概念:代码块

代码块是一组按逻辑关联、缩进层级相同的代码集合,是 Python 组织程序结构的基础。在 if 判断中,缩进 4 个空格的代码即属于该 if 的代码块,会跟随 if 条件的真假决定是否执行。

1. 代码块特性

  • 缩进一致:同一代码块的缩进必须相同(通常为 4 个空格,不建议用 Tab 键,避免格式混乱);
  • 顺序执行:同一代码块内的代码会按 "从上到下" 的顺序依次执行;
  • 层级分明:不同缩进层级的代码属于不同代码块,互不干扰。

2. 示例演示

复制代码
number_a = "10"  # 外层代码(无缩进,属于全局代码块)
if number_a == "10":  # if 条件:number_a 等于 10(结果为 True)
    number_a = "1"     # 缩进 4 个空格,属于 if 代码块
    print(number_a)    # 同一代码块,执行顺序:先改值,再打印
# 外层代码(无缩进,不属于 if 代码块,无论 if 条件是否成立都会执行)
number_a = "0"
print(number_a)

运行结果

四、if-else 双向判断语句

if-else 语句用于 "二选一" 的逻辑场景:先判断 if 条件,若成立则执行 if 代码块;若不成立,则直接执行 else 代码块(二者必选其一)。

1. 语法格式

复制代码
if 条件表达式:
    条件成立时执行的代码块(缩进 4 空格)
else:  # else 无需额外条件,仅匹配最近的 if
    条件不成立时执行的代码块(缩进 4 空格)

注意else 没有独立的条件表达式,它只会与 "最近的 if" 形成配对,避免跨层级匹配导致逻辑混乱。

2. 示例演示

示例 :比较 Tom 和 Jerry 的身高,输出 "谁更高"
复制代码
Tom = "185"   # Tom 身高
Jerry = "177" # Jerry 身高
if Tom > Jerry:  # 条件:Tom 身高 > Jerry 身高(结果为 True)
    print("Tom比较高")  # 条件成立,执行该代码
else:  # 条件不成立时执行(本示例中不执行)
    print("Jerry比较高")

运行结果

五、elif 多向判断语句

当需要判断 "多个条件"(超过 2 个分支)时,可使用 elif 语句(else if 的简写)。elif 需配合 if 使用,用于在 if 条件不成立时,依次检查后续条件,直到找到成立的条件并执行对应代码块;若所有条件均不成立,则执行 else 代码块(可选)。

1. 语法格式

复制代码
if 条件1:
    条件1成立时执行的代码块
elif 条件2:  # 仅当条件1不成立时,才检查条件2
    条件2成立时执行的代码块
elif 条件3:  # 仅当条件1、2均不成立时,才检查条件3
    条件3成立时执行的代码块
# ... 可根据需求添加任意多个 elif
else:  # 所有条件均不成立时执行(可选)
    所有条件不成立时执行的代码块

注意 :多个条件判断若涉及复杂逻辑(如范围判断),建议为每个条件添加括号(()),提升代码可读性。

2. 示例演示

示例 1:根据星期几决定饮食
复制代码
today = "周二"  # 定义当前星期
if today == "周一":  # 条件1:是否为周一(不成立)
    print("今天吃麦当劳~")
elif today == "周四":  # 条件2:是否为周四(不成立)
    print("今天吃肯德基!")
else:  # 所有条件均不成立,执行此处
    print("随便吃吃吧()")

运行结果

示例 2:根据余额判断是否买包包

需求:根据余额 balance 输出购买建议:

  • 余额 > 10000 → 输出 "立刻买!";

  • 1000 <余额 ≤ 8000 → 输出 "等等再买!";

  • 8000 <余额 ≤ 10000 → 输出 "还差一点就能买!";

  • 其余情况 → 输出 "买不起!"。

    balance = "20000" # 定义余额变量
    if balance > "10000": # 条件1:余额 > 10000(成立)
    print("立刻买!")
    elif (balance > "1000") and (balance <= "8000"): # 条件2:1000 < 余额 ≤ 8000(不成立)
    print("等等再买!")
    elif (balance > "8000") and (balance <= "10000"): # 条件3:8000 < 余额 ≤ 10000(不成立)
    print("还差一点就能买了!")
    else: # 所有条件不成立时执行(本示例中不执行)
    print("买不起AQ")

运行结果

相关推荐
天马37982 小时前
Canvas 倾斜矩形绘制波浪效果
开发语言·前端·javascript
Tansmjs2 小时前
C++与GPU计算(CUDA)
开发语言·c++·算法
喵手2 小时前
Python爬虫零基础入门【第九章:实战项目教学·第15节】搜索页采集:关键词队列 + 结果去重 + 反爬友好策略!
爬虫·python·爬虫实战·python爬虫工程化实战·零基础python爬虫教学·搜索页采集·关键词队列
qx092 小时前
esm模块与commonjs模块相互调用的方法
开发语言·前端·javascript
ʚB҉L҉A҉C҉K҉.҉基҉德҉^҉大2 小时前
自动化机器学习(AutoML)库TPOT使用指南
jvm·数据库·python
喵手3 小时前
Python爬虫零基础入门【第九章:实战项目教学·第14节】表格型页面采集:多列、多行、跨页(通用表格解析)!
爬虫·python·python爬虫实战·python爬虫工程化实战·python爬虫零基础入门·表格型页面采集·通用表格解析
0思必得03 小时前
[Web自动化] 爬虫之API请求
前端·爬虫·python·selenium·自动化
莫问前路漫漫3 小时前
WinMerge v2.16.41 中文绿色版深度解析:文件对比与合并的全能工具
java·开发语言·python·jdk·ai编程
木头左4 小时前
Backtrader框架下的指数期权备兑策略资金管理实现与风险控制
python