我的 ee 没有定义??我定义它。在这个 if 循环中

My ee in not define?? I define it. In this if's in for loop

我的 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"):
    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

程序用于读取和写入我的 MySQL 数据库(MySQL 服务器在其他计算机上,但如果我删除该片段就没问题了!)

有人知道如何解决这个问题吗?我什么都试过了!

ifelif

None 曾经评估为 True 所以它永远不会被定义:

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_or_e 既不等于 "exit",也不等于 "enter",则 ee 永远不会有值。