2016-12-10 18 views
0

この関数は1つのリストを出力します。つまり、 'paige'がリストに含まれている場合は先頭のリストです。ただし、何も返しません。どこが間違っていますか?Whileループは何も返しません。

また、str(list)ここに結果を出力する最良の方法はありますか?

def addingpaige(s): 
    list = ["paige", "peter", "eric"] 
    result = "" 
    while "paige" and "peter" in list: 
     result = result + str(list) 
    return result 
print addingpaige(["paige", "peter", "eric"]) 
+2

'while" paige "と" peter "in first。それぞれの封じ込めを個別にテストしてください –

+3

これはどのように終了しますか?アウトプットとして何を期待していますか? – yassin

+3

であり、 'list'はループ本体のどこでも変更されないので、無限ループになります。 –

答えて

2
  1. あなたが代わりにその機能にlistを定義し、addingpaige()の引数としてリスト["paige", "peter", "eric"]を与えたが、その後それを何もしていないように思えます。

  2. while "paige" and "peter" in list:andはこのようには機能しません。代わりに、"paige" in listをテストし、次に"peter" in listをテストします。つまり、これはwhile "paige" in list and "peter" in list:

  3. となります。while条件は常にこの場合はTrueであり、無限ループになります。反復の間で変化する可能性のあるwhile条件のみを持ち、whileループの中に何かを作り出すことができます。

  4. listはキーワードであるため、リストに別の名前を付けることもできます。

あなたがしたいことは私には分かりませんが、このコードは、無限ループを含んでいるので無意味です。どのような条件に基づいてaddingpaige()を印刷する必要がありますか?

0

"paige" and "peter"は、実際には"peter"と評価されます。このコードは効果的に言っています:while文字列"peter"が存在しますin listループを維持します。

関連する問題