python -c 'for i in range(10): print i'
有效,并且
python -c 'a=3;'
可以,但是
python -c 'a=3;for i in range(10): print i'
出现错误
File "<string>", line 1
a=3;for i in range(10): print i
^
SyntaxError: invalid syntax
有人可以指出原因吗?谢谢。
答案 0 :(得分:5)
因为这就是Python语法的工作方式。 for
与引入缩进级别的所有其他语句一样,不喜欢在缩进级别之前添加任何内容。
在这种情况下,您需要换行符,而不是分号。这些是合法的(假设bash
):
python -c 'a=3
for i in range(10)]: print(i)'
python -c $'a=3\nfor i in range(10): print(i)'
答案 1 :(得分:4)
;
仅可用于分隔“简单”语句,而不能用于复合语句。
https://docs.python.org/3/reference/compound_stmts.html
compound_stmt ::= if_stmt
| while_stmt
| for_stmt
| try_stmt
| with_stmt
| funcdef
| classdef
| async_with_stmt
| async_for_stmt
| async_funcdef
suite ::= stmt_list NEWLINE | NEWLINE INDENT statement+ DEDENT
statement ::= stmt_list NEWLINE | compound_stmt
stmt_list ::= simple_stmt (";" simple_stmt)* [";"]