2.5 分支与循环二
1. 问题——分数等级问题
按照100分制,90分以上成绩为A,80-90分成绩为B,70-80分之间为C,60-70分之间为D,60分一下为E,当输入用户的分数,判断ABCDE打印输出
1.1 方法一使用if
cpu代码效率执行低
score = int(input("请输入用户的一个分数:"))
if 90<= score <= 100:
print("A")
if 80<= score < 90:
print("B")
if 70<= score < 80:
print("C")
if 60<= score < 70:
print("D")
if 0<= score < 60:
print("E")
if score <0 or score > 100:
print("输入错误!")
第一种判断完第一个之后,还需要执行后续的判断,浪费cpu的时间
1.2 方法二 if … else
score = int(input("请输入用户的一个分数:"))
if 90<= score <= 100:
print("A")
else:
if 80<= score < 90:
print("B")
else:
if 70<= score < 80:
print("C")
else:
if 60<= score < 70:
print("D")
else:
if 0<= score < 60:
print("E")
else:
print("输入错误!")
1.3 方法三 if elif
score = int(input("请输入用户的一个分数:"))
if 90<= score <= 100:
print("A")
elif 80<= score < 90:
print("B")
elif 70<= score < 80:
print("C")
elif 60<= score < 70:
print("D")
elif 0<= score < 60:
print("E")
else:
print("输入错误!")
判断完第一个条件时,如果成立,则直接退出
针对第三个程序,根据一般的统计规律,70-80的分数一般比较集中,因此根据统计规律,
可以将70-80的范围内的条件放在最前面,以达到cpu高效的利用。
2.python可以有效的避免悬挂else,
#悬挂else
if()
if()
printf();
else
printf();
C语言的的语法会有悬挂的错误,在python中不会存在,因为python是通过缩进来控逻辑块的
3.条件表达式(三元操作符)
三元操作符可以将一个条件判断语句改为一条语句
格式为:变量名 = 等式一 (if 条件) else 等式二
x,y = 4, 5
if x<y:
small = x
else:
small = y
上面的例子可以改为:
small = x if x<y else y
4. assert 断言语句
当这个关键词后的条件为假的时候,程序自动崩溃并抛出AssertionError的异常
assert 3>4 #会提示AssertiongError
一般来说,我们可以用Ta在程序中置入检查点,当需要确保程序中的某一个条件一定为真才能让程序正常工作时,assert关键测就非常有用了
例如,当一个程序接口只希望输入为数字,但输入其他无效时,即可以使用断言assert语句
一般用于测试程序
#################################################################################################
5. 练习题:
5.1 if not(test < 100):相当于
#if test >= 100:
5.2 假设有x =1, y = 2, z = 3, 情快速交换三个变量的值:
x = 1
y = 2
z = 3
print(x,y,z)
x,y,z = z,x,y
print(x,y,z)
运行结果:
5.3 以下表达式实现什么功能
(x<y and [x] or [y])[0] 实现了什么功能?
#这是三元操作符,涉及到切片和列表的知识
#灵活使用and 和 or 搭配使用三元操作符
5.4 成员资格运算符:in
#python 有一个成员资格运算符:in
#用于检查是否在列表里,如果在序列中,则返回True,否则返回False
#经常用于for in中
name = 'weivid'
print('we' in name) #True
print('wvi' in name) #Flase
print('h' in name) #False
运行结果: