if 语句在分号分隔符之后使用时失败
if statement fails when used after semi-colon separator
我不明白为什么当我在分号(用作语句分隔符)后使用单行 if
语句时 Python 出现错误。
没关系:
if True: print("it works")
#### it works
但这给出了语法错误:
a=1; if True: print("it should work?")
#### SyntaxError: invalid syntax
我使用 Python3,Spyder。
感谢任何解释!
分号只能用于连接 "small statements",不包括 if
语句。来自 https://docs.python.org/3/reference/grammar.html:
stmt: simple_stmt | compound_stmt
simple_stmt: small_stmt (';' small_stmt)* [';'] NEWLINE
small_stmt: (expr_stmt | del_stmt | pass_stmt | flow_stmt |
import_stmt | global_stmt | nonlocal_stmt | assert_stmt)
[...]
compound_stmt: if_stmt | [...]
我不明白为什么当我在分号(用作语句分隔符)后使用单行 if
语句时 Python 出现错误。
没关系:
if True: print("it works")
#### it works
但这给出了语法错误:
a=1; if True: print("it should work?")
#### SyntaxError: invalid syntax
我使用 Python3,Spyder。
感谢任何解释!
分号只能用于连接 "small statements",不包括 if
语句。来自 https://docs.python.org/3/reference/grammar.html:
stmt: simple_stmt | compound_stmt
simple_stmt: small_stmt (';' small_stmt)* [';'] NEWLINE
small_stmt: (expr_stmt | del_stmt | pass_stmt | flow_stmt |
import_stmt | global_stmt | nonlocal_stmt | assert_stmt)
[...]
compound_stmt: if_stmt | [...]