2016-12-10 2 views
0

Функция должна печатать один список - верхний список, когда в списке включен «paige». Однако он ничего не возвращает. Где это происходит?Пока цикл ничего не возвращает

Кроме того, есть 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 "в lst и" peter "в lst'. Проверяйте каждую защитную оболочку отдельно –

+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 продолжает цикл.

Смежные вопросы