您的位置:首页 > 编程语言 > Python开发

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

2018-03-07 00:13 316 查看
==========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, 如果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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息