读书笔记「Python编程:从入门到实践」_5.if语句
5.1 一个简单示例
cars = ['audi', 'bmw', 'subaru', 'toyota'] for car in cars: if car == 'bmw': print(car.upper()) else: print(car.title())
Audi BMW Subaru Toyota
5.2 条件测试
每条if 语句的核心都是一个值为True 或False 的表达式,这种表达式被称为条件测试 。
5.2.1 检查是否相等
相等运算符 两个等号(== )
5.2.2 检查是否相等时不考虑大小写
在Python中检查是否相等时区分大小写,例如,两个大小写不同的值会被视为不相等:
如果大小写很重要,这种行为有其优点。但如果大小写无关紧要,而只想检查变量的值,可将变量的值转换为小写,再进行比较
5.2.3 检查是否不相等
要判断两个值是否不等,可结合使用惊叹号和等号(!= )
5.2.4 比较数字
检查数值非常简单,条件语句中可包含各种数学比较,如小于、小于等于、大于、大于等于
5.2.5 检查多个条件
1. 使用and 检查多个条件 2. 使用or 检查多个条件
5.2.6 检查特定值是否包含在列表中
要判断特定的值是否已包含在列表中,可使用关键字in 。
5.2.7 检查特定值是否不包含在列表中
确定特定的值未包含在列表中很重要;可使用关键字not in
5.2.8 布尔表达式
条件测试的别名。与条件表达式一样,布尔表达式的结果要么为True ,要么为False 。
car="bmw" print(car=="Bmw") print(car!="Bmw") print(2>1) print(2==1) print(2<1) print(2<1 and 2>1) print(2<1 or 2>1) cars = ['audi', 'bmw', 'subaru', 'toyota'] print(car in cars) print(car not in cars)
False True True False False False True True False
5.3 if语句
5.3.1 简单的if语句
最简单的if 语句只有一个测试和一个操作:
if conditional_test: do something
如果条件测试的结果为True ,Python就会执行紧跟在if 语句后面的代码;否则Python将忽略这些代码。
在if 语句中,缩进的作用与for 循环中相同。如果测试通过了,将执行if 语句后面所有缩进的代码行,否则将忽略它们。
5.3.2 if-else语句
经常需要在条件测试通过了时执行一个操作,并在没有通过时执行另一个操作;在这种情况下,可使用Python提供的if-else 语句。if-else 语句块类似于简单的if 语句,
但其中的else 语句让你能够指定条件测试未通过时要执行的操作。
5.3.3 if-elif-else结构
经常需要检查超过两个的情形,为此可使用Python提供的if-elif-else 结构。Python只执行if-elif-else 结构中的一个代码块,它依次检查每个条件测试,直到遇到通过
了的条件测试。测试通过后,Python将执行紧跟在它后面的代码,并跳过余下的测试。
5.3.4 使用多个elif代码块
可根据需要使用任意数量的elif 代码块
5.3.5 省略else代码块
Python并不要求if-elif 结构后面必须有else 代码块。在有些情况下,else 代码块很有用;而在其他一些情况下,使用一条elif 语句来处理特定的情形更清晰
else 是一条包罗万象的语句,只要不满足任何if 或elif 中的条件测试,其中的代码就会执行,这可能会引入无效甚至恶意的数据
5.3.6 测试多个条件
if-elif-else 结构功能强大,但仅适合用于只有一个条件满足的情况:遇到通过了的测试后,Python就跳过余下的测试,让你能够测试一个特定的条件。
然而,有时候必须检查你关心的所有条件。在这种情况下,应使用一系列不包含elif 和else 代码块的简单if 语句。
在可能有多个条件为True ,且你需要在每个条件为True时都采取相应措施时,适合使用这种方法。
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!") age = 12 if age < 4: price = 0 elif age < 18: price = 5 elif age < 65: price = 10 elif age >= 65: price = 5 print("\nYour pizza cost is $" + str(price) + ".")
Adding mushrooms. Adding extra cheese. Finished making your pizza! Your pizza cost is $5.
5.4 使用if语句处理列表
通过结合使用if 语句和列表,可完成一些有趣的任务:对列表中特定的值做特殊处理;
5.4.1 检查特殊元素
循环配合if语句进行检查
5.4.2 确定列表不是空的
if配合循环进行操作
items = [] if items: for item in items: print("hi") print("items has item") else: print("items do not has item")
items do not has item
5.4.3 使用多个列表
items=list(range(1,10)) for item in items: if item==1: print("1st") elif item==2: print("2nd") elif item==3: print("3rd") else: print(str(item)+"th") items2=[11,3,5,23] for item in items2: if item in items: print(str(item)+":true") else: print(str(item)+":false")
1st 2nd 3rd 4th 5th 6th 7th 8th 9th 11:false 3:true 5:true 23:false
5.5 设置if语句的格式
在条件测试的格式设置方面,PEP 8提供的唯一建议是,在诸如== 、>= 和<= 等比较运算符两边各添加一个空格,例如,if age < 4: 要比if age<4: 好。
这样的空格不会影响Python对代码的解读,而只是让代码阅读起来更容易
....上面例子的代码 格式不好,见谅...