2017-03-04 46 views
-4

我不明白爲什麼else條件沒有通過。有人可以解釋爲什麼嗎?Python - 奇怪的IF語句,同時使用嵌套列表

#Python 3.4  
list=[] 
list_of_list=[] 

list.append("Test") 
list.append("This") 
list_of_list.append(list) 
list=[] 

print(list_of_list) 
print(type(list_of_list)) 
print(len(list_of_list)) 

for element in list_of_list: 
if(element[0]=="Test"): 
    print("[OK]") 
if(element[0]=="NO"): 
    print("[OK]Condition is not verified") 
else: 
    print("[OK]Why the condition is verified??")#<-------------------------- 

OUTPUT:

[['Test', 'This']] 
<class 'list'> 
1 
[OK] 
[OK]Why the condition is verified?? 

預期輸出:

[['Test', 'This']] 
<class 'list'> 
1 
[OK] 

我怎樣才能修復代碼?

+0

你的第二個'if'應該是一個'elif' – KernelPanic

回答

3

你有 if結構在這裏:

if(element[0]=="Test"): # first block 
    print("[OK]") 
if(element[0]=="NO"): # second block 
    print("[OK]Condition is not verified") 
else: # attached to second block 
    print("[OK]Why the condition is verified??") 

element[0]等於'Test',它是,它就會輸出"[OK]"。然後它檢查它是否等於其他東西,當然它不是,所以它然後去else塊並打印"[OK]Why the condition is verified??"

如果你想打印的只有一件事,用elif給它的所有連接在一起:

if element[0]=="Test": # first block 
    print("[OK]") 
elif element[0]=="NO": # attached to first block 
    print("[OK]Condition is not verified") 
else: # still the same block 
    print("[OK]Why the condition is verified??") 
+0

謝謝,這正是我一直在尋找。 – Floky