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))。另外,因为你从不修改循环内的xz(如果你这样做了,它会给你一个UnboundLocalError),x &lt; 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运算符时出现意外的标记

将 Moment js 与 ASP 5/MVC6 一起使用时出现“未捕获的 SyntaxError:意外的令牌导入”

快速写入 JSON 文件时出现意外错误