2016-12-10 122 views
0

函數應打印一個列表 - 當列表中包含「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

'同時「佩奇」在第一和「彼得」在第一''。分別測試每個容器 –

+3

這將如何終止?作爲輸出你期望什麼? – yassin

+3

並且由於'list'在循環體內的任何地方都沒有被修改,所以它將是一個無限循環。 –

回答

2
  1. 好像你給列表["paige", "peter", "eric"]作爲參數傳遞給addingpaige(),但後來沒有做任何事的,因爲功能而不是定義list

  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循環中有一些可以突破它的東西。

  4. list是一個關鍵字,因此可能爲您的列表選擇不同的名稱。

雖然我不清楚你想要做什麼。就目前來看,代碼是無意義的,因爲它包含一個無限循環。 addingpaige()應該打印什麼條件?

0

"paige" and "peter"實際評估爲"peter"。此代碼有效地說:while字符串"peter"存在in list保持循環。