Fra*_*ing 1 python if-statement
我想知道是否可以在一行中编写以下python if语句.我也想知道为什么我收到以下错误:
python -c 'a=1; if True: print a; else: a=a+1'
File "<string>", line 1
a=1; if True: print a; else: a=a+1
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
stmt_list ::= simple_stmt (";" simple_stmt)* [";"]
Run Code Online (Sandbox Code Playgroud)
一种if说法是复合语句,所以它是无效的语法包含它.
允许以分号分隔的列表中的复合语句会导致含糊不清.这是有效的语法:
if condition: a = 1; b = 1
Run Code Online (Sandbox Code Playgroud)
两个赋值只有在condition为真时才会执行,这就是大多数人直观地阅读该陈述的方式.如果我们允许的话
c = 1; if condition: a = 1; b = 1
Run Code Online (Sandbox Code Playgroud)
对于代码的读者来说,不清楚是否b = 1是if声明的一部分.
Python使用缩进来分隔代码套件,并且不能在以分号分隔的语句列表中使用缩进.