小甲鱼8.2了不起的条件分之2课后题总结

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

3. 猜猜 (x < y and [x] or [y])[0] 实现什么样的功能?
答:这其实是 Python 的作者还没有为 Python 加入三元操作符之前,Python 社区的小伙伴们灵活的使用 and 和 or 搭配来实现三元操作符的功能,这里边有涉及到列表和切片的知识,这部分知识很快就会讲解,迫不及待的朋友可以先稍微预习下。

这个式子可以简化成(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
这样代码更易理解。
####PS:x<y为真,则输出true,true and 【x】=x(短路原理),x or y =x
x<y 为假,则输出为false,false and 【x】=false,false or y = y
4.4. 你听说过成员资格运算符吗?
答:Python 有一个成员资格运算符:in,用于检查一个值是否在序列中,如果在序列中返回 True,否则返回 False。
##检查序列用
例如:

name = ‘小甲鱼’
‘鱼’ in name
True

‘肥鱼’ in name
False

  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

答案:

个人答案:
x, y, z = 6, 5, 4
small=x if x < y and x<z else y<z and y or z
print (small)
#三元操作和and or 短路逻辑结合,不是纯正的三元

标准答案: 

small = x if (x < y and x < z) else (y if y < z else z)
#理解记忆:y if y<z else z 当中开头的y其实就是if条件成立时的结果,否则为z

总结:and or not灵活运用,短路逻辑,三元操作,in检查




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值