2014-11-01 101 views
-3

在每個「Elif或Else」語句之後,Python完全忽略了「For statemnt」,我已經通過在其中放置了打印行來調試它,沒有打印任何內容,我在for語句和Elif語句內部打印行,打印的東西,我一直在尋找,我不知道該怎麼做。爲什麼我的「For」語句被忽略?以及如何解決它?

爲什麼我的「for」語句被忽略?以及如何修復它/

def horizental_checker(lst1,lst2,lst3,lst4,place_checker,lst5=[],lst6=[],lst7=[]):  #place_checker checks if the lst is before the fourth column 
count = 0 
if place_checker == 1 or place_checker == 20: 
    for a,b,c,d in zip(lst1,lst2,lst3,lst4): 
     a = int(a) 
     b = int(b) 
     c = int(c) 
     d = int(d) 
     return (a * b * c * d) 
elif place_checker == 2 or place_checker == 19: 
    print "TESSSSSST" 

    for e,a,b,c,d in zip(lst5,lst1,lst2,lst3,lst4): 
     print a,b,c,d,e 
     a = int(a) 
     b = int(b) 
     c = int(c) 
     d = int(d) 
     e = int(e) 
     count = (a * b * c * d) 
     print "my count is %i" % count 
     if (e * a * b * c) > count: 
      count = (e * a * b * c) 
      print "my second count is %i" % count 
     return count 

elif place_checker == 3 or place_checker == 18: 
    for e,f,a,b,c,d in zip(lst5,lst6,lst1,lst2,lst3,lst4): 
     a = int(a) 
     b = int(b) 
     c = int(c) 
     d = int(d)  
     count = (a * b * c * d) 
     if (e * a * b * c) > count: 
      count = (e * a * b * c) 
     if (f * e * a * b) > count: 
      count = (f * e * a * b) 
     return count   
else: 
    for e,f,g,a,b,c,d in zip(lst5,lst6,lst7,lst1,lst2,lst3,lst4): 
     a = int(a) 
     b = int(b) 
     c = int(c) 
     d = int(d)  
     count = (a * b * c * d) 
     if (e * a * b * c) > count: 
      count = (e * a * b * c) 
     if (f * e * a * b) > count: 
      count = (f * e * a * b) 
     if (g * f * e * a) > count: 
      count = (g * f * e * a) 
     return count 
+1

請修復您的縮進。 – IanAuld 2014-11-01 06:17:02

+0

indention在編輯器上是固定的,雖然這裏沒有修正 - for循環甚至沒有啓動,我希望它檢查place_checker == 1,如果place_checker = 1,從每個4列表中獲取第一個元素,並將它們相乘一起然後返回最高結果 – ArandomUserNameEG 2014-11-01 06:25:42

回答

1

什麼是zip(...)返回?如果主體返回空列表,它將不會執行任何操作。打印出zip(...)在for之前返回的內容。

+0

哎呀,這似乎是問題,謝謝! – ArandomUserNameEG 2014-11-01 06:25:12

+0

好吧,如果他找到了zip返回值,那麼他的問題就解決了。在zip中使用的一個輸入是空的,因此for沒有任何執行。由於他將印刷品放入身體內,因此返回空的拉鍊是唯一的可能性。 – 2014-11-01 06:25:18

+0

誰投這麼多,這是正確的答案。請投票表決。 – 2014-11-01 06:26:14