cyrusking 发表于 2020-10-12 16:31:12

课后练习题第八课三元题目疑惑不解,看了答案也不懂,求解答

x, y, z = 6, 5, 4
if x < y:
    small = x
    if z < small:
        small = z
elif y < z:
    small = y
else:
    small = z

如题,1、首先第一个问题:xyz都给定义了数值,下面那些条件判断是干啥的,small不就直接等于4了吗?

               分析: if x<y,这里是大前提
               x = small , if z < samll ,small = z,
               这里用了两个if,
               第二个if是在第一个if条件限制下进行的,y最大,X次之,Z最小,不成立就进行下个判断

         2、 elif没有缩进,这是另一种情况    ,即是x >= y 为前提,
                        elif y < z ,这时候 small = y,
               问题二:这里若是x=y,那么系统不会判定 small = x = y?

三元操作符:三元操作符格式:i =(成立) if (条件) else (不成立)
                     当条件成立时,变量i=左边,当条件不成立时,变量i=右边。
填入以上逻辑,
             3、 small = x if (x < y and x < z) else (y if y < z else z)
                   这里的else z,为什么可以直接写进去,它不是属于第三种情况吗,和 y if y < z之间为什么不需要 or 或者and

cyrusking 发表于 2020-10-12 16:32:16

本帖最后由 cyrusking 于 2020-10-12 16:35 编辑

   这个乱码不知道哪里来的,各位大佬忽略它

cyrusking 发表于 2020-10-12 16:34:06

x, y, z = 6, 5, 4
if x < y:
    small = x
    if z < small:
      small = z
elif y < z:
   small = y
else:
   small = z

昨非 发表于 2020-10-12 16:43:00

本帖最后由 昨非 于 2020-10-12 16:44 编辑

答案里:small = x if (x < y and x < z) else (y if y < z else z)
后面小括号存在一个嵌套的三元运算,
其实不用考虑这么多的,这道题的本意是让small 等于三者的最小值,
小甲鱼老师举的例子里直接给出xyz了,所以下面的代码显得有些“多此一举”的样子
不用想这么多,分析下答案中的逻辑:
如果x小于y且小于z,small = x,没问题
当()里的东西不成立时(即:x大于y或x大于z,x直接被排除),下面就看嵌套的部分:
所以:如果y<z成立,small = y,否则等于z,完成

cyrusking 发表于 2020-10-12 17:25:24

昨非 发表于 2020-10-12 16:43
答案里:
后面小括号存在一个嵌套的三元运算,
其实不用考虑这么多的,这道题的本意是让small 等于三者的 ...

大佬你的答案很简洁明了,我就差最后一点不明白了,就最后那:
当()里的东西不成立时(即:x大于y或x大于z,x直接被排除)
不成立时,如果出现(即:X等于Y,那如果这时候X=Y>Z, 第一个括号里的结果不是为Z了吗)
难道说这道题不存在相等的情况?前面那个条件时明示呢?

昨非 发表于 2020-10-12 17:29:06

cyrusking 发表于 2020-10-12 17:25
大佬你的答案很简洁明了,我就差最后一点不明白了,就最后那:
当()里的东西不成立时(即:x大于y或x ...

临界条件可以把大于号改成大于等于号避免
小甲鱼老师这里没有加是因为xyz给定了
正常情况时要用到大于等于号的

昨非 发表于 2020-10-12 18:41:04

楼主人呢?

cyrusking 发表于 2020-10-13 16:03:16

昨非 发表于 2020-10-12 18:41
楼主人呢?

彻底明白了,真心感谢!昨天忙其他事情了,抱歉!{:5_92:}

昨非 发表于 2020-10-13 16:04:30

cyrusking 发表于 2020-10-13 16:03
彻底明白了,真心感谢!昨天忙其他事情了,抱歉!

没事的
页: [1]
查看完整版本: 课后练习题第八课三元题目疑惑不解,看了答案也不懂,求解答