我在做python练习时候,看不懂小甲鱼给的三元运算符的答案,还劳烦各位大佬帮忙看看
小甲鱼给出的答案是small = x if (x < y and x < z) else (y if y < z else z)
我看不懂前半段的 X<Z 是怎么来的。
不是应该是X>Z嘛。
是题目错了,还是我理解错了。
if x < y:
small = x
if z < small:→z<x
small = z→这里不是按理输出small = X 嘛= ={:10_257:}
还请各位大佬看看~
谢了~ 本帖最后由 jackz007 于 2020-12-28 22:21 编辑
x 是 smallest当然得满足 x < y and x < z 的条件了 ,何来 x > z ? x 还是不是 smallest 了? 说大白话就是:如果 x<y 并且 x<z 的话 small的值就是x,否则 如果 y<zsmall的值就是y,如果y不小于z,则small的值就是z 岩柯qq.com 发表于 2020-12-29 09:08
说大白话就是:如果 x
第一个条件x<y不成立,因为是and所以第二个条件就不用看了,第二个条件y<z也不成立,所以small=z jackz007 发表于 2020-12-28 22:19
x 是 smallest当然得满足 x < y and x < z 的条件了 ,何来 x > z ? x 还是不是 smallest 了?
if x < y:
small = x
if z < small:
small = z
额,这一段意思不是说 当x<y的时候,small等于X嘛,然后如果z<small,small=x,z<x,则small=z,我这一段理解有没有错。= =
我就不理解答案中small = x if (x < y and x < z) else (y if y < z else z),前面括号的x < y and x < z中的x<z是从哪里得知。
还请指教指教~
非常感谢~ 三目表达式
small = x if (x < y and x < z) else (y if y < z else z)
展开后,是下面的样子
if x < y and x < z:# 如果 x 同时比 y、z 都小
small = x # small = x
else: # 否则,暗含 small 不是 x,那么,small 不是 y 便是 z
if y < z: # 既然 y 比 z 小
small = y # small = y
else: # 否则,暗含 y 不是最小
small = z # small 自然就是 z 了
页:
[1]