Dvil 发表于 2020-12-28 22:10:29

我在做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:19:23

本帖最后由 jackz007 于 2020-12-28 22:21 编辑

      x 是 smallest当然得满足 x < y and x < z 的条件了 ,何来 x > z ? x 还是不是 smallest 了?

岩柯qq.com 发表于 2020-12-29 09:08:27

说大白话就是:如果 x<y 并且 x<z 的话 small的值就是x,否则 如果 y<zsmall的值就是y,如果y不小于z,则small的值就是z

岩柯qq.com 发表于 2020-12-29 09:12:56

岩柯qq.com 发表于 2020-12-29 09:08
说大白话就是:如果 x

第一个条件x<y不成立,因为是and所以第二个条件就不用看了,第二个条件y<z也不成立,所以small=z

Dvil 发表于 2020-12-29 21:15:28

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是从哪里得知。
还请指教指教~
非常感谢~

jackz007 发表于 2020-12-29 21:59:56

      三目表达式
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]
查看完整版本: 我在做python练习时候,看不懂小甲鱼给的三元运算符的答案,还劳烦各位大佬帮忙看看