python零基础课程
为什么条件表达式small = a if a < b else small = b会报错
small = a if a < b else b就不会报错 哈哈,没错!这段代码就像在厨房里做饭时,把两个锅的内容搞混了。我们来简单分析一下。
在Python中,条件表达式(也叫三元运算符)的一般格式是:
<值1> if <条件> else <值2>
这种表达式会检查 `<条件>`,如果为真,就返回 `<值1>`,否则返回 `<值2>`。
你的第一段代码:
small = a if a < b else small = b
这里的问题在于,你试图在条件表达式的`else`部分直接赋值,这样做是不被允许的。因为在条件表达式中,`else`后面应该是“值”,而不是赋值操作。换句话说,`else`部分不能像一个命令一样去执行赋值操作。
就像你不能在点餐时说:“我要这个汉堡,如果没有,那就给我加薯条”。你必须明确告诉服务员你想要的是什么,而不是在选择之后再给他们指示。
而你的第二段代码:
small = a if a < b else b
这是正确的写法!它的意思是:如果`a`小于`b`,那么将`small`赋值为`a`,否则赋值为`b`。这样做完全符合条件表达式的语法规则,因此不会报错。
记住,条件表达式就是一个漂亮的简化工具,用得当可以让代码更简洁,但用错了就会让你感觉像是在和一道数学题对着干!希望这个解释和比喻能让你对条件表达式有了更清晰的理解!继续加油哦!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 https://www.bilibili.com/video/BV1c4411e77t?p=16&vd_source=86431e4767283d538cf7718e4d6d3195
重新回顾一下吧。
small=a if a<b else b
就等同于下面的代码
if a<b:
small=a
else:
b
条件不符合时你只给python一个b是啥意思?
还有就是不太建议这种写法,只能用来炫炫技{:10_256:} 这就是语法,记住就行{:10_256:}
变量 = 值1 if <条件> else 值2 本帖最后由 jackz007 于 2024-8-5 21:23 编辑
small = a if a < b else b
这个问题需要从运算符优先级的角度来考虑,在这个表达式中,= 的优先级最低,所以,会在计算出这个表达式的值
a if a < b else b
之后,最后才进行赋值。而这个表达式可以被视为一个数值,当 a < b 的时候,其值为 a,否则,其值为 b
简单理解:语法规则,记住即可
条件表达式中最终结果是返回一个值,所以不能在条件表达式中进行赋值操作
例如前者:
small = a if a < b else small = b
你可能理解的代码意义是:条件成立则执行 small = a ,不成立则执行 else 之后的 small = b
实际上正确的即就是后者代码:
small = a if a < b else b
条件成立则返回 a,不成立则返回 b
至于你要将返回的值,如何使用那是你具体代码情况而定了,例如这里就是赋值给 small
所以最后概括:赋值运算符 "=" 号的左边必须是一个单独的变量,而不能是一个表达式。
small = a if a < b else small = b
所以错误的地方主要在后者的 small = b,python 会将前面一整段结构认为是需要赋值的内容而报错
页:
[1]