零基础学习Python 作业 第7-8章

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

if  money >= 100 

1. assert 的作用是什么?

assert这个关键字我们称之为“断言”,当这个关键字后边的条件为假的时候,程序自动崩溃并抛出AssertionError的异常。

什么情况下我们会需要这样的代码呢?当我们在测试程序的时候就很好用,因为与其让错误的条件导致程序今后莫名其妙地崩溃,不如在错误条件出现的那一瞬间我们实现“自爆”。

一般来说我们可以用Ta再程序中置入检查点,当需要确保程序中的某个条件一定为真才能让程序正常工作的话,assert关键字就非常有用了。

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

[x, y, z] = [y, z, x] or x, y, z = y, z, x   两两互换

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

先化简( ((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, 如果a<b,则输出a,反之输出b

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

  

Python 有一个成员资格运算符:in,用于检查一个值是否在序列中,如果在序列中返回 True,否则返回 False。

  

例如:

  1. >>> name = '小甲鱼'
  2. >>> '鱼' in name
  3. True
  4. >>> '肥鱼' in name
  5. False

动动手:

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

  1. score = int(input('请输入一个分数:'))
  2. if 80 > score >= 60:
  3.     print('C')
  4. elif 90 > score >= 80:
  5.     print('B')
  6. elif 60 > score >= 0:
  7.     print('D')
  8. elif 100 >= score >= 90:
  9.     print('A')

10. else:

  1. 11.     print('输入错误!')

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

 

三元操作符:

x, y, z = 6, 5, 4

small =x if (x < y and x < z) else (y if y < z else z)

 

posted @ 2018-09-20 13:44  蘑菇慢慢  阅读(87)  评论(0)    收藏  举报