input()导致意外的EOF SyntaxError

时间:2015-03-03 08:00:40

标签: python python-2.7 python-3.x

我为团队项目编写了一个返回函数。 我使用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

如何修复此错误?

2 个答案:

答案 0 :(得分:2)

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

前者在输入字符串上运行eval(),并期望有效的Python代码作为输入。您的输入create vlan不是有效的Python,无法进行评估。后者只返回一个字符串,没有进一步处理。

答案 1 :(得分:0)

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