条件表达式 最右侧写完整语句为什么出错
本帖最后由 泼墨染笛香 于 2024-2-28 14:50 编辑https://fishc.com.cn/forum.php?mod=viewthread&tid=157202
这里讲条件表达式语法为:
条件成立时执行的语句 if 条件 else 条件不成立时执行的语句
把条件放正中间,然后左右紧挨着关键字 if 和 else,最左侧是条件成立时执行的语句,最右侧是条件不成立时执行的语句。
那么为什么这样写报错:
a = 3
b = 5
small=a if a<b else small=b
print(small)
而应该这么写:
a = 3
b = 5
small=a if a<b else b
print(small)
---——————————————————————————————————————————————————————————————---
另外我查到三元表达式的说法,是否只有这一部分“a if a<b else b”叫三元表达式
即条件表达式应为“值1 if 条件 else 值2”,而不是“表达式1 if 条件 else 表达式2”
---——————————————————————————————————————————————————————————————---
附上小甲鱼讲的优先级顺序,赋值应该在哪个位置 本帖最后由 jackz007 于 2024-2-28 10:35 编辑
首先,你的理解完全正确
其次,这个表达式可以这样来理解
small = a if a < b else b
首先,是赋值
small = <表达式>
<表达式> 的值是
a if a < b else b
我们知道,在 Python 的所有运算符中,= 的优先等级是最低的,所以,表达式的运算顺序是先计算三目运算表达式的值,最后才是赋值。 泼墨染笛香 发表于 2024-2-28 14:51
您好,我在问题里附上了小甲鱼讲的优先级顺序,赋值应该在哪个位置
毫无疑问,= 的优先级最低,比 1 还要低。 这个问题可能是因为在条件表达式的最右侧,没有写完整的语句导致的。按照条件表达式的规则,最右侧应该是条件不成立时执行的语句。
让我们看看你的例子:
a = 3
b = 5
small = a if a
这里的 `if a` 应该是一个完整的条件表达式,但是你没有提供一个条件不成立时执行的语句。条件表达式需要一个完整的形式,即一个条件成立时执行的语句加上一个条件不成立时执行的语句。
修复这个问题很简单,只需在 `if` 后面添加一个条件不成立时执行的语句即可。比如你可以将 `small` 赋值为 `b`,这样就满足了条件表达式的要求:
a = 3
b = 5
small = a if a < b else b
现在,当 `a` 小于 `b` 时,`small` 的值将为 `a`,否则将为 `b`。这样就完成了一个完整的条件表达式。
希望能帮到你!如果还有其他问题,请随时提问。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 jackz007 发表于 2024-2-28 10:27
首先,你的理解完全正确
其次,这个表达式可以这样来理解
您好,我在问题里附上了小甲鱼讲的优先级顺序,赋值应该在哪个位置 jackz007 发表于 2024-2-28 15:51
毫无疑问,= 的优先级最低,比 1 还要低。
谢谢解答 给您置顶
页:
[1]