if语句
格式
if 表达式 :
语句块
else:
语句块
条件测试
检查是否相等
每条if语句的核心都是一个值为 False 和 True 的表达式,这个表达式称为条件测试
python对于True的表达式后面的语句就执行,False就忽略
cars = ['audi', 'bwm', 'subraw', 'toyata']
for car in cars:
if car == 'bwm': # 冒号不要忘记
# == 运算符判断运算符两端的值是否相等,相等返回 true ,否则 false
print(car.upper())
else:
print(car)
#与for语句类似 if 和 else 管到没有缩进的地方

检查是否相等时忽略大小写
python在检查是否相等时 是区分大小写的,这个有其需要的地方
如果大小写无关紧要(比如验证码输入时),可以采用如下做法
car = 'AuDi'
print(car.lower() == 'audi')
#当然upper() 也可以
print(car) #这里并没有影响car关联的变量值

检查是否不相等
requested_topping = 'mushroom'
if requested_topping != 'anchovies':
# != 如果表达式两边不相等返回true ,相等返回 false
print("Hold the anchovies")

数值比较
age = 20
print(age == 20)
print(age <= 10)
print(age < 23)
print(age > 34)
print(age >= 12)

检查多个条件
使用and(交集 && 与)
and可以在一个表达式使用多个,只有所有条件都满足时才为True,否则为 False
age = 23
if age > 18 and age < 35:
print("青年")

使用or(并集 || 或)
or 与 and 语句一样可以在表达式使用多个,
只要有一个条件满足就返回 True , 所有条件都不满足才会返回False
age_1 = 23
age_2 = 10
if age_1 > 18 or age_2 > 18:
print("有成年人陪护")

检查特定值是否包含在列表或元组中
要判断特定值是否在列表或元组中需要用到关键字 in
cars = ['audi', 'bwm', 'subaru']
print('audi' in cars)
cars_list = ('audi', 'bwm')
if 'audi' in cars :
print("Yes")
if 'audi' in cars_list:
print("Yes")

检查特定值是否不包含在列表或元组中
有时候你需要判断特定值未包含在当前列表中
比如禁止在论坛发言的人(这个数据量一般比允许的小的多,用in的话时间复杂度太高)
the_bad_guys = ['david', 'john', 'lisa']
user = 'marie'
if user not in the_bad_guys:
print(f"{user.title()}, you can post a response if you wish")

布尔表达式
布尔表达式通常用于记录条件,是一种高效的方式
game_active = True
can_edit = False
# 注意不能写成 true 和 false
使用if—else语句
注意if 和 else 后面都要跟 冒号
age = 18
if age >= 18:
print("You are old enough to vote!")
print("Please register to vote as soon as you turn 18!")
else:
print("You are too young to vote!")

使用if—elif—else语句
有时需要分别检测两个甚至多个条件
age = 3
#会依次检查每个条件,
# 如果遇到了一个条件通过测试,python会执行该条件下的语句并跳过接下来条件检测
if age < 4:
print("cost ¥0")
elif age < 18: # 此处已经是 4 ~ 18
print("cost ¥25")
else:
print("cost ¥40")

当然上面的elif可以更多
使用if处理列表
确定列表是不是空的
requested_toppings = []
if requested_toppings: # 如果列表不空就执行下列语句, 也可以用 len 方法
for requested_topping in requested_toppings:
print(f"Add {requested_topping}!")
else:
print("Are you sure you want a plain pizza?")

浙公网安备 33010602011771号