【小甲鱼Python】了不起的分支和循环1、2&&课后作业

测试题:

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

  2. assert 的作用是什么?
    当这个关键字后边的条件为假的时候,程序会自动崩溃并抛出Assertion Error的异常。
    用途:可以用该关键字构成表达式在程序中置入检查点,当需要确保程序中的某一个条件必须为真才能让程序正常工作的话,assert对于检查这种情况是否成立就非常有用。

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

x,y,z=z,x,y
  1. 猜猜 (x < y and [x] or [y])[0] 实现什么样的功能?
    这个式子可以简化成(x<y and x or y),即x<y为真时输出x,否则输出y。但当x和y的有值为0(等同于flase)的情况就会判断失误。因此改为[x]和[y],这样[x]和[y]就都为真了,再加上[0],又变成了列表的第一个元素,即复原为x或y。
    一般python的写法为 x if x<y else y
    这样代码更易理解。
    这其实是 Python 的作者还没有为 Python 加入三元操作符之前,Python 社区的小伙伴们灵活的使用 and 和 or 搭配来实现三元操作符的功能。

  2. 你听说过成员资格运算符吗?
    成员资格运算符:in, not in
    用于检测某元素是否在该序列中。

动动手:

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

题目备忘:按照 100 分制,90 分以上成绩为 A,80 到 90 为 B,60 到 80 为 C,60 以下为 D,写一个程序,当用户输入分数,自动转换为ABCD 的形式打印。

grade = [50,60,77,76,80,72,73,90,95,56,86,72]
for i in grade:
    if 60 < i <= 80:
        print('C')
    elif i > 90:
        print('A')
    elif 80 < i <=90:
        print('B')
    else:
        print('D')
  1. Python 的作者在很长一段时间不肯加入三元操作符就是怕跟 C 语言一样搞出国际乱码大赛,蛋疼的复杂度让初学者望而生畏,不过,如果你一旦搞清楚了三元操作符的使用技巧,或许一些比较复杂的问题反而迎刃而解。

请将以下代码修改为三元操作符实现:

x, y, z = 6, 5, 4
if x < y: 						#
    small = x						从x,y,z中寻找最小值,并假设如果x或z是最小值
    if z < small:
        small = z				#
elif y < z:						#x不是最小值,从y和z中寻找最小值
    small = y					#
else:
    small = z

【解】

x, y, z = 6, 5, 4
small = (x if x < y else y)
small = (small if small < z else z)
print(small)


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

  1. 请写下这一节课你学习到的内容:格式不限,回忆并复述是加强记忆的好方式!
    1、if 条件表达式1:
    elif 条件表达式2:
    elif 条件表达式3:
    ……
    else
    2、三元操作符 ……if ……else……
    格式: 表达式1 if 条件表达式 else 表达式2
    当条件表达式为真时,整个表达式返回表达式1的值,反之则返回表达式2的值。
    3、assert (断言)关键字
    当这个关键字后边的条件为假的时候,程序会自动崩溃并抛出Assertion Error的异常(该异常可以用代码捕获并进行处理,还未学习到)。
    例子:>>>assert 3 > 4
    用途:可以用该关键字构成表达式在程序中置入检查点,当需要确保程序中的某一个条件必须为真才能让程序正常工作的话,assert对于检查这种情况是否成立就非常有用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值