鱼C论坛

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

对于三元操作符条件递进的迷惑

[复制链接]
发表于 2017-9-11 10:51:59 | 显示全部楼层 |阅读模式

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

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

x
对于小甲鱼课后习题中将一般代码如下:
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 z < x) else (y if y < z else z)
我搞不懂对条件结果small = x          的处理过程,在大条件x < y and z < x同时为真时,应该输出的是small = z,即把变量z的值赋予变量small才对啊,
                                if z < small:
                                small = z
怎么可能是small = x 呢
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-9-11 11:24:22 | 显示全部楼层
本帖最后由 bush牛 于 2017-9-11 11:26 编辑

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

是输出13.

当这个表达式为真的时候才输出x.

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

small = 5(x)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-9-11 11:41:20 | 显示全部楼层
我觉得这个原始代码就有问题,还是我个人有问题,在条件x < y 中并没有限制z >= x 的条件语句,所以这一部分在条件之中在生成条件的时候就会产生条件的不对等,无法使用标准的三元操作符达到目的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-9-11 11:44:59 | 显示全部楼层
if x < y:
&nbsp; &nbsp; &nbsp; &nbsp; small = x
&nbsp; &nbsp; &nbsp; &nbsp; if z < small:
&nbsp; &nbsp; &nbsp; &nbsp; small = z
我搞不懂这一部分的处理,为什么会是x if (x < y and z < x)呢,这里如果if条件同时为真应该输出的是z才对啊,而并不应该是x啊,这里有没有定义z = x的表奥大师,是最令我迷惑的地方
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-16 11:50:23 From FishC Mobile | 显示全部楼层
肯定是small=x if()条件在后面
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-16 13:19:02 | 显示全部楼层
本帖最后由 jerryxjr1220 于 2017-10-16 13:21 编辑
cxg1482 发表于 2017-9-11 11:44
if x < y:
&nbsp; &nbsp; &nbsp; &nbsp; small = x
&nbsp; &nbsp; &nbsp; &nbsp; if z < small:


三元操作符 a = x if condition1 == True else y
其实可以写成:
  1. if condition1 == True:
  2.   a = x
  3. else:
  4.   a = y
复制代码

小甲鱼的small = x if (x < y and z < x) else (y if y < z else z)
可以写成:
  1. if x < y and z < x:
  2.   small = x
  3. else:
  4.   if y < z:
  5.     small = y
  6.   else:
  7.     small = z
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-23 19:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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