July201 发表于 2020-7-23 17:49:39

课后作业第7,8讲的题不太明白怎么解

x, y, z = 6, 5, 4
if x < y:
    small = x
    if z < small:
      small = z
elif y < z:
    small = y
else:
    small = z

要用三元符号来表示,应该怎么来考虑?

xiaosi4081 发表于 2020-7-23 18:01:01

本帖最后由 xiaosi4081 于 2020-7-23 18:16 编辑

x ,y,z = 6, 5, 4
small = (x if x < y else y)

small = (z if small> z else small)

求最佳{:10_254:}

再送你张图:
https://s1.ax1x.com/2020/07/05/UpAthV.gif

sccswow 发表于 2020-7-23 18:06:46

一开始不怎么理解,看着视频照猫画虎,先写成这样
x, y, z = 6, 5, 4
small = x if x < y else y
small = y if y < z else z
print(small)
再归类 发现x<y,得出较小值,再去跟z比得出较小值这两步,可以折叠成一步,(x<y) and(x<z),得出最小值x
如果不满足,则让y和z再比较,就跟上段代码的第三句一样,
整理下来就是
x, y, z = 6, 5, 4
small = x if (x < y and x < z) else (y if y < z else z)
print(small)

SHRS23 发表于 2020-7-23 18:08:15

small = x if (x < y and x < z) else (y if y < z else z)
结果 = 值1 if 条件 else 值2

如果 (x < y and x < z) 那么结果取x 否则结果取(y if y < z else z)

如果 y < z那么结果取y,否则取z
页: [1]
查看完整版本: 课后作业第7,8讲的题不太明白怎么解