Python 中一行 IF 条件的语法

Syntax of one line IF condition in Python

有人能说说为什么这在 Python 中不起作用吗?它只是无效语法还是有更多内容?

arr[0] += 12 if am_or_pm == 'PM'

错误信息:

  File "solution.py", line 13
    arr[0] += 12 if am_or_pm == 'PM'
                               ^
SyntaxError: invalid syntax 

这个有效:

if am_or_pm == 'PM': arr[0] += 12

python 没有分号。所以在同一行中有断线。 python考虑把代码写成一行写成一行。所以这里的表达式和条件语句在同一行中是无效的。 python 解释器无法识别代码的确切含​​义。你可以为此使用单独的行。

arr[0] += 12 
if am_or_pm == 'PM':

Python中肯定有一种用法是ifelse子句在同一行。当您需要在特定条件下为变量赋值时使用此方法。像这样

a = 1 if b == 1 else 2

这意味着如果 b 为 1,则 a 将为 1,否则,a 将为 2。
但是 ifelse 必须写成 all 才能形成有效的语法。