hanxiuc1 发表于 2020-9-7 11:48:18

课后作业求解答

将以下代码修改为三元操作符实现:

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 and x < z如何理解x<z.

kylin121380 发表于 2020-9-7 11:56:19

x < y and x < z ——>x比y小并且比z小

Twilight6 发表于 2020-9-7 12:52:50



看看这个解析:https://fishc.com.cn/forum.php?mod=redirect&goto=findpost&ptid=172844&pid=4778235

hanxiuc1 发表于 2020-9-7 13:07:46

kylin121380 发表于 2020-9-7 11:56
x < y and x < z ——>x比y小并且比z小

我的想法是这样的、small = x if (x < y ) else (y if y < z else z),无法理解哪条语句来判断 x < z

hanxiuc1 发表于 2020-9-7 13:18:24

Twilight6 发表于 2020-9-7 12:52
看看这个解析:https://fishc.com.cn/forum.php?mod=redirect&goto=findpost&ptid=172844&pid=4778235

感觉脑细胞进去了牛角了。我是无法理解x<z.

Twilight6 发表于 2020-9-7 14:20:07

hanxiuc1 发表于 2020-9-7 13:18
感觉脑细胞进去了牛角了。我是无法理解x

好好捋一捋,把你之前的想法清空,然后再慢慢理解

fall_bernana 发表于 2020-9-7 15:12:00

#small = x if (x < y and x < z) else (y if y < z else z)

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

kylin121380 发表于 2020-9-7 17:47:42

hanxiuc1 发表于 2020-9-7 13:07
我的想法是这样的、small = x if (x < y ) else (y if y < z else z),无法理解哪条语句来判断 x < z

当x最小时small直接等于x——>if (x < y and x < z)
当x不是最小时进入else,y if y < z——>此时x大于等于y或z,如果x大于等于y,满足y<z后,y便是最小,若x大于等于z,y还是最小。
当y大于等于z, else z ——> 此时前提条件是x大于等于y或z,z已经比y小,而x起码大于等于z,所以z是最小
这样好理解了吗{:10_254:}
页: [1]
查看完整版本: 课后作业求解答