|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 自然水 于 2017-2-24 21:17 编辑
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
复制代码
老师的答案:- small = x if (x < y and x < z) else (y if y < z else z)
复制代码
但是存在一个很大的疑问,确实绕不过来,别笑话我蠢:
- if x < y:
-     small = x
-     if z < small:
-         small = z
复制代码
这里,当 x < y 成立后, small 被赋值为x ,那么把small看成 x 没问题。
下一个if 里
等同于
当这俩条件都成立的情况,small 被赋值了2次。
我对两种方式结果是否一致,没什么疑问。
但是过程是有的---第二种方式 small是没有被赋值2次,或者有类似判断的,实在绕不过来。
有人可以给我解释明白么,想了40分钟,好痛苦。 |
|