python基础之“到底为什么“”???
x, y, z = 6, 5, 4if x < y:
small = x
if z < small:
small = z
elif y < z:
small = y
else:
small = z
甲鱼提供的答案:small=x if (x<y and z>x) else (y if y<z else z)
问:#这道题的x < y且z < small的情况怎么没有考虑???
本帖最后由 阿奇_o 于 2021-8-27 23:32 编辑
and z > x 不就是吗?
if(x<y and x<z) --> x 比y, z 都小, 那x它就是最小的嘛。
else 则意味着 x>=y 或 x >= z
所以,只要再 判断 y < z 是否成立,
若 成立,加上已确认的 y =< x 或 x => z ,那最小的就是 y ;
若 不成立,那 最小就是 z 。
至于相等的情况,用哪个都一样。 本帖最后由 白two 于 2021-8-28 00:04 编辑
确实没有考虑,因为这就属于 else 的情况了
有 else 这玩意就不需要把情况考虑完
你看这个表达式已经考虑了选 x 和 选 y 的情况,那么剩下来的情况即 else 就是选 z 了呀
你看后面那个括号不是有个 else z嘛 白two 发表于 2021-8-27 23:45
确实没有考虑,因为这就属于 else 的情况了
有 else 这玩意就不需要把情况考虑完
你看这个表达式已经考虑 ...
勉强理解
页:
[1]