条件判断

1. 基本 if 语句

Python 使用 if 语句进行条件判断,基本语法如下:

if condition:
    # 条件为真时执行的代码块

示例:

age = 20
if age >= 18:
    print('你的年龄是', age)
    print('已成年')

2. if-else 语句

当需要处理条件不成立的情况时,可以使用 else

if condition:
    # 条件为真时执行的代码块
else:
    # 条件为假时执行的代码块

示例:

age = 3
if age >= 18:
    print('已成年')
else:
    print('未成年')

3. if-elif-else 语句

对于多个条件判断,可以使用 elif(else if 的缩写):

if condition1:
    # 条件1为真时执行
elif condition2:
    # 条件2为真时执行
else:
    # 其他情况执行

示例:

age = 12
if age >= 18:
    print('成年人')
elif age >= 13:
    print('青少年')
else:
    print('儿童')

4. 条件判断的执行顺序

Python 的条件判断是从上到下依次执行的,一旦某个条件为真,就会执行对应的代码块,并跳过其余的条件判断。

age = 20
if age >= 6:
    print('青少年')  # 这个会执行
elif age >= 18:
    print('成年人')  # 这个不会执行
else:
    print('儿童')    # 这个不会执行

5. 简化的条件判断

在 Python 中,以下值会被视为 False

  • None
  • False
  • 数值类型的 0
  • 空序列('', (), []
  • 空映射({}

其他所有值都被视为 True

示例:

x = 10
if x:  # 等同于 if x != 0:
    print('True')

6. 处理用户输入

当使用 input() 获取用户输入时,需要注意类型转换:

# 安全的输入处理方式
try:
    birth = int(input('请输入你的出生年份: '))
    if birth < 2000:
        print('00前')
    else:
        print('00后')
except ValueError:
    print('请输入有效的数字年份')

7. 实践案例: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('严重肥胖')

8. 现代 Python 的最佳实践

  1. 使用类型注解(Python 3.6+):
def check_age(age: int) -> str:
    if age >= 18:
        return '成年人'
    return '未成年人'
  1. 使用海象运算符(Python 3.8+)简化代码:
if (age := int(input('请输入年龄: '))) >= 18:
    print('成年人')
else:
    print('未成年人')
  1. 使用模式匹配(Python 3.10+):
match age:
    case age if age >= 18:
        print('成年人')
    case _:
        print('未成年人')

9. 常见错误与注意事项

  1. 忘记冒号 :
  2. 缩进错误
  3. 混淆 ===
  4. 未处理用户输入的类型转换
  5. 条件判断顺序错误

总结

Python 的条件判断提供了灵活的程序流程控制能力。通过合理使用 ifelifelse,可以构建复杂的逻辑判断结构。现代 Python 还提供了更多高级特性如模式匹配,可以进一步简化条件判断代码。