鱼C论坛

 找回密码
 立即注册
查看: 2481|回复: 7

【Python新手求助】关于三元操作符的转换

[复制链接]
发表于 2020-2-6 18:17:23 | 显示全部楼层 |阅读模式

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

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

x
1. Python 的作者在很长一段时间不肯加入三元操作符就是怕跟 C 语言一样搞出国际乱码大赛,蛋疼的复杂度让初学者望而生畏,不过,如果你一旦搞清楚了三元操作符的使用技巧,或许一些比较复杂的问题反而迎刃而解。

请将以下代码修改为三元操作符实现:
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)
按着翻译成了这样:
if x<y and x<z:
        small = x
elif y<z:
        samll = y
else:
        small = z
这个时候我才会转换。然后我看了一下原代码,为什么if z<small 变成了 x<z 然后合并在了 if x<y and x<z 里(我知道small=x),但是一看到下面的else: small = z突然就乱了,原代码上写着的是if z<small small = z,那不应该是把这条跟下面的small = z合并吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-6 18:20:13 | 显示全部楼层
没看懂你的问题?

哪里有 if z<small?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-6 19:02:48 | 显示全部楼层
zltzlt 发表于 2020-2-6 18:20
没看懂你的问题?

哪里有 if z

在原代码的第一个if里面包着
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-6 19:03:17 | 显示全部楼层
lzymm1 发表于 2020-2-6 19:02
在原代码的第一个if里面包着

不好意思,没看到上面的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-7 15:11:10 | 显示全部楼层
zltzlt 发表于 2020-2-6 19:03
不好意思,没看到上面的

大佬,能解决吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-7 16:25:45 | 显示全部楼层
前面定义过 small(small = x)。如果 z 小于 small 则 small 等于 z,否则等于 x。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-8 08:32:06 | 显示全部楼层
过来学习学习 嘿嘿
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-9 06:37:06 | 显示全部楼层
x, y, z = 6, 5, 4

#最小的那个一定小于另外两个

if x < y: 
    small = x #如果x比y小,最小可能是x
    if z < small: #同 if z < x
        small = z #如果z小于x,最小一定是z
elif y < z: 
    small = y #如果x不比y小,y又比z小,最小一定是y
else:
    small = z #如果x不比y小,y又不比z小,最小一定是z


if x<y and x<z:
    small = x #如果x小于y和z,最小一定是x
elif y<z:
    samll = y #如果x不小于y和z(x一定不是最小),但y小于z,y一定是最小
else:
    small = z #如果x不小于y和z(x一定不是最小),y也不小于z(y也不是最小),最小一定是z
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 05:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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