Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我的ee中没有定义??我定义它。在这种情况下,如果';这是循环_Python_Sql_If Statement_For Loop_Cursor - Fatal编程技术网

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

我的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
回溯(最近一次呼叫最后一次):
文件“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