gpt4 book ai didi

Python::三元运算符::无法使用多个语句

转载 作者:行者123 更新时间:2023-12-03 09:01:25 24 4
gpt4 key购买 nike

我有这样的场景。

a = 3
b = 5
c = 7
# using ternary operator now,
print a; c = 1 if a < b else print b ; c = 2

当我在两侧使用赋值运算符时,会引发此错误

SyntaxError: can't assign to conditional expression

如果我像这样在一侧使用它,效果很好。

a = 1 ; c = 1 if a < b else b 

所以问题是如何在Python三元运算符中使用多个语句?

最佳答案

简短回答:三元表达式中不能有语句。

三元表达式并不包含语句,而仅包含表达式。在 Python2 中,print 是一条语句,因此将其放在三元中是无效的语法。

c = 1 if a < b else print b
# ^^^^^^^ In Python2 `print` is a statement

三元组的目的是条件返回一个值。因此,两个分支都应该是最好返回相同类型值的表达式。

# This is a good use of ternary expressions
c = 1 if a < b else 2

任何其他情况可能应该使用 if 语句

if a < b:
c = 1
else:
print b
c = 2

关于Python::三元运算符::无法使用多个语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49876618/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com