Python基础:条件判断完全指南

0 阅读4分钟

Python基础:条件判断完全指南

前言

在编程中,条件判断是控制程序流程的核心工具。Python 提供了 ifelifelse 等关键字来实现分支逻辑,让程序能够根据不同的条件执行不同的代码块。

本文将系统讲解条件判断的语法、执行顺序、常见陷阱以及现代 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

  • None
  • False
  • 数值类型的 0(包括 00.00j
  • 空序列(''()[]
  • 空映射({}
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」

📚 相关推荐阅读


如果这篇文章对你有帮助,欢迎点赞、评论、收藏,你的支持是我持续分享的动力!🎉