1. 一个简单的示例
打印汽车列表中的所有汽车名字,对于大多数汽车,都应该以首字母大写的方式打印其名字,但对于汽车名‘bmw’,应当以全大写的方式打印。示例如下:
1cars=['audi','bmw','subaru','toyota']
2for car in cars:
3 if car=='bmw':
4 print(car.upper())
5 else:
6 print(car.title())
输出如下:
1Audi
2BMW
3Subaru
4Toyota
2. 条件测试
每条if语句的核心都是一个值为True或者False的表达式,这种表达式被称为条件测试。
2.1 检查是否相等
在python中,使用‘=’表示赋值,使用‘==’表示相等运算。例如下面两行代码:
1car='bmw'
2print(car=='audi')
第一行代码将‘bmw’赋值给car,第二行代码中括号里的部分实际上是一种检验,可以理解为:‘变量car的值是audi吗?’,如果是,则返回True,如果不是,则返回False。
输出如下:
1False
2.2 检查是否相等时考虑大小写
在python中检查是否相等时区分大小写,两个大小写不同的值会被视为不相等:
1car='bmw'
2print(car=='BMW ')
输出:
1False
如果想要用户需求不区分大小写,可以采用如下处理:
1car='bmw'
2print(car.upper()=='BMW')
3print(car)
输出:
1True
2bmw
可以采用这种改变变量大小写的方式进行比较,同时可以注意到,在比较的时候改变变量大小写并没有改变变量本身的大小写。
2.3 检查是否不相等
在python中,不相等符号可以表示为‘!=’,使用方法与‘==’一样。示例:
1favorite_car='BMW'
2if favorite_car!='audi':
3 print('Wrong choice!')
输出:
1Wrong choice!
2.4 比较数字
检查比较数字可以用‘==’、‘!=’、‘>=’、‘<=’、‘>’、‘示例:
1age=21
2print(age==42)
3print(age!=42)
4print(age>42)
5print(age<=56)
输出:
1False
2True
3False
4True
总之记住:‘=’代表的是赋值,‘==’代表的是比较。
2.5 检查多个条件
使用and检查多个条件
要检查两个条件是否都为True,可以使用关键字and将两个条件合二为一,两个测试都通过了则返回True,至少有一个没有通过则返回False。
输入:
1age_1=18
2age_2=40
3print(age_1>20 and age_2<42)
4print(age_1<22 and age_2>33)
输出:
1False
2True
使用or检查多个条件
关键字or也可以检查多个条件,但只要有一个条件满足,就能通过测试。
输入:
1age_1=18
2age_2=40
3print(age_1>20 or age_2<42)
4print(age_1<2 or age_2>53)
输出:
1True
2False
2.6 检查特定值在\不在列表中
判断特定值是否包含在列表中,可以使用关键字in。
1cars=['audi','bmw','subaru','toyota']
2print('audi' in cars)
3print('Hongqi' in cars)
输出:
1True
2False
确定特定值不包含在列表中,可以使用关键字not in:
1cars=['audi','bmw','subaru','toyota']
2car='Hongqi'
3if car not in cars:
4 print(car+' is the car you can not buy.')
输出:
1Hongqi is the car you can not buy.
3. if语句
3.1 简单的if语句
最简单的if语句只有一个测试和一个操作:
1age=19
2if age>=18:
3 print('You are old enough to vote!')
输出:
1You are old enough to vote!
在if语句中,只要条件测试通过了,将执行if语句后面所有缩进的代码行,否则将忽略它们。
3.2 if-else语句
示例:
1age=17
2if age>=18:
3 print('You are old enough to vote!')
4else:
5 print('You are too young to vote.')
输出:
1You are too young to vote.
3.3 if-else-if 结构
有一个根据年龄段收费的游乐场:
4岁以下免费
4-18岁收费5美元
18岁(含)以上收费10美元
输入:
1age=14
2if age<4:
3 print('Your admission cost $0')
4elif age<18:
5 print('Your admission cost $5')
6else:
7 print('Your admission cost $10')
输出:
1Your admission cost $5
4. 使用if语句处理列表
4.1 检查特殊元素
假设有一家披萨店,这家披萨店在制作披萨的时候每添加一种配料都打印一条信息。假设现在披萨店的青椒用完了,打印信息的时候应该怎么处理呢?
输入:
1requested_toppings=['mushrooms','green peppers','extra cheese']
2for requested_topping in requested_toppings:
3 if requested_topping=='green peppers':
4 print('Sorry,we are out of green peppers.')
5 else:
6 print('Adding '+requested_topping+'.')
输出:
1Adding mushrooms.
2Sorry,we are out of green peppers.
3Adding extra cheese.
4.2 确定列表不是空的
有时候需要检查列表是否为空列表,如果现在披萨店的配料都已经没了,即列表为空,就询问顾客是否愿意用肉夹馍代替,如果列表不为空,则像前面那样制作披萨:
1requested_toppings=[]
2if requested_toppings:
3 for requested_topping in requested_toppings:
4 print('Adding '+requested_topping+'.')
5else:
6 print('Are you sure you want a 肉夹馍?')
输出:
1Are you sure you want a 肉夹馍?
在if语句中将列表名用在条件表达式中时,python将在列表至少包含一个元素时返回True,在空列表时返回False。
4.3 使用多个列表
点披萨的时候,有些顾客有特别的要求,例如希望在披萨中加入炸薯条,可以使用下面的列表和语句来确定是否能满足顾客的要求:
1available_toppings=['mushrooms','olives','green peppers','pepperoni','pineapple','extra cheese']
2requested_toppings=['mushrooms','french fries','extra cheese']
3for requested_topping in requested_toppings:
4 if requested_topping in available_toppings:
5 print('Adding '+requested_topping+'.')
6 else:
7 print('Sorry,we do not have '+requested_topping+'.' )
8print('\nPizza finished.')
输出:
1Adding mushrooms.
2Sorry,we do not have french fries.
3Adding extra cheese.
4
5Pizza finished.
end