鱼C论坛

 找回密码
 立即注册
查看: 2840|回复: 10

[已解决]解释

[复制链接]
发表于 2019-8-1 10:19:26 | 显示全部楼层 |阅读模式

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

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

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

small = x if (x < y and x < z)
最佳答案
2019-8-2 10:30:52
小香蕉2009 发表于 2019-8-2 10:02
对,是这个,我想不通为什么x


x, y, z = 6, 5, 4   【x=6,y=5,z=4】
if x < y:           【如果x<y时】
small = x           【small就是x】
if z < small:       【再进行比较z<small,因为刚才small赋值给x,所以这里是z<x 】
small = z           【把small赋值给z】
elif y < z:         【情况y<z时】
small = y           【把small赋值给y】
else:               【另外情况时】
small = z           【把small赋值给z】

small = x if (x < y and x < z) else (y if y < z else z)
三元操作符,意思其实就是上面一段代码,只是缩成一句话,
如果 (x < y and x < z)情况发生时,把small赋值给x,
情况 (x < y and x < z)不发生,但是 y < z 情况发生,把small赋值给y,

(x < y and x < z)不发生时,会产生三种情况,(x>y and x > z),(x < y and x >z),(x> y and x < z)
  (x>y and x > z)      用 y < z进行判断:根据情况小的数是z和y,用 y < z进行判断用成立的话,small赋值给y
  (x < y and x >z)     用 y < z进行判断:根据情况z<x<y,用 y < z进行判断,不成立,这个就是下面说的都不成立的情况
  (x> y and x < z)     用 y < z进行判断:根据情况 y<x<z,用 y < z进行判断用成立的话,small赋值给y

当 (x < y and x < z)不发生,y < z 情况也不发生,,把small赋值给z,

其实没有什么x<z,这个只是三个数字进行两两比较,肯定会先出来两个数字而以。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-1 10:38:16 | 显示全部楼层
三元操作符,
small = x if (x < y and x < z)    【当x<y 且x<z成立时,把small 标识赋值给x】
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-1 12:21:46 | 显示全部楼层
Chuen_yu 发表于 2019-8-1 10:38
三元操作符,
small = x if (x < y and x < z)    【当x

  if z < small:
         small = z
应该是x>z呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-1 13:16:14 | 显示全部楼层
小香蕉2009 发表于 2019-8-1 12:21
if z < small:
         small = z
应该是x>z呀

就你写的代码就是这个意思,你这个代码是哪里来的,
如果是小甲鱼Python课后练习,你这个代码没有写全,
【原题】
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)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-2 10:02:00 | 显示全部楼层
Chuen_yu 发表于 2019-8-1 13:16
就你写的代码就是这个意思,你这个代码是哪里来的,
如果是小甲鱼Python课后练习,你这个代码没有写全, ...


对,是这个,我想不通为什么x<z
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-2 10:30:52 | 显示全部楼层    本楼为最佳答案   
小香蕉2009 发表于 2019-8-2 10:02
对,是这个,我想不通为什么x


x, y, z = 6, 5, 4   【x=6,y=5,z=4】
if x < y:           【如果x<y时】
small = x           【small就是x】
if z < small:       【再进行比较z<small,因为刚才small赋值给x,所以这里是z<x 】
small = z           【把small赋值给z】
elif y < z:         【情况y<z时】
small = y           【把small赋值给y】
else:               【另外情况时】
small = z           【把small赋值给z】

small = x if (x < y and x < z) else (y if y < z else z)
三元操作符,意思其实就是上面一段代码,只是缩成一句话,
如果 (x < y and x < z)情况发生时,把small赋值给x,
情况 (x < y and x < z)不发生,但是 y < z 情况发生,把small赋值给y,

(x < y and x < z)不发生时,会产生三种情况,(x>y and x > z),(x < y and x >z),(x> y and x < z)
  (x>y and x > z)      用 y < z进行判断:根据情况小的数是z和y,用 y < z进行判断用成立的话,small赋值给y
  (x < y and x >z)     用 y < z进行判断:根据情况z<x<y,用 y < z进行判断,不成立,这个就是下面说的都不成立的情况
  (x> y and x < z)     用 y < z进行判断:根据情况 y<x<z,用 y < z进行判断用成立的话,small赋值给y

当 (x < y and x < z)不发生,y < z 情况也不发生,,把small赋值给z,

其实没有什么x<z,这个只是三个数字进行两两比较,肯定会先出来两个数字而以。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-2 11:35:14 | 显示全部楼层
Chuen_yu 发表于 2019-8-2 10:30
x, y, z = 6, 5, 4   【x=6,y=5,z=4】
if x < y:           【如果x y and x < z)
  (x>y and x > z) ...

和我理解的差不多,我脑子短路在if z < small:       【再进行比较z<small,因为刚才small赋值给x,所以这里是z<x 】
small = z           【把small赋值给z】和 x if (x < y and x < z)里 的x<z有什么关系
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-2 11:37:54 | 显示全部楼层
小香蕉2009 发表于 2019-8-2 11:35
和我理解的差不多,我脑子短路在if z < small:       【再进行比较z

没有什么必然的一一对应关系,这是两种思路的写法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-2 11:52:54 | 显示全部楼层
Chuen_yu 发表于 2019-8-2 11:37
没有什么必然的一一对应关系,这是两种思路的写法

if z < small:       【再进行比较z<small,因为刚才small赋值给x,所以这里是z<x 】
small = z    也可以改为if  x<z      small=x
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-2 11:59:01 | 显示全部楼层
小香蕉2009 发表于 2019-8-2 11:52
if z < small:       【再进行比较z

是的,只要三个数的比较思路逻辑没有冲突,哪一个数先比较是没有关系的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-2 15:11:51 | 显示全部楼层
三元操作符
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-13 02:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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