2015-03-03 100 views
1

我已经为我的组项目写了一个返回函数。 我使用python 3.4和写这:input()会导致意外的EOF语法错误

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为蟒蛇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 

如何修复这个bug?

回答

2

在Python 2.7中,用raw_input()替换input()

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

+0

Omg,谢谢,但我不应该问这个愚蠢的问题 – 2015-03-03 08:04:29

+1

没关系,你可能不是第一个绊倒这个的人。在野外有这个答案,至少会减少其他人经历相同事情的几率:) – icedwater 2015-03-03 08:05:59

0

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