私はdictを繰り返し処理する関数を呼び出す次のpythonコードを持っています。期待通りに動作しないの下 コード:forループと関数内のpython呼び出し関数が含まれていますelse構造体が含まれています
list1=["test1","test2","test3","test4"]
list2=["toto1","test1","test3","toto4"]
def functest(t):
for l in list2:
if t == l:
return cond1
else:
return "rien"
for t in list1:
titi=functest(t)
print titi
が、私は4回印刷toto1私が持っているティティVARを印刷します。
私の関数内でelseを削除した場合、コードが動作するようです。
どのようにこの現象を説明できますか?
返された文字列をelseに追加すると、なぜ文字列だけが出力されるのですか?
おかげ
???ユーザーが実行できるコードを提供する必要があります。これは、エラーを再現します。このコードは 'if'条件が' True'の場合に 'NamerError'を生成しますので、何かを残しておくことは明らかです。 –
適切な例を提供してください(http://stackoverflow.com/help/mcve参照)。 – stybl
このコードでは、あなたのループの中で 'return' *を実行するので、' 'rien" 'len(list1)回だけ出力し、' 'toto1" 'は' t == l'なら常に失敗します。最初の反復の後に戻る 'else'ブロックに渡します。 –