我正在尝试比较两个答案,如果问题的答案是“e”,我需要它来调用函数CheckID,这个函数连接到某个服务器中的数据库并提取一些信息。我可以连接到数据库,但问题是它在回答问题后没有调用函数,它告诉我'e'没有定义!!我尝试通过添加e = CheckID()来定义它,但它仍然没有调用该函数。请帮助我实现这一目标或让我知道我做错了什么
这是我的代码:
import psycopg2
import psycopg2.extras
question = input("Type 'e' to Check Existing Id, or 'a' to add Account Id ? ")
if question == 'e':
CheckID()
else:
AddID()
def CheckID():
acc = input("Type ID ")
conn = psycopg2.connect(database="", user = "", password = "", host = "", port = "")
cur = conn.cursor(cursor_factory=psycopg2.extras.DictCursor)
cur.execute('select "AccountID","Zip" from "Account" where "AccountID" = %s', (acc,))
ans =cur.fetchall()
ans1 = {}
for AccountID in ans:
if len(Zip) != 3:
Zip = '111'
print(AccountID, Zip)
else:
print(AccountID, Zip)
def AddID():
print "Thank you for using our script"
ask()
这是我得到的错误
enter code here Type 'e' to Check Existing Id, or 'a' to add Account Id ? e
Traceback (most recent call last):
File "final7.py", line 4, in <module>
question = input("Type 'e' to Check Existing Id, or 'a' to add Account Id ? ")
File "<string>", line 1, in <module>
NameError: name 'e' is not defined
答案 0 :(得分:0)
如评论中所述,您在python 2中运行脚本而不是python 3.在Python 2中,input()
与eval(raw_input(...))
相同。
运行您的程序:python3 final7.py
答案 1 :(得分:0)
您的问题在于您正在使用的Python版本。我在Python 3.6中运行,代码运行正常。在Python 2.x中,
input
定义为
raw_input
所以只需在3.6中运行您的代码或更新您的&#34;输入&#34; to&#34; raw_input&#34;。