3. if 语句
3.1 基本概念
编程时经常需要检查一系列条件,并据此决定采取什么措施。if 语句可以让你能够检查程序当前的状态,并据此采取相应措施。
3.2 条件测试
每条 if 语句的核心都是一个值为 True 或 False 的表达式,这种表达式被称为条件测试。
- 比较两个值
= 赋值运算符,== 比较运算符
car = 'bmw'
print(car == 'bmw')
输出:
True
进程已结束,退出代码 0
检查数值
age = 18
print(age == 18)
输出:
True
进程已结束,退出代码 0
检查是否不等
age = 18
print(age != 18)
输出:
False
进程已结束,退出代码 0
- 比较两个值时是否要考虑大小写
Python 中检查是否相等时区分大小写,例如两个大小写不相等的值会被视为不相等。
car = 'BMW'
print(car == 'bmw')
输出:
False
进程已结束,退出代码 0
如果大小写无关紧要,而只想检查变量的值,可将变量的值转换为小写再进行比较。
car = 'BMW'
print(car.lower() == 'bmw')
输出:
True
进程已结束,退出代码 0
- 检查多个条件(and、or)
使用 and 关键字时,所有条件都满足才为 True,否则就为 False。
age0 = 22
age1 = 18
print(age0 >= 21 and age1 >= 21)
print(age0 >= 21 and age1 <= 20)
输出:
False
True
进程已结束,退出代码 0
使用 or 关键字时,只要一个条件满足就为 True,全部不满足才为 False。
age0 = 22
age1 = 18
print(age0 >= 21 or age1 <= 20)
print(age0 <= 21 or age1 >= 21)
输出:
True
False
进程已结束,退出代码 0
- 检查特定值是否包含在列表中
判断特定值是否包含在列表中,可使用 in 和 not in 两种关键字。
place = ['beijing', 'shanghai', 'guagnzhou']
print('beijing' in place)
print('shanghai' not in place)
输出:
True
False
进程已结束,退出代码 0
- 布尔表达式
布尔表达式是条件测试的别名,与条件测试一样,布尔表达式的结果也是 True 或 False,在跟踪程序状态或程序中要条件方面布尔值提供了一种高效方式。
game = True
can_edit = False
3.3 if 语句
- 简单 if 语句
age = 19
if age >= 18:
print('你成年了!')
输出:
你成年了!
进程已结束,退出代码 0
- if-else 语句
age = 12
if age >= 18:
print('你成年了!')
else:
print('你还未成年!')
输出:
你还未成年!
进程已结束,退出代码 0
- if-elif-else 语句
age = 12
if age < 4:
print('你的门票费为0元!')
elif age < 18:
print('你的门票费为5元!')
else:
print('你的门票费为10元!')
输出:
你的门票费为5元!
进程已结束,退出代码 0
- 多个 elif 语句
age = 25
if age < 4:
print('你的门票费为0元!')
elif age < 18:
print('你的门票费为5元!')
elif age < 65:
print('你的门票为10元')
else:
print('你的门票费为5元!')
输出:
你的门票为10元
进程已结束,退出代码 0
- 测试多个条件
if-elif-else 结构功能强大,但只适用于只有一个条件满足的情况,遇到通过测试后 python 就会跳过剩下的测试,非常高效;当必须检查所有条件时可使用多个简单 if 语句来实现。
place = ['beijing', 'shanghai', 'hangzhou']
if 'beijing' in place:
print('I Love beijing')
if 'shanghai' in place:
print('I Love shanghai')
if 'hangzhou' in place:
print('I Love hangzhou')
输出:
I Love beijing
I Love shanghai
I Love hangzhou
进程已结束,退出代码 0
- 确定列表不是空的
在运行 for 循环前需判断列表是否为空,此时可用到 if-else,如果列表为空则执行 else 后的代码,否则执行 if 中的代码。
place = []
if place:
print('place list is not empty')
else:
print('place lise is empty')
输出:
place lise is empty
进程已结束,退出代码 0