鱼C论坛

 找回密码
 立即注册
查看: 2036|回复: 10

[已解决]有关三元操作符的问题,课上例子我理解,课后作业跳跃了

[复制链接]
发表于 2020-6-29 04:48:52 | 显示全部楼层 |阅读模式

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

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

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)  这段 如果  不加 外层括号 会如何

最佳答案
2020-6-29 08:16:26
本帖最后由 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)  这段 如果  不加 外层括号 会如何


不需要,因为题目就是这么要求的,除非题目有这样的要求你才需要这样比;加不加括号都一样,这里甲鱼哥只是为了你能更好的理解三元运算符的结构层次


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-29 07:45:06 | 显示全部楼层
1.X,Y,Z = 6,5,4结果是X =5  Y = 5  Z = 4
2.small = x if (x < y and x < z) 是指x<y 和x<z同时成立时small = x
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-29 07:47:05 | 显示全部楼层
3.不能不加括号的,
else (y if (y<z) else z)
相当于
else:
    if(y < z):
        y = y
    else:
        y = z
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-29 08:16:26 | 显示全部楼层    本楼为最佳答案   
本帖最后由 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)  这段 如果  不加 外层括号 会如何


不需要,因为题目就是这么要求的,除非题目有这样的要求你才需要这样比;加不加括号都一样,这里甲鱼哥只是为了你能更好的理解三元运算符的结构层次


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-29 08:45:30 | 显示全部楼层
小甲鱼的铁粉 发表于 2020-6-29 07:47
3.不能不加括号的,
else (y if (y

可以哈,加括号并没有影响
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-29 09:01:24 | 显示全部楼层
Twilight6 发表于 2020-6-29 08:45
可以哈,加括号并没有影响

好的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-29 15:48:36 | 显示全部楼层
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  即可?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-29 16:13:19 | 显示全部楼层
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  即可?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-29 16:20:51 | 显示全部楼层
fazerse 发表于 2020-6-29 16:13
追问一下,   
当你 x < y  和  x > z 时候会满足这两个条件:
    if x < y:

嗯 我觉得你的更为准确
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-29 16:54:00 | 显示全部楼层
Twilight6 发表于 2020-6-29 16:20
嗯 我觉得你的更为准确

谢谢老师,一贯解答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-29 16:55:59 | 显示全部楼层
fazerse 发表于 2020-6-29 16:54
谢谢老师,一贯解答

  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-11 14:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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