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")

运行结果

相关推荐
BD_Marathon1 分钟前
设计模式——依赖倒转原则
java·开发语言·设计模式
火车叼位2 分钟前
脚本伪装:让 Python 与 Node.js 像原生 Shell 命令一样运行
运维·javascript·python
孤狼warrior13 分钟前
YOLO目标检测 一千字解析yolo最初的摸样 模型下载,数据集构建及模型训练代码
人工智能·python·深度学习·算法·yolo·目标检测·目标跟踪
devmoon20 分钟前
在 Polkadot Runtime 中添加多个 Pallet 实例实战指南
java·开发语言·数据库·web3·区块链·波卡
Katecat9966323 分钟前
YOLO11分割算法实现甲状腺超声病灶自动检测与定位_DWR方法应用
python
Evand J23 分钟前
TDOA(到达时间差)的GDOP和CRLB计算的MATLAB例程,论文复现,附参考文献。GDOP:几何精度因子&CRLB:克拉美罗下界
开发语言·matlab·tdoa·crlb·gdop
野犬寒鸦24 分钟前
从零起步学习并发编程 || 第七章:ThreadLocal深层解析及常见问题解决方案
java·服务器·开发语言·jvm·后端·学习
云姜.27 分钟前
java抽象类和接口
java·开发语言
xyq202437 分钟前
Pandas 安装指南
开发语言
xixixin_1 小时前
【JavaScript 】从 || 到??:JavaScript 空值处理的最佳实践升级
开发语言·javascript·ecmascript