
咱们先来看第一种选择语句。在Python中,主要有以下三种形式:
if
if...else
if...elif...else
学过其他语言例如C、Java的小伙伴都知道。选择语句其实还包括Switch支持多重选择的,但是在Python中是没有Switch语句的。如果有多重选择的需求,只能选择if…elif…else多分支语句。
如果你买了一注彩票,中奖的号码是’888’,我们就可以使用If语句来判断你是否中奖
#中奖号码 888
number = int(input('请输入你的彩票号码:'))
if number == 888:
print('哇!恭喜中大奖!')
if number != 888:
print('很遗憾!')
'''
请输入你的彩票号码:888
哇!恭喜中大奖!
--------------------------
请输入你的彩票号码:887
很遗憾!
'''
当我们使用选择语句的时候,如果只有一条If语句,可以简化如下:
a = 88
b = 8
max = 0
if a > b:
max = a
print(max)
#等价于
if a > b : max = a
print(max)
#88
#88
而 if…else 多用于二选一的情况。表达式如下:
if 表达式“
语句1
else:
语句2
飞机十点起飞。如果你是十点前到就可以飞走了;超过十点你就继续坐机场吧。
time = 10
if time <= 10:
print('坐飞机楼!')
else:
print('坐机场吧!')
if…else的表达式也可以简化如下:
a = 3
if a > 6:
b = a
else:
b = -a
print(b)
#等价于
a = 3
b = a if a > 6 else -a
print(b)
'''
-3
-3
'''
可以看出,结果不受任何影响。使用下面这个条件表达式只是一个目的,那就是简化代码。
if…elif…else表达式通常表现是’如果满足某种情况就执行某种处理,否则如果满足另一种条件,则去执行另一种处理…。表达式如下:
if 表达式1
语句1
elif 表达式2
语句2
elif 表达式3
语句3
...........
else:
语句n
学校规定考试成绩总分500及其以上就是一本。410-500之间就是二本。310-410之间按做三本。310以下那就复读。
结合这个案例我们来看看如下使用选择语句来执行。
score = float(input('考生输入成绩:'))
if score >= 500:
print('恭喜你被一本院校录取!')
elif 410 <= score < 500:
print('恭喜你被二本院校录取!')
elif 310 <= score < 500:
print('恭喜你被三本院校录取!')
else:
print('再来一年!')
'''
考生输入成绩:555
恭喜你被一本院校录取!
------------------
考生输入成绩:444
恭喜你被二本院校录取!
------------------
考生输入成绩:333
恭喜你被三本院校录取!
------------------
考生输入成绩:222
再来一年!
'''
说明:if和elif都需要判断表达式的真假,而else则不需要;此外,elif和else都必须和if搭配使用。不能单独使用。
if嵌套语句
前面介绍的三种if语句都可以嵌套使用,表达式如下:
if 表达式1:
if表达式2:
语句1
else:
语句2
if 表达式1:
if表达式2:
语句1
else:
语句2
else
if
:表达式3
语句3
....................
else:
语句n
同样刚才哪个大学录取的案例:学校规定考试成绩总分500及其以上就是一本。410-500之间就是二本。310-410之间按做三本。310以下那就复读。
score = float(input('考生输入成绩:'))
if score >= 500:
print('恭喜你被一本院校录取!')
else:
if 410 <= score < 500:
print('恭喜你被二本院校录取!')
else:
if 310 <= score < 500:
print('恭喜你被三本院校录取!')
else:
print('再来一年!')
'''
考生输入成绩:555
恭喜你被一本院校录取!
------------------
考生输入成绩:444
恭喜你被二本院校录取!
------------------
考生输入成绩:333
恭喜你被三本院校录取!
------------------
考生输入成绩:222
再来一年!
'''
and连接的选择语句
and是Python语句中的连接符,只有两个都满足条件才会去执行的语句。
实际开发中并不只是单独的if..else。通常是要满足两个及其以上的条件才会出发执行条件。
例如我们申请驾照,年龄必须大于等于18并且要小于等于70岁才可以申请驾照。
age = int(input('亲输入您的年龄:'))
if age >= 18 and age <= 70:
print('您可以申请驾照')
当然我们也可以使用单独的if语句实现它。
age = int(input('亲输入您的年龄:'))
if age >= 18:
if age <= 70:
print('您可以申请驾照')
当程序不满足条件时,我们可以按照自己的设定去修改代码。此处不多赘述。
or连接的选择语句
or是Python语句中的选择符,满足其中一个条件就会去执行的语句的判断。
超市中的商品单日销量高于100或者小于10的商品都列为重点关注对象。这句语句该怎么写呢?
sales = int(input('请输入产品销量:'))
if sales < 10 or sales >100:
print('重点关注对象!!')
not连接的选择语句
实际开发中可能面临如下情况:
如果接收到的变量不为空,则输出’已经获取到了数据’,否则输出’没有接受到数据’。
或者说是当我们输入密码时,如果接受到其他非数字情况,皆输出’请输入正确的数字密码’
rcvdata = None
#代码尚未给rcvdata赋值,所以rcvdata为空
if not rcvdata:
print('获取到了数据!')
else:
print('没有接收到数据!')