此日记只为了方便自己复盘,如有涉及版权问题,归小甲鱼官方所有。
测试题:
0. if not (money < 100): 这行代码相当于?
1. assert 的作用是什么?
2. 假设有 x = 1,y = 2,z = 3,请问如何快速将三个变量的值互相交换?
3. 猜猜 (x < y and [x] or [y])[0] 实现什么样的功能?
4. 你听说过成员资格运算符吗?
答0:相当于if money >= 100:
答1:assert的作用是断言功能,当断言条件为假,输出异常,程序会崩溃并抛出AssertionError的异常。
举例:assert condition
用来让程序测试这个condition,如果condition为false,那么raise一个AssertionError出来。逻辑上等同于:
if not condition:
raise AssertionError()
答2:x, y, z = y, z, x 或者 x, y, z = z, x, y
答3:可以先分成x < y and [x] or [y]。当x < y为真时,输出x。x and [x]输出x。x or y输出x。x[0],又变成了列表的第一个元素,即复原为x。
当x < y为假时,输出y。y and [x]输出y。y or y输出y。y[0],又变成了列表的第一个元素,即复原为y。
但当x和y的有值为0(等同于flase)的情况就会判断失误。
答4:
Python 有一个成员资格运算符:in,用于检查一个值是否在序列中,如果在序列中返回 True,否则返回 False。
>>> name = '小甲鱼'
>>> '鱼' in name
True
>>> '肥鱼' in name
False
另一个是not in
动动手:
0. 视频中小甲鱼使用 if-elif-else 在大多数情况下效率要比全部使用 if 要高,但根据一般的统计规律,一个班的成绩一般服从正态分布,也就是说平均成绩一般集中在 70~80 分之间,因此根据统计规律,我们还可以改进下程序以提高效率。
题目备忘:按照 100 分制,90 分以上成绩为 A,80 到 90 为 B,60 到 80 为 C,60 以下为 D,写一个程序,当用户输入分数,自动转换为ABCD 的形式打印。
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
2. 请写下这一节课你学习到的内容:格式不限,回忆并复述是加强记忆的好方式!
答0:
temp = input('请输入你的成绩:')
n = int(temp)
if 100 >= n >= 90:
print('A')
elif 90 > n >= 80:
print('B')
elif 80 > n >= 60:
print('C')
elif n <60:
print('D')
else:
print('输入错误')
答1:
x, y, z = 6, 5, 4
small = x if (x < y and x < z) else (y if y < z else z) #可以看成(x < y and x < z) 为真的时候,x赋值给small,(y if y < z else z) 为真的时候,y赋值给small。
print(small);
答2:这节课除了学到了题目的知识点,其他就是小甲鱼制作‘打飞机’游戏的逻辑分析