2017-03-04 1 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

関連する問題