Python 我的ee中没有定义??我定义它。在这种情况下,如果';这是循环
我的Python程序有点问题。他们没有定义我的“ee” 我的问题代码Python 我的ee中没有定义??我定义它。在这种情况下,如果';这是循环,python,sql,if-statement,for-loop,cursor,Python,Sql,If Statement,For Loop,Cursor,我的Python程序有点问题。他们没有定义我的“ee” 我的问题代码 cursor = cnx.cursor() read_ee = ("SELECT e_or_e FROM ITN " "WHERE name = 'names' ") cursor.execute(read_ee) for(e_or_e) in cursor: if(e_or_e == "exit"): ee = "enter" elif(e_or_e == "enter"):
cursor = cnx.cursor()
read_ee = ("SELECT e_or_e FROM ITN "
"WHERE name = 'names' ")
cursor.execute(read_ee)
for(e_or_e) in cursor:
if(e_or_e == "exit"):
ee = "enter"
elif(e_or_e == "enter"):
ee = "exit"
print("EE is ", ee)
和错误
Traceback (most recent call last):
File "SQL3.py", line 43, in <module>
print("EE is ", ee)
NameError: name 'ee' is not defined
回溯(最近一次呼叫最后一次):
文件“SQL3.py”,第43行,在
打印(“EE是”,EE)
NameError:未定义名称“ee”
该程序用于读取和包装我的MySQL数据库(MySQL服务器位于另一台计算机上,但若我删除该片段,则一切正常!)
有人知道怎么解决这个问题吗?我什么都试过了 if或elif的计算结果都不是真的,因此它永远不会被定义:
for e_or_e in cursor:
if e_or_e == "exit": # always False
ee = "enter"
elif e_or_e == "enter": # always False
ee = "exit"
print("EE is ", ee) # undefined
可以在循环之前为其指定默认值:
ee = None
for e_or_e in cursor:
if e_or_e == "exit":
ee = "enter"
elif e_or_e == "enter":
ee = "exit"
# if ee is not None we assigned some value in the loop
if ee is not None:
print("EE is ", ee)
但是,如果您希望其中一个if/elif为真,那么您可能需要调查为什么没有发生
当您将字符串与元组进行比较时,您的代码实际上失败了,您可以在以下情况下使用:
for e_or_e in cursor:
if "exit" in e_or_e:
ee = "enter"
break
elif "enter" in e_or_e:
ee = "exit"
break
else:
# neither exit nor enter are returned
如果
e\u或
既不等于“exit”
,也不等于“enter”
,那么ee
将永远不会有值。我会打印(cursor.fetchall())
我会问,因为我现在不知道为什么总是False,我必须定义它!如果我想打印“e_或e”它打印我这个“('e_或e'e is',(u'exit',)”我只写“print”('e_或e is',e_或e)”在循环中你需要e_e[0],行是一个tupleNo,我想当你找到任何一个值时,你都想中断,所以我在中添加了如何使用来解决这个问题,如果你在一个侧注中找到这个值,你就可以直接用mysql获得ee