bao1xf2 发表于 2022-5-9 20:57:33

条件表达式求助

如下图,这一段是不是有bug啊,实际运行下来中间一次测试结果为什么会是2,是我理解错了吗,求大佬解答{:10_245:}


豆嘉木 发表于 2022-5-9 22:14:08

这段代码应该就是个bug,小甲鱼错了吧,第一次判断a<c为True,后面就不会判断了,直接print(a),所以结果就是2,语法没问题但就是个bug。
所以这里只能用条件分支语句,三元表达式不可

Twilight6 发表于 2022-5-9 22:22:26

豆嘉木 发表于 2022-5-9 22:14
这段代码应该就是个bug,小甲鱼错了吧,第一次判断a


代码运行不报错,语法就没问题,甲鱼哥的确实有错,但三元运算符并不是不能实现,可以这样写:

print(a) if a < b and a < c else print(b) if b < c else print(c)

豆嘉木 发表于 2022-5-9 22:32:25

Twilight6 发表于 2022-5-9 22:22
代码运行不报错,语法就没问题,甲鱼哥的确实有错,但三元运算符并不是不能实现,可以这样写:

对的,我的意思就是语法上没有bug,但代码就是个bug

豆嘉木 发表于 2022-5-9 22:35:34

Twilight6 发表于 2022-5-9 22:22
代码运行不报错,语法就没问题,甲鱼哥的确实有错,但三元运算符并不是不能实现,可以这样写:

你发现了这个问题可以去找甲鱼哥勘误,奖品满丰厚的{:5_109:}

Twilight6 发表于 2022-5-9 22:48:46

豆嘉木 发表于 2022-5-9 22:35
你发现了这个问题可以去找甲鱼哥勘误,奖品满丰厚的

{:9_227:}

bao1xf2 发表于 2022-5-9 22:50:07

豆嘉木 发表于 2022-5-9 22:35
你发现了这个问题可以去找甲鱼哥勘误,奖品满丰厚的

不知道怎么向甲鱼哥勘误,你要是会的话可以帮忙提交下{:5_109:}

小甲鱼 发表于 2022-5-10 01:29:11

bao1xf2 发表于 2022-5-9 22:50
不知道怎么向甲鱼哥勘误,你要是会的话可以帮忙提交下

感谢指出,这里其实是由于优先级导致的错误,加上两对小括号就可以解决问题:

(print(a) if a < c else print(c)) if a < b else (print(b) if b < c else print(c))

豆嘉木 发表于 2022-5-10 07:32:26

最佳答案为啥不是我啊啊啊啊啊啊啊啊啊

bao1xf2 发表于 2022-5-10 21:02:45

豆嘉木 发表于 2022-5-10 07:32
最佳答案为啥不是我啊啊啊啊啊啊啊啊啊

print("你也是最佳!!!"){:5_109:}{:5_109:}

bao1xf2 发表于 2022-5-10 21:04:24

小甲鱼 发表于 2022-5-10 01:29
感谢指出,这里其实是由于优先级导致的错误,加上两对小括号就可以解决问题:

{:10_275:}

豆嘉木 发表于 2022-5-10 22:21:09

bao1xf2 发表于 2022-5-10 21:02
print("你也是最佳!!!")

while True:

豆嘉木 发表于 2022-5-10 22:21:56

bao1xf2 发表于 2022-5-10 21:02
print("你也是最佳!!!")

while True:
    printf("谢谢!")

之前不小心发了,不知道怎么删
页: [1]
查看完整版本: 条件表达式求助