有关三元操作符的问题,课上例子我理解,课后作业跳跃了
不好意思,0 基础问的问题较可笑。题目如此,
请将以下代码修改为三元操作符实现:
x, y, z = 6, 5, 4
if x < y:
small = x
if z < small:
small = z
elif y < z:
small = y
else:
small = z
复制代码
===============================================================================================
首先,这个X,Y,Z=6,5, 4 怎么理解是6,5,4 三个数字随机 赋值给X,Y,Z 吗?
其次 答案中, small = x if (x < y and x < z) 不是 只要X<Y small 就等于X 了?如何推导出 还需要满足and 后面的 X<Z ?
另外,想确认一下, 要得出small = Y 只需要 if (x < y and x < z) 条件为false, 也就是 X >=Y即可, 不用考虑 X与Z 的 比值?
那么后面的else (y if (y<z) else z)这段 如果不加 外层括号 会如何
1.X,Y,Z = 6,5,4结果是X =5Y = 5Z = 4
2.small = x if (x < y and x < z) 是指x<y 和x<z同时成立时small = x 3.不能不加括号的,
else (y if (y<z) else z)
相当于
else:
if(y < z):
y = y
else:
y = z 本帖最后由 Twilight6 于 2020-6-29 08:45 编辑
首先,这个X,Y,Z=6,5, 4 怎么理解是6,5,4 三个数字随机 赋值给X,Y,Z 吗?
这个就是按顺序赋值,右边的数值按顺序赋值给左边的参数,比如左边第一个也就是的 X 对应的就是 右边第一个也就是 6,这样赋值的
其次 答案中, small = x if (x < y and x < z) 不是 只要X<Y small 就等于X 了?如何推导出 还需要满足and 后面的 X<Z ?
当你 x < y和x > z 时候会满足这两个条件:
if x < y:
small = x
if z < small:
small = z
导致 small 最后会被 z 赋值所覆盖,所以三元运算符里面要等于 x 时候 还要加上个 x < z 使得内部的 if 条件不成立
另外,想确认一下, 要得出small = Y 只需要 if (x < y and x < z) 条件为false, 也就是 X >=Y即可, 不用考虑 X与Z 的 比值?
那么后面的else (y if (y<z) else z)这段 如果不加 外层括号 会如何
不需要,因为题目就是这么要求的,除非题目有这样的要求你才需要这样比;加不加括号都一样,这里甲鱼哥只是为了你能更好的理解三元运算符的结构层次
小甲鱼的铁粉 发表于 2020-6-29 07:47
3.不能不加括号的,
else (y if (y
可以哈,加括号并没有影响 Twilight6 发表于 2020-6-29 08:45
可以哈,加括号并没有影响
好的{:10_297:} Twilight6 发表于 2020-6-29 08:16
这个就是按顺序赋值,右边的数值按顺序赋值给左边的参数,比如左边第一个也就是的 X 对应的就是...
追问一下,
当你 x < y和x > z 时候会满足这两个条件:
if x < y:
small = x
if z < small:
small = z
导致 small 最后会被 z 赋值所覆盖,所以三元运算符里面要等于 x 时候 还要加上个 x < z 使得内部的 if 条件不成立
这里我当时考虑到了 第二个 if中 small等价x 时, 两个 if 都成立, 则small取值 Z, 不过如果要逆否 Z<X 不是应该是X<=Z吗? 为何只要 X< Z即可? Twilight6 发表于 2020-6-29 08:16
这个就是按顺序赋值,右边的数值按顺序赋值给左边的参数,比如左边第一个也就是的 X 对应的就是...
追问一下,
当你 x < y和x > z 时候会满足这两个条件:
if x < y:
small = x
if z < small:
small = z
导致 small 最后会被 z 赋值所覆盖,所以三元运算符里面要等于 x 时候 还要加上个 x < z 使得内部的 if 条件不成立
这里我当时考虑到了 第二个 if中 small等价x 时, 两个 if 都成立, 则small取值 Z, 不过如果要逆否 Z<X 不是应该是X<=Z吗? 为何只要 X< Z即可? fazerse 发表于 2020-6-29 16:13
追问一下,
当你 x < y和x > z 时候会满足这两个条件:
if x < y:
嗯 我觉得你的更为准确 Twilight6 发表于 2020-6-29 16:20
嗯 我觉得你的更为准确
谢谢老师,一贯解答 fazerse 发表于 2020-6-29 16:54
谢谢老师,一贯解答
{:10_297:}
页:
[1]