条件测试
条件测试别名布尔表达式
1. 条件测试
1)python检查是否相等时,区分大小写
2)使用and/or检查多个条件
3)检查特定值是否包含在列表中
2. if语句
if conditional_test:
do something
3. if-else语句
if conditional_test:
do something
else:
do something
注:条件通过执行第一个缩进语句,条件不通过执行下一缩进语句
4. if-elif-else语句
if conditional_test:
do something
elif conditional_test2:
do something
elif conditional_test3:
do something
else:
do something
注:1. 第一个elif下语句的执行条件,不符合conditional_test ,但符合conditional_test2,elif的执行仅当满足测试条件时才会执行。
2. else是一条保罗万象的语句,只要不满足任何if,elif中的条件测试,其中代码就会执行,这可能会引入无效或恶意数据,如果明确最终测试条件,可以考虑用elif代替else。
3. if-elif-else语句仅适用于只有一个条件满足的情况:即当有一条测试通过后,python会跳过其他测试执行语句
4. 测试多个条件
eg:餐厅点单时检查顾客菜单,多个判断条件叠加
requested_toppings = ['mushrooms', 'extra cheese']
if 'mushrooms' in requested_toppings:
print('Adding mushrooms.')
if 'pepperoni' in requested_toppings:
print('Adding pepperoni.')
if 'extra cheese' in requested_toppings:
print('Adding extra cheese.')
print('\nFinished making your pizza.')
Adding mushrooms.
Adding extra cheese.
Finished making your pizza.
如果使用if-elif-else语句,代码将不能正常运行
requested_toppings = ['mushrooms', 'extra cheese']
if 'mushrooms' in requested_toppings:
print('Adding mushrooms.')
elif 'pepperoni' in requested_toppings:
print('Adding pepperoni.')
elif 'extra cheese' in requested_toppings:
print('Adding extra cheese.')
print('\nFinished making your pizza.')
Adding mushrooms.
Finished making your pizza.
5. 使用if语句处理列表
假设菜单是固定我们可以用元组处理,菜单不固定我们可以使用列表
requested_toppings = ['mushrooms', 'extra cheese']
menu = ('mushrooms', 'pepperoni', 'extra cheese')
print(menu)
print(requested_toppings)
for requested_topping in requested_toppings:
if requested_topping not in menu:
print('Sorry, we are out of ' + requested_topping + ' now.')
else:
print('Adding '+ requested_topping + '.')
print('Finished making your pizza.')
print('\nend')
('mushrooms', 'pepperoni', 'extra cheese')
['mushrooms', 'extra cheese']
Adding mushrooms.
Adding extra cheese.
Finished making your pizza.
end
6. 如何确定列表不为空
requested_toppings = []
if requested_toppings:
for requested_topping in requested_toppings:
print('Adding ' + requested_topping + '.')
print('\nFinished making your pizza!')
else:
print('Are you sure you want a plain pizza?')
print(bool(requested_toppings))
Are you sure you want a plain pizza?
False