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

==========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, 如果x>=y则输出变成[y][0] 也就是y
有点类似于C语言的三元运算符:表达式1?表达式2:表达式3
如果表达式1成立则输出表达式2,反之输出表达式3
我查了下Python的3元表达式:

a if a < b else b, 如果a<b,则输出a,反之输出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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章