Python中一行IF条件的语法

时间:2017-03-11 10:05:49

标签: python ternary-operator

有人可以说为什么这在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

2 个答案:

答案 0 :(得分:0)

python没有分号。所以有一条断线进入同一条线。 python将代码视为写入一行的同一行。所以这里的表达式和条件语句在同一行中是无效的。 python interpreter并不能识别代码的确切含​​义。你可以使用单独的行。

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

答案 1 :(得分:0)

在Python中肯定有一种用法,ifelse子句在同一行。当您需要在某些条件下为变量赋值时,可以使用此方法。喜欢这个

a = 1 if b == 1 else 2

这表示如果b为1,a将为1,否则a将为2。 但ifelse必须全部才能形成有效的语法。