2017-09-19 11 views
-1

私は連絡先オブジェクトの動的リストをループし、連絡先電子メールが指定された条件を満たしているかどうかを確認しています(for loop)。私はリストが使い尽くされたときに "申し訳ありません条件が満たされていません"を返すためにfor loopelseステートメントを使用しました。この方法は、リストにという連絡先が1つしかない場合を除いて正常に動作し、条件を満たします。このシナリオでは、for loopの本文とelseの部分の両方が実行されます。elseと1回の繰り返しを含むループ

else部分をインタプリタが設定条件を満たす1回の反復で無視するようにすることをお勧めします。

def searchContact(self, search_name): 
    print("Your search matched the following:") 
    for contact in self.contacts: 
     if search_name in contact.name: 
      print(contact) 
    else: 
     print("Sorry that contact does not exist!!") 
+1

'else'節は常に*実行されます。ループの 'else'は、' break'ingなしでループが終了すると実行されます。 – user2357112

答えて

0

user2357112は述べているように、とPythonのドキュメントに記載されているようにhere

何のブレークはあなたがの線に沿って何かを試みることができる

を発生していないときのループのelse節が実行されます。

def searchContact(self, search_name): 
    contact_found = False 

    print("Your search matched the following:") 
    for contact in self.contacts: 
     if search_name in contact.name: 
      contact_found = True 
      print(contact) 

    if not contact_found: 
     print("Sorry that contact does not exist!!") 
+0

ありがとうございます。これは完全に動作します – Arden

関連する問題