Python基础:条件判断完全指南
前言
在编程中,条件判断是控制程序流程的核心工具。Python 提供了 if、elif、else 等关键字来实现分支逻辑,让程序能够根据不同的条件执行不同的代码块。
本文将系统讲解条件判断的语法、执行顺序、常见陷阱以及现代 Python 中的高级特性,帮助你写出更清晰、更健壮的判断逻辑。
一、基本 if 语句
1.1 语法结构
if condition:
# 条件为真时执行的代码块
1.2 示例:判断成年
age = 20
if age >= 18:
print('你的年龄是', age)
print('已成年')
输出:
你的年龄是 20
已成年
📌 注意:
if语句后的代码块必须缩进(通常使用 4 个空格),否则会报错。
二、if-else 语句
当需要处理条件不成立的情况时,可以使用 else。
2.1 语法结构
if condition:
# 条件为真时执行
else:
# 条件为假时执行
2.2 示例:成年/未成年判断
age = 3
if age >= 18:
print('已成年')
else:
print('未成年')
输出:
未成年
三、if-elif-else 语句
对于多个条件判断,可以使用 elif(else if 的缩写)来串联多个分支。
3.1 语法结构
if condition1:
# 条件1为真时执行
elif condition2:
# 条件2为真时执行
else:
# 其他情况执行
3.2 示例:年龄分段
age = 12
if age >= 18:
print('成年人')
elif age >= 13:
print('青少年')
else:
print('儿童')
输出:
儿童
四、条件判断的执行顺序
Python 的条件判断是从上到下依次执行的,一旦某个条件为真,就会执行对应的代码块,并跳过其余的条件判断。
age = 20
if age >= 6:
print('青少年') # 这个会执行
elif age >= 18:
print('成年人') # 这个不会执行
else:
print('儿童') # 这个不会执行
输出:
青少年
⚠️ 注意:这里的逻辑可能不符合预期,因为
age >= 6先成立,所以后面的elif不会被检查。条件顺序很重要。
五、简化的条件判断(真假值)
在 Python 中,以下值会被视为 False,其他值均视为 True:
NoneFalse- 数值类型的
0(包括0、0.0、0j) - 空序列(
''、()、[]) - 空映射(
{})
x = 10
if x: # 等同于 if x != 0:
print('True')
输出:
True
利用这一特性,可以写出更简洁的条件表达式。
六、处理用户输入
使用 input() 获取用户输入时,返回的是字符串,需要根据情况转换为数字等类型,并处理可能的异常。
6.1 安全的输入处理
try:
birth = int(input('请输入你的出生年份: '))
if birth < 2000:
print('00前')
else:
print('00后')
except ValueError:
print('请输入有效的数字年份')
七、实践案例:BMI 计算
height = 1.75 # 单位:米
weight = 80.5 # 单位:千克
bmi = weight / (height ** 2)
if bmi < 18.5:
print('体重过轻')
elif 18.5 <= bmi < 25:
print('体重正常')
elif 25 <= bmi < 28:
print('体重过重')
elif 28 <= bmi < 32:
print('肥胖')
else:
print('严重肥胖')
八、现代 Python 的最佳实践
8.1 使用类型注解(Python 3.6+)
def check_age(age: int) -> str:
if age >= 18:
return '成年人'
return '未成年人'
8.2 使用海象运算符 :=(Python 3.8+)
将赋值与判断合二为一,简化代码:
if (age := int(input('请输入年龄: '))) >= 18:
print('成年人')
else:
print('未成年人')
8.3 使用模式匹配 match(Python 3.10+)
match age:
case age if age >= 18:
print('成年人')
case _:
print('未成年人')
九、常见错误与注意事项
| 错误类型 | 说明 | 正确做法 |
|---|---|---|
忘记冒号 : | if age >= 18 缺少冒号 | if age >= 18: |
| 缩进错误 | 代码块缩进不一致 | 统一使用 4 个空格 |
混淆 = 与 == | if age = 18 是赋值 | if age == 18 是比较 |
| 未处理类型转换 | input() 返回字符串,直接与数字比较会出错 | 使用 int() 或 float() 转换 |
| 条件顺序错误 | 条件顺序导致预期分支不执行 | 检查条件的先后逻辑 |
十、总结
| 结构 | 用途 | 示例 |
|---|---|---|
if | 单一条件判断 | if x > 0: |
if-else | 二分支判断 | if ... else ... |
if-elif-else | 多分支判断 | if ... elif ... else ... |
| 真假值简化 | 利用 Python 的真假值规则简化条件 | if x: |
| 模式匹配 | Python 3.10+ 的高级分支方式 | match ... case |
条件判断是编程中最基础也最重要的控制结构之一。掌握好 if 系列语句的用法、执行顺序以及现代 Python 提供的新特性,可以让你的代码逻辑更清晰、更健壮。
💡 Python 学习不走弯路! 体系化实战路线:基础语法 · 异步Web开发 · 数据采集 · 计算机视觉 · NLP · 大模型RAG实战 —— 全在「道满PythonAI」!
📚 相关推荐阅读
如果这篇文章对你有帮助,欢迎点赞、评论、收藏,你的支持是我持续分享的动力!🎉