条件判断
1. if 语句基本语法
基本格式
if <条件判断>:
<执行语句>
关键点:
- 条件判断后必须有冒号
: - 执行语句必须缩进(通常4个空格)
- 如果条件为
True,执行缩进的代码块;否则跳过
age = 20
if age >= 18:
print('your age is', age)
print('adult')
2. if-else 语句
基本格式
if <条件判断>:
<执行1>
else:
<执行2>
逻辑:如果 if 判断是 False,执行 else 块
age = 3
if age >= 18:
print('adult')
else:
print('teenager')
3. if-elif-else 语句
基本格式
if <条件判断1>:
<执行1>
elif <条件判断2>:
<执行2>
elif <条件判断3>:
<执行3>
else:
<执行4>
说明:
elif是else if的缩写- 可以有多个
elif else是可选的
age = 3
if age >= 18:
print('adult')
elif age >= 6:
print('teenager')
else:
print('kid')
4. 执行特点(重要)
从上往下匹配
- 执行顺序:从上往下判断
- 停止条件:遇到第一个
True的条件,执行对应代码块后,立即忽略后续所有elif和else
age = 20
if age >= 6:
print('teenager') # ✅ 执行这里
elif age >= 18:
print('adult') # ❌ 不会执行(已被上面的if拦截)
else:
print('kid') # ❌ 不会执行
记忆:一旦匹配成功,后续全部跳过
5. 条件判断的简写
简写规则
只要 x 是以下情况,就判断为 True:
- 非零数值:
1,-1,3.14等 - 非空 字符串:
'hello','0'等 - 非空list:
[1, 2],['a']等 - 非空tuple:
(1, 2)等 - 非空dict:
{'a': 1}等
以下情况判断为 False:
- 零值:
0,0.0 - 空值:
None - 空字符串:
'' - 空集合:
[],(),{}
if x: # 等价于 if x != 0 and x != '' and x != [] 等
print('True')
记忆口诀:非零非空为True,零值空值为False
6. input() 与类型转换
input() 返回字符串
input() 函数总是返回字符串类型(str),不能直接与整数比较
# ❌ 错误示例
birth = input('birth: ')
if birth < 2000: # TypeError: str 不能与 int 比较
print('00前')
类型转换
使用 int() 函数将字符串转换为整数:
# ✅ 正确示例
s = input('birth: ')
birth = int(s) # 字符串转整数
if birth < 2000:
print('00前')
else:
print('00后')
注意事项
- 非法输入会报错:如果 输入的不是数字(如
'abc'),int()会抛出ValueError - 错误处理:后续章节会讲到如何捕获和处理这类错误
s = input('birth: ')
birth = int(s) # 如果输入 'abc',这里会报 ValueError
7. 常见操作速查
基本结构
# 单一判断
if condition:
do_something()
# 二选一
if condition:
do_a()
else:
do_b()
# 多条件判断
if condition1:
do_1()
elif condition2:
do_2()
elif condition3:
do_3()
else:
do_default()
条件运算符
# 比较运算符
== # 等于
!= # 不等于
> # 大于
< # 小于
>= # 大于等于
<= # 小于等于
# 逻辑运算符
and # 与
or # 或
not # 非
示例
# 年龄判断
age = 20
if age >= 18:
print('成年人')
elif age >= 6:
print('青少年')
else:
print('儿童')
# 简写判断
name = 'Bob'
if name: # 非空字符串为True
print(f'Hello, {name}')
# 类型转换
score = input('请输入分数: ')
score = int(score)
if score >= 90:
print('优秀')
elif score >= 60:
print('及格')
else:
print('不及格')
8. 快速记忆总结
- 基本结构:
if→elif→else,每个后面都要有冒号: - 执行特点:从上往下,遇到
True就执行并停止 - 缩进规则:执行语句必须缩进(4个空格)
- 简写判断:非零非空为
True,零值空值为False - 类型转换:
input()返回str,需要用int()转换才能与数字比较 - 常见错误:忘记冒号、缩进错误、类型不匹配
9. 常见错误
错误1:忘记冒号
# ❌ 错误
if age >= 18
print('adult')
# ✅ 正确
if age >= 18:
print('adult')
错误2:缩进错误
# ❌ 错误
if age >= 18:
print('adult') # 没有缩进
# ✅ 正确
if age >= 18:
print('adult') # 正确缩进
错误3:类型不匹配
# ❌ 错误
age = input('age: ')
if age >= 18: # str 与 int 不能直接比较
# ✅ 正确
age = int(input('age: '))
if age >= 18:
print('adult')