第007、008讲:了不起的分支和循环

  1. if not (money < 100): 上边这行代码相当于?

if money >= 100:

  1. assert 的作用是什么?

断言,当这个关键字后边的条件为假的时候,程序自动崩溃并抛出AssertionError的异常

  1. 假设有 x = 1,y = 2,z = 3,请问如何快速将三个变量的值互相交换?

x,y,z = y,z,x 他们是同时进行的

  1. 猜猜 (x < y and [x] or [y])[0] 实现什么样的功能?

这其实是 Python 的作者还没有为 Python 加入三元操作符之前,可以灵活的使用 and 和 or
搭配来实现三元操作符的功能,这里边有涉及到列表和切片的知识

  1. 你听说过成员资格运算符吗?

in,用于检查一个变量是否在序列中,如果在返回True,否则返回False
而not in与它相反

动动手
0. 使用 if elif else 在大多数情况下效率要比全部使用 if 要高,但根据一般的统计规律,一个班的成绩一般服从正态分布,也就是说平均成绩一般集中在 70~80 分之间,因此根据统计规律,我们还可以改进下程序以提高效率。

多个 if 时会判断每个if, 而用 elif 碰到满足条件的语句则终止判断

score = int(input ('请输入分数\n'))
if 70<=score<=80: 
    print("C")#先用70~80判断
elif 80<=score<90:
    print("B")
elif 90<=score<100:
    print('C')
else:
    print('D')
  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)

第007、008讲:了不起的分支和循环_第1张图片
c语言的else总是和最近的if匹配
而python是用缩进来描述作用域所以可以避免悬挂else
第007、008讲:了不起的分支和循环_第2张图片

你可能感兴趣的:(python)