2016-12-10 123 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保持循环。