解释
x, y, z = 6, 5, 4if x < y:
small = x
if z < small:
small = z
small = x if (x < y and x < z) 三元操作符,
small = x if (x < y and x < z) 【当x<y 且x<z成立时,把small 标识赋值给x】 Chuen_yu 发表于 2019-8-1 10:38
三元操作符,
small = x if (x < y and x < z) 【当x
if z < small:
small = z
应该是x>z呀 小香蕉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) Chuen_yu 发表于 2019-8-1 13:16
就你写的代码就是这个意思,你这个代码是哪里来的,
如果是小甲鱼Python课后练习,你这个代码没有写全, ...
对,是这个,我想不通为什么x<z 小香蕉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,这个只是三个数字进行两两比较,肯定会先出来两个数字而以。 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有什么关系 小香蕉2009 发表于 2019-8-2 11:35
和我理解的差不多,我脑子短路在if z < small: 【再进行比较z
没有什么必然的一一对应关系,这是两种思路的写法 Chuen_yu 发表于 2019-8-2 11:37
没有什么必然的一一对应关系,这是两种思路的写法
if z < small: 【再进行比较z<small,因为刚才small赋值给x,所以这里是z<x 】
small = z 也可以改为ifx<z small=x 小香蕉2009 发表于 2019-8-2 11:52
if z < small: 【再进行比较z
是的,只要三个数的比较思路逻辑没有冲突,哪一个数先比较是没有关系的 三元操作符
页:
[1]