鱼C论坛

 找回密码
 立即注册
查看: 1368|回复: 5

[已解决]我在做python练习时候,看不懂小甲鱼给的三元运算符的答案,还劳烦各位大佬帮忙看看

[复制链接]
发表于 2020-12-28 22:10:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

屏幕截图 2020-12-28 220648.png
小甲鱼给出的答案是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 嘛= =
还请各位大佬看看~
谢了~
最佳答案
2020-12-29 21:59:56
        三目表达式
  1. small = x if (x < y and x < z) else (y if y < z else z)
复制代码

        展开后,是下面的样子
  1. if x < y and x < z:  # 如果 x 同时比 y、z 都小
  2.     small = x        # small = x
  3. else:                # 否则,暗含 small 不是 x,那么,small 不是 y 便是 z
  4.     if y < z:        # 既然 y 比 z 小
  5.         small = y    # small = y
  6.     else:            # 否则,暗含 y 不是最小
  7.         small = z    # small 自然就是 z 了
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-12-28 22:19:23 | 显示全部楼层
本帖最后由 jackz007 于 2020-12-28 22:21 编辑

        x 是 smallest  当然得满足 x < y and x < z 的条件了 ,何来 x > z ? x 还是不是 smallest 了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-29 09:08:27 | 显示全部楼层
说大白话就是:如果 x<y 并且 x<z 的话 small的值就是x,否则 如果 y<z  small的值就是y,如果y不小于z,则small的值就是z
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-29 09:12:56 | 显示全部楼层
岩柯qq.com 发表于 2020-12-29 09:08
说大白话就是:如果 x

第一个条件x<y不成立,因为是and所以第二个条件就不用看了,第二个条件y<z也不成立,所以small=z
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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是从哪里得知。
还请指教指教~
非常感谢~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-29 21:59:56 | 显示全部楼层    本楼为最佳答案   
        三目表达式
  1. small = x if (x < y and x < z) else (y if y < z else z)
复制代码

        展开后,是下面的样子
  1. if x < y and x < z:  # 如果 x 同时比 y、z 都小
  2.     small = x        # small = x
  3. else:                # 否则,暗含 small 不是 x,那么,small 不是 y 便是 z
  4.     if y < z:        # 既然 y 比 z 小
  5.         small = y    # small = y
  6.     else:            # 否则,暗含 y 不是最小
  7.         small = z    # small 自然就是 z 了
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 06:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表