5.1 一个简单示例 1 2 3 4 5 6 names = ["zhang" , "wang" , "li" , "chen" ] for name in names: if name == "chen" : print(name.upper()) else : print(name)
输出结果为:
5.2 条件测试 每条if语句的核心都是一个值为True或False的表达式,这种表达式称为条件测试 。
5.2.1 检查是否相等 1 2 3 name = "chen" print(name == "chen" ) print(name == "wang" )
输出结果为:
这个相等运算符 在两边的值相等时返回True,否则返回False。
5.2.2 检查是否相等时忽略大小写 在Python中检查是否相等时区分大小写。
1 2 name = "chen" print(name == "Chen" )
输出结果为:
如果想忽略大小写,可以使用upper()与lower()函数将变量转换后的副本比较,且不会影响原变量。
5.2.3 检查是否不等 要判断两个值是否不等,可结合使用惊叹号和等号(!=),其中的惊叹号表示不 。
1 2 3 name = "chen" if name != "li" : print("the name is wrong!" )
输出结果为:
5.2.4 数值比较 条件语句中可包含各种数学比较,如等于、不等于、小于、小于等于、大于、大于等于:
1 2 3 4 5 6 7 age = 24 print(age == 24 ) print(age != 30 ) print(age < 18 ) print(age <= 42 ) print(age > 30 ) print(age >= 17 )
输出结果为:
1 2 3 4 5 6 True True False True False True
5.2.5 检查多个条件
使用and检查多个条件
如果每个测试都通过了,整个表达式就为True;如果至少一个测试没有通过,整个表达式就为False。
1 2 3 4 5 age1 = 24 if (age < 30 ) and (age > 18 ): print("you are young!" ) if (age >= 30 ) and (age <= 100 ): print("you are so old!" )
输出结果为:
使用or检查多个条件
关键字or也能检查多个条件,但只要至少一个条件满足,就能通过整个测试。仅当两个测试都没有通过时,使用or的表达式才为False。
1 2 3 4 5 6 numbers = [24 , 34 ] for number in numbers: if (number < 30 ) or (number > 50 ): print("you are right!" ) else : print("wrong!!!!" )
输出结果为:
1 2 you are right! wrong!!!!
5.2.6 检查特定值是否包含在列表中 要判断特定的值是否已包含在列表中,可使用关键字in 。
1 2 3 4 5 names = ["zhang" , "wang" , "li" ] if "chen" in names: print("chen in list!" ) else : print("chen not in list!" )
输出结果为:
5.2.7 检查特定值是否不包含在列表中 还有些时候,确定特定的值未包含在列表中很重要。在这种情况下,可使用关键字not in 。
1 2 3 4 5 names = ["zhang" , "wang" , "li" ] if "chen" not in names: print("chen not in list!" ) else : print("chen in list!" )
输出结果为:
5.2.8 布尔表达式 布尔表达式是条件测试的别名。与条件表达式一样,布尔表达式的结果要么为True,要么为False。
1 2 bool_value1 = True bool_value2 = False
5.3 if语句 if语句有很多种,选择使用哪种取决于要测试的条件数。
5.3.1 简单的if语句 最简单的if语句只有一个测试和一个操作:
1 2 if conditional_test: do something
1 2 3 age = 19 if age >= 18 : print("you are a men!" )
输出结果为:
5.3.2 if-else语句 1 2 3 4 5 age = 17 if age >= 18 : print("you are a men!" ) else : print("you are so young!" )
输出结果为:
5.3.3 if-elif-else结构 1 2 3 4 5 6 7 age = 12 if age < 4 : print("your cost is ¥0!" ) elif age < 18 : print("your cost is ¥25!" ) else : print("your cost is ¥40!" )
输出结果为:
5.3.4 使用多个elif代码块 1 2 3 4 5 6 7 8 9 10 age = 12 if age < 4 : price = 0 elif age < 18 : price = 25 elif age < 65 price = 40 else : price = 20 print(f"your cost is ¥{price} !" )
输出结果为:
5.3.5 省略else代码块 1 2 3 4 5 6 7 8 9 10 age = 12 if age < 4 : price = 0 elif age < 18 : price = 25 elif age < 65 price = 40 elif age >= 65 : price = 20 print(f"your cost is ¥{price} !" )
输出结果为:
5.3.6测试多个条件 1 2 3 4 5 names = ["zhang" , "wang" , "li" , "chen" ] if "chen" in names: print("chen in the list!" ) if "zhao" in names: print("zhao in the list!" )
输出结果为:
总之,如果只想执行一个代码块,就是用if-elif-else结构;如果要执行多个代码块,就使用一系列独立的if语句。
5.4 使用if语句处理列表 通过结合使用if语句和列表,对列表中特定的值做特殊处理,可高效地管理不断变化的情形。
5.4.1 检查特殊元素 1 2 3 4 5 6 names = ["zhang" , "wang" , "li" , "chen" ] my_name = "chen" if my_name in names: print(f"mr.{my_name} ,you are in the list!" ) else : print(f"mr.{my_name} ,you are not in the list!" )
输出结果为:
1 mr.chen,you are in the list!
5.4.2 确定列表不是空的 1 2 3 4 5 names = [] if names: print("list is not empty!" ) else : print("list is empty!" )
输出结果为:
在if语句中将列表名用作条件表达式时,Python将在列表至少包含一个元素时返回True,并在列表为空时返回False。