python spyder无法定义函数或运行循环

时间:2018-03-25 21:36:30

标签: python spyder colon

使用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循环或函数定义的第一行中的冒号(:)

image

image

如您所见,Jupyter中的相同代码很好

image

我想知道spyder中的问题是什么,它适用于其他代码

1 个答案:

答案 0 :(得分:1)

这不是一个spyder问题,而是代码的格式问题。当行中出现错误时,会引发语法错误。指示箭头并不总是指向错误的确切位置,它仅指示解释器绊倒的位置。所以错误通常是指示箭头附近的某处。

在你的第一种情况下,指示的行没有任何可怕的错误,所以要么你在下一行做错了(比如缺少缩进或某些东西),或者你的解释器不允许使用str作为变量在函数定义中,因为它是保留关键字。

在第二种情况下,函数名和开始括号之间有不允许的空格。这段代码应该在jupyter和spyder中运行:

def printme(string):
  print(string)

for i in range(5):
  print(i)

注意:我在语句周围添加括号print以与python 3兼容。