|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
不好意思,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) 这段 如果 不加 外层括号 会如何
本帖最后由 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) 这段 如果 不加 外层括号 会如何
不需要,因为题目就是这么要求的,除非题目有这样的要求你才需要这样比;加不加括号都一样,这里甲鱼哥只是为了你能更好的理解三元运算符的结构层次
|
|