SyntaxError:解析时出现意外的 EOF
Posted
技术标签:
【中文标题】SyntaxError:解析时出现意外的 EOF【英文标题】:SyntaxError: unexpected EOF while parsing 【发布时间】:2013-04-25 23:56:13 【问题描述】:我不知道为什么这不起作用请帮忙
import random
x = 0
z = input('?')
int(z)
def main():
while x < z:
n1 = random.randrange(1,3)
n2 = random.randrange(1,3)
t1 = n1+n2
print('0+1=2'.format(n1,n2,t1)
当我运行它时,它会输出这个错误
File "/Users/macbook/Documents/workspace/gamlir_filar/samlagning.py", line 12
^
SyntaxError: unexpected EOF while parsing
我正在使用 eclipse 和 python 3.3,但我不知道为什么会发生这种情况。它有时会输出这样的错误。
【问题讨论】:
每当你得到一个SyntaxError
,在看起来非常好或完全空的行上没有任何意义,就值得看看它前面的行。如果上一行有未闭合的圆括号、方括号、大括号等,那么您正在查看的行将被视为上一行的延续。
一些旁注:只调用int(z)
不会做任何事情(除了引发异常是z
不能被解析为整数);您需要将结果存储在某处(例如,z = int(z)
)。另外,因为你从不修改循环内的x
或z
(如果你这样做了,它会给你一个UnboundLocalError
),x < z
永远不会改变,所以一旦你得到进入循环,你就再也无法脱身了。
【参考方案1】:
print()
中缺少右括号 )
:
print('0+1=2'.format(n1,n2,t1))
而且您也没有存储来自int()
的返回值,所以z
仍然是一个字符串。
z = input('?')
z = int(z)
或者简单地说:
z = int(input('?'))
【讨论】:
【参考方案2】:也许这就是你的意思:
import random
x = 0
z = input('Please Enter an integer: ')
z = int(z) # you need to capture the result of the expressioin: int(z) and assign it backk to z
def main():
for i in range(x,z):
n1 = random.randrange(1,3)
n2 = random.randrange(1,3)
t1 = n1+n2
print('0+1=2'.format(n1,n2,t1))
main()
-
做 z = int(z)
在清单的最后一行代码中添加缺少的右括号。
并且有一个从 x 到 z-1 迭代的 for 循环
这是 range() 函数的链接: http://docs.python.org/release/1.5.1p1/tut/range.html
【讨论】:
以上是关于SyntaxError:解析时出现意外的 EOF的主要内容,如果未能解决你的问题,请参考以下文章
SyntaxError:编译 ejs 时出现意外的 token.ejs
SyntaxError:在 Heroku 上托管 Discord 机器人时出现意外的令牌 '??='
Node.js SyntaxError:设置 Forge 查看器时出现意外标识符
Babel编译错误SyntaxError:使用spread运算符时出现意外的标记