input() 导致意外的 EOF SyntaxError [重复]

问题描述 投票:0回答:2

我为我的小组项目编写了一个返回函数。 我正在使用 python 3.4 并写了这个:

def readrouter(x, y):
        conn = sqlite3.connect('server.db')
        cur = conn.cursor()
        cur.execute("SELECT DISTINCT command FROM router WHERE
                     function =? or type = ?  ORDER BY key ASC",(x, y))
        read = cur.fetchall()
        return read;

a = input("x:")
b = input("y:")
for result in readrouter(a,b):
    print (result[0])

由于我的主要成员正在使用2.7,我现在需要遵循他的版本。 当我将 .py 重新输入 python 2.7 后 有错误:

x:create vlan
Traceback (most recent call last):
  File "C:/Users/f0449492/Desktop/2015225/database.py", line 322, in <module>
    a = input("x")
  File "<string>", line 1
    create vlan
             ^
SyntaxError: unexpected EOF while parsing

Process finished with exit code 1

如何修复这个错误?

python python-2.7 python-3.x
2个回答
2
投票

在 Python 2.7 中,将 input() 替换为 raw_input()

前者在输入字符串上运行 eval() 并期望有效的 Python 代码作为输入。 您的输入

create vlan
不是有效的 Python,无法进行评估。 后者只是返回一个字符串,没有进一步处理。


0
投票

作为后续 - 为了确保与两个 Python 分支的兼容性,您可以使用 six .

© www.soinside.com 2019 - 2024. All rights reserved.