python -c 'import sys; print "a"'
有效,并且
python -c 'for a in [1, 2, 3]: print a'
有效,但是
python -c 'import sys; for a in [1, 2, 3]: print a'
失败
File "<string>", line 1
import sys; for a in [1, 2, 3]: print a
^
为什么?
编辑 我的解决方法:
python -c 'import sys; print "\n".join([1, 2, 3])'
(幸运的是它也适用于我的真实代码。)
最佳答案
您只能使用 ;
来分隔一行中的非复合语句;语法不允许非复合语句和用分号分隔的复合语句。
相关语法规则如下:
stmt: simple_stmt | compound_stmt
simple_stmt: small_stmt (';' small_stmt)* [';'] NEWLINE
simple_stmt
产生式中的;
是唯一允许分号分隔语句的地方。有关详细信息,请参阅 full Python grammar .
关于python - Python 单行语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23730644/