编程时经常需要检查一系列条件,并据此决定采取什么措施。
1、简单示例
cars = ['audi', 'bwm', 'subaru', 'toyota'] # 一个 = 是赋值
for car in cars:
if car == 'bwm': # 两个 == 是比较 结果只会是 True 或 False
print(car.upper())
else:
print(car.title())
# 也可写成
cars = ['audi', 'bwm', 'subaru', 'toyota']
for car in cars:
if car != 'bwm': # != 是不等于
print(car.title())
else:
print(car.upper())
输出是:
再例如:
numbers = list(range(1, 11))
for number in numbers:
if number >= 5: # 条件语句中可以包含各种数学比较 大于 > 、小于 < 、大于等于 >= 、小于等于 <=
print(number)
输出是:
if 是关键字,后面跟的是比较体,正确返回True,否则返回False,如果返回True,则执行if语句里面的语句,否则忽略。
2、检查多个条件
2.1、and 检查多个条件
numbers = list(range(1, 11))
for number in numbers:
if number >= 5 and number <= 9: # 只有 and 连接的多个条件表达式同时成立时,才会返回True,有任何一个条件表达式不成立,则返回False
print(number)
else:
print('false ==== ' + str(number))
输出是:
2.2、or 检查多个条件
numbers = list(range(1, 11))
for number in numbers:
if number == 3 or number == 5 or number == 9: # or 连接的多个表达式,能满足其中任何一个表达式,就会返回True
print(number)
else:
print('false ==== ' + str(number))
输出是:
2.3 检查特定值是否在列表中
使用 in 和 not in
numbers = list(range(1, 11))
print(11 in numbers)
print(2 in numbers)
print('--------------------')
print(11 not in numbers)
print(2 not in numbers)
输出是:
3、 几种 IF 语句介绍
3.1 简单 if 语句
if conditional_test:
do something
在第1行中,可包含任何条件测试,而在紧跟在测试后面的缩进代码块中,可执行任何操作。如果条件测试的结果为True,Python就会执行紧跟在 if 语句后面的代码;否则Python将忽略这些代码。
3.2 if - else 语句
if conditional_test:
do something
else:
do something
经常需要在条件测试通过了执行一些操作,并在没有通过时执行另一操作;在这种情况下,可使用Python提供的 if-else 语句。if-else语句块类似于简单的 if 语句,单其中的 else 语句让你能够指定条件测试未通过是要执行的操作。
3.3 if-elif-else 结构
if conditional_test:
do something
elif conditional_test_2:
do something
elif conditional_test_3:
do something
.
.
.
else:
do something
经常需要检查超过两个的情形,为此可使用Python提供的 if-elis-else 结构。Python只执行 if-elif-else 结构中的一个代码块,他一次检查每个条件测试,直到遇见通过了的条件测试。测试通过后,Python将执行紧跟在他后面的代码,并跳过余下的测试。
numbers = list(range(1, 11))
for number in numbers:
if number >= 1 and number <= 3:
print('condition 1 : ' + str(number))
elif number > 3 and number < 6: # 可以有多个 elif 条件
print('condition 2 : ' + str(number))
else:
print('condition 3 : ' + str(number))
输出是:
3.4 省略 else 模块
else 模块可以省略
numbers = list(range(1, 11))
for number in numbers:
if number >= 1 and number <= 3:
print('condition 1 : ' + str(number))
elif number > 3 and number < 6:
print('condition 2 : ' + str(number))
输出是:
3.5 测试多个条件
当在测试多个条件时,也可以连续使用多个 if 语句
numbers = list(range(1, 11))
for number in numbers:
if number >= 1 and number <= 3:
print('condition 1 : ' + str(number))
if number > 3 and number < 6:
print('condition 2 : ' + str(number))
if number > 6 and number < 9:
print('condition 3 : ' + str(number))
输出是:
4、使用 if 语句处理列表
4.1 确定列表不是空的
temp_list = []
if temp_list:
print('The temp_list is not empty!')
else:
print('The temp_list is empty!')
输出是:
4.2 使用多个列表
short_numbers = list(range(1, 4))
long_numbers = list(range(1, 8))
for number in short_numbers:
if number in long_numbers:
print('In. True')
else:
print('Don`t in. False')
输出是:
4.3 设置 if 语句的格式
在条件测试的格式设置方面,PEP 8提供的唯一建议是,在诸如==、>=和<=等比较运算符两边各添加一个空格,例如,if age < 4要比 if age<4 好。这样的空格不会影响Python对代码的解读,而只是让代码阅读起来更容易。
其他的数学运算符如: + - * / ** 等,也建议使用以上建议。