|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- 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)
复制代码
这是小甲鱼第7,8课课后题的动动手第一题,我对三元操作符不太了解,基础的很容易,但是有多个判断条件就不清楚了。
原语块里明明是有三个这样的判断条件(x < y,z < small,y < z, ),三元操作符这里就变成了(x < y,x < z,y<z)了,这是怎么变回来的,真是看不清楚。三元操作符的x < z是怎么来的呀?其他两个判断可以知道,从原语块里来的。这个基础三元操作符和有点变形的三元操作符的差距太大了,不太好找到变化规律啊。理解三元操作符的亲朋好友们帮帮忙啊,这个对我来说太关键了。
还有,补充问题,这个变形的三元操作符语法和基础三元操作符语法(语法:x if 条件 else y),怎么匹配啊,如果能匹配上了,我就好理解了。谢谢,这样解释一下就更好了。
這個例子作用是取 x, y, z 最小值(small) ,也就是x, y, z 哪個值最小,
第一個條件判斷 if 可以理解成 x < y and x < z small=x
x < y and z < x small=z ,如果第一個if不成立代表 x 不是最小的。
所以下來判斷 elif 跟 else ,因為 x 已經知道不是最小,所以判斷 y 跟 z 哪個小,如果 y < z ,small=y,
如果 x 跟 y 不是最小,那 small=z
三元操作符语法(语法:x if 条件 else y)
條件為true返回前面,否則返回後嘛
代入例子變成---x if ( 確定x為最小的條件) else (y if (確定y跟z哪個最小) else z)
所以你的問題"判断条件(x < y,z < small,y < z, ),三元操作符这里就变成了(x < y,x < z,y<z)了",
的原因在於 確定x為最小的條件 要 x < y and x < z
|
|