第七讲、第八讲:了不起的分支和循环
一、知识点:
0.条件语句,if……else语法
if 判断条件:
执行语句……
else:
执行语句……
elif语法:
if 判断条件1:
执行语句1……
elif 判断条件2:
执行语句2……
elif 判断条件3:
执行语句3……
else:
执行语句4……
1.条件表达式:
为真时的结果 if 判定条件 else 为假时的结果
例如:
x,y=1,2
small = x if x<y else y
2.assert断言,顾名思义,断定此处是对的,如果错了,那一定是有问题。格式为:
assert+空格+要判断语句+双引号“报错语句”
--------------------------------------------------------------------我是一条分割线----------------------------------------------------------------------
二、课后作业:
0.if not (money<100):这行代码相当于?
if money >= 100
1.assert的作用是什么?
assert这个关键字称之为“断言”,当这个关键字后边的条件为假的时候,程序自动崩溃并抛出AssertionError的异常。什么情况下我们需要这样的代码呢?当我们在测试程序的时候就很好用,因为与其让其错误的条件导致程序莫名其妙地崩溃,不如在错误条件出现的那一瞬间实现程序“自爆”。一般来说我们可以用assert在程序中置入检查点,当需要确保程序中的某个条件一定为真才能让程序正常工作的话,assert关键字就非常有用了。
2.假设x=1,y=2,z=3,请问如何快速将三个变量的值互相交换?
x,y,z=z,y,x
3.猜猜(x<y and [x] or [y])[0]实现什么样的功能?
这个式子可以简化成(x<y and x or y),即x<y为真时输出x,否则输出y。但当x和y的有值为0(等同于flase)的情况就会判断失误。因为改为[x]和[y],这样[x]和[y]就都为真了,再加上(0),又变成了列表的第一个元素,即复原为x或y。一般python的写法为x if x<y else。
4.你听说过成员资格运算符吗?
python有一个成员资格运算符:in。用于检查一个值是否在序列中,如果在序列中返回true,否则返回false。
--------------------------------------------------------------------我是一条分割线----------------------------------------------------------------------
三、动动手:
0.视频中小甲鱼使用 if ,elif, else 在大多数情况下效率要比全部使用 if 要高,但根据一般的统计规律,一个班的成绩一般服从正态分布,也就是说平均成绩一般集中在 70~80 分之间,因此根据统计规律,我们还可以改进下程序以提高效率。
score = 0
while 1:
temp = input('请输入一个分数:')
score = int(temp)
if 60<=score<80:
print('C')
elif 90<=score<=100:
print('A')
elif 80<=score<90:
print('B')
elif 0<=score<60:
print('D')
else:
print('输入有误!')
1.Python 的作者在很长一段时间不肯加入三元操作符就是怕跟C语言一样搞出国际乱码大赛,蛋疼的复杂度让初学者望而生畏,不过,如果你一旦搞清楚了三元操作符的使用技巧,或许一些比较复杂的问题反而迎刃而解。
请将以下代码修改为三元操作符实现:
x,y,z=6,5,4
if x<y:
small = x
if z<small:
small = z
elif y<z:
small = y
else:
small = z
small = x if (x<y and x<z) else (y if y<z else z)
--------------------------------------------------------------------我是一条分割线----------------------------------------------------------------------