Python 2.7.8 在终端(14.04)中打印语句“语法错误:语法无效”但在 vim 上运行良好,为什么?
下面的程序打印平方和,首先我尝试在终端上运行这个问题,它给出了“语法错误:无效语法”但是当复制相同在 vim 编辑器上编写代码并在终端 python for.py 上运行(文件名是 for.py),没有错误,请解释其背后的原因。
在终端上直接运行
Type "help", "copyright", "credits" or "license" for more information.
>>> squares= [1, 4, 9, 16]
>>> sum=0
>>> for num in squares:
... sum+=num
... print sum
File "<stdin>", line 3
print sum
^
SyntaxError: invalid syntax
在 vim 上
$ vim for.py
squares= [1, 4, 9, 16]
sum=0
for num in squares:
sum+=num
print sum
python for.py
output:30 #正确运行
在@mgilson 和@ohope5 的建议下,成功了,谢谢
Type "help", "copyright", "credits" or "license" for more information.
>>> squares=[1, 4, 9, 16]
>>> sum=0
>>> for num in squares:
... sum+=num
...
>>> print sum
30
最佳答案
REPL(读取-评估-打印-循环)无法提前查看下一行以查看循环是否以与普通解析器相同的方式结束。换句话说,当 python 的普通解析器解析您的文件时,它会看到缩进并知道循环在 sum+=num
之后结束。当 REPL 到达同一行时,它无法知道是否应该有另一个语句,因此它假定还有另一个语句。告诉 REPL 这是一个循环的终端行(或者,更一般地说,任何一组命令的结尾)的方法是输入一个空行。
关于Python 2.7.8 在终端(ubuntu 14.04)中打印语句 “Syntax Error: invalid syntax” 但在 vim 上运行良好,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26390318/