【Python新手求助】关于三元操作符的转换
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合并吗? 没看懂你的问题?
哪里有 if z<small? zltzlt 发表于 2020-2-6 18:20
没看懂你的问题?
哪里有 if z
在原代码的第一个if里面包着{:10_266:} lzymm1 发表于 2020-2-6 19:02
在原代码的第一个if里面包着
不好意思,没看到上面的 zltzlt 发表于 2020-2-6 19:03
不好意思,没看到上面的
大佬,能解决吗{:10_266:} 前面定义过 small(small = x)。如果 z 小于 small 则 small 等于 z,否则等于 x。 过来学习学习 嘿嘿{:5_110:} 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
页:
[1]