==========CH07-08 homework==========
0 if not (money < 100): 上边这行代码相当于?
Answer: 如果 money >= 100 执行…..
1 assert 的作用?
Answer: 断言,如果关键字后的‘条件’为假的时候,程序会崩溃,并告诉你 AssertionError。
做模块测试比较有用。
2 假设有 x = 1,y = 2,z = 3,请问如何快速将三个变量的值互相交换?
Analysis: x-y, y-z, z-x. array? or other idea?
Answer: [x, y, z] = [y, z, x] or x, y, z = y, z, x
3 猜猜 (x < y and [x] or [y])[0] 实现什么样的功能?
Answer: 先化简( ((x < y) and [x]) or [y] )[0]
其意思是:如果 x < y成立,则输出 [x][0] [ x ] [ 0 ] 也就是x, 如果x>=y则输出变成 [y][0] [ y ] [ 0 ] 也就是y
有点类似于C语言的三元运算符:表达式1?表达式2:表达式3
如果表达式1成立则输出表达式2,反之输出表达式3
我查了下Python的3元表达式:
a if a < b else b, 如果aa,反之输出b
4 你听说过成员资格运算符吗?
Answer: ‘in’ 用来检查某一个值是否在list中,在则返回True,不在返回False
>>>a = [1, 2, 3, 4]
>>>b = 3
>>>b in a
False
Practice
0 视频中小甲鱼使用 if elif else 在大多数情况下效率要比全部使用 if 要高,
但根据一般的统计规律,一个班的成绩一般服从正态分布,也就是说平均成绩一般集中在 70~80 >分之间,
因此根据统计规律,我们还可以改进下程序以提高效率。
idea: 先判断是否在70~80
code:
score = int( input('请输入分数:') )
if 80 >= score >= 70:
print('This score rank \'C\'')
elif 70 >= score >= 60:
print('This score rank \'D\'')
elif 90 >= score >= 80:
print('This score rank \'B\'')
elif 100 >= score >= 90:
print('This score rank \'A\'')
elif 60 > score >=0:
print('Unqualified')
else:
print('Sorry! the score', score, 'not in the range[0 100]!')
1 Python 的作者在很长一段时间不肯加入三元操作符就是怕跟C语言一样搞出国际乱码大赛,
蛋疼的复杂度让初学者望而生畏,不过,如果你一旦搞清楚了三元操作符的使用技巧,
或许一些比较复杂的问题反而迎刃而解。
请将以下代码修改为三元操作符实现:
1. x, y, z = 6, 5, 4
2. if x < y:
3. small = x
4. if z < small:
5. small = z
6. elif y < z:
7. small = y
8. else:
9. small = z
code:
x, y, z = 6, 5, 4
small =x if (x < y and x < z) else (y if y < z else z)