使用python 3.6和spyder 当我尝试运行任何具有(:)的代码时,它会给我这个错误
SyntaxError:解析时的意外EOF
我在Jupyter笔记本中尝试相同的代码并且工作正常
我尝试了这段代码(我按下后输入:然后继续)
for i in range(5):
print(i)
或
def printme( str ):
"This prints a passed string into this function"
print str
return
错误指向for循环或函数定义的第一行中的冒号(:)
如您所见,Jupyter中的相同代码很好
我想知道spyder中的问题是什么,它适用于其他代码
答案 0 :(得分:1)
这不是一个spyder问题,而是代码的格式问题。当行中出现错误时,会引发语法错误。指示箭头并不总是指向错误的确切位置,它仅指示解释器绊倒的位置。所以错误通常是指示箭头附近的某处。
在你的第一种情况下,指示的行没有任何可怕的错误,所以要么你在下一行做错了(比如缺少缩进或某些东西),或者你的解释器不允许使用str
作为变量在函数定义中,因为它是保留关键字。
在第二种情况下,函数名和开始括号之间有不允许的空格。这段代码应该在jupyter和spyder中运行:
def printme(string):
print(string)
for i in range(5):
print(i)
注意:我在语句周围添加括号print
以与python 3兼容。