2016-04-10 17 views
1

döngüde Python programımda küçük bir sorun var. "Ee" yi tanımlamıyorlar! benim sorunumBenim ee tanımlamıyor ?? Onu tanımlarım. Bunun için

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) 

Ve Hata

Kodum

Traceback (most recent call last): 
    File "SQL3.py", line 43, in <module> 
    print("EE is ", ee) 
NameError: name 'ee' is not defined 

Programı okuma için ve benim MySQL Veritabanı wraiting (MySQL sunucusu diğer bilgisayarda ama bunun fragman silerseniz hepsi Tamam!)

Birisi bunun nasıl düzeltileceğini biliyor mu? Ben her şeyi deniyordum! eğer ya elif ait

+1

Yazdırırdım (cursor.fetchall()) ' –

cevap

1

Hiçbiri bu yüzden tanımlanan geçmez Gerçek için değerlendirmek:

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

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 

Sen döngü önce buna varsayılan bir değer verebilir

Eğer if/elifinizden birinin True olmasını bekliyorsanız, bunun neden olmadığını araştırmak isteyebilirsiniz.

sen küpe Dizeleri karşılaştırma gibi Kodunuz aslında başarısız

, ne yapabiliriz kullanım içinde:

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 
+0

Soruyorum çünkü şimdi neden yok, her zaman False bunu tanımlamalıyım! "E_or_e" yi basmak istiyorsam, bu beni basar "('E_OR_E is', (u'exit ',))" Sadece yaziyorum "print (" E_OR_E is ", e_or_e)" in döngü için – MineBartekSA

+0

e_e [0], satır bir tuple –

+1

Teşekkür ederiz! – MineBartekSA

0

Eğer e_or_e ne "exit" değil eşit yapar, ne "enter", ardından ee bir zorunda kalmayacaksınız değer.