z0lmxt 发表于 2021-4-14 11:34:28

关于三元操作符的课后作业问题

题目是这样:

请将以下代码修改为三元操作符实现:
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)

题目是要求最小值这一点能够明白。不过有点疑问的是参考答案代码 , 如果代码的值在其他情况下 , 实际运行起来内部流程是有点区别吧 ?

原题里 x < y 且 z < x 成立的话, 此时将 small 赋值为 z , 也就是即使 x = z ( z 不< x ) , small 的值也是来自 x

而按照参考答案的话 , 就算 x = z , 最后 small 的值会是 z 的值 , 当然结果是一样 , 不过实际有点区别是吗 ?

五岁能抬头 发表于 2021-4-14 17:41:02

为什么我觉得应该是small = z if (z < x and x < y) else (y if y < z) else x   {:10_291:}
也不知道对不对,我也刚学,一起探讨探讨

z0lmxt 发表于 2021-4-14 18:07:59

五岁能抬头 发表于 2021-4-14 17:41
为什么我觉得应该是small = z if (z < x and x < y) else (y if y < z) else x   
也不知道对不 ...

你写得那个貌似后面部分的格式已经错了吧{:10_245:}
页: [1]
查看完整版本: 关于三元操作符的课后作业问题