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

标签 python if-statement conditional-statements ternary-operator

我有这样的场景。

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/

相关文章:

python - Django 的内联管理 : a 'pre-filled' field

python - 如何让 venv 中安装的包显示在 PyCharm 项目中?

python - (Python) If Else 问题和列表到字符串转换问题

java - Java中if/else-if/else转换为三元运算符

angularjs - Angular 仅显示大于零的数字

python - 如何网络抓取嵌套的 div 和 ol 类

python - 我怎么知道 Pandas 数据框单元格的类型

javascript - "else if"Javascript计算器中的条件

javascript - 使用 jQuery 条件更改 CSS 背景

c++ - 当我们在 for 循环条件中使用 cin 时发生了什么?