#python #loops #for-loop #while-loop
#python #петли #for-цикл #цикл while
Вопрос:
Привет, я новичок в Python, и у меня здесь этот вопрос.
Напишите цикл while для отображения значений рейтинга списка воспроизведения альбома, хранящегося в списке PlayListRatings. Если набранный балл меньше 6, выйдите из цикла. Список PlayListRatings приведен по: PlayListRatings = [10, 9.5, 10, 8, 7.5, 5, 10, 10]
Мой ответ таков:
PlayListRatings = [10,9.5,10,8,7.5,5,10,10]
i = 0
while PlayListRating[i] >= 6:
i = i 1
print(PlayListRatings)
Предлагаемый ответ таков:
PlayListRatings = [10, 9.5, 10, 8, 7.5, 5, 10, 10]
i = 1
Rating = PlayListRatings[0]
while Rating >= 6:
print(Rating)
Rating = PlayListRatings[i]
i = i 1
Есть несколько вещей, которые приводят меня в замешательство:
- Почему в этом случае i = 1, а не i = 0? Я думал, что i относится к индексу 10 и, следовательно, должно быть i = 0?
- Почему я должен создавать новую переменную, а именно Рейтинг?
- Почему я должен добавлять предпоследнюю строку предлагаемого ответа, т.е. Rating = PlayListRatings [i]? Я не мог выполнить код без этой строки
Ответ №1:
- Поскольку вы уже выводите первый элемент массива (с индексом 0) за пределы цикла, используя:
Rating = PlayListRatings[0]
Таким образом, цикл будет продолжаться со второго индекса (i = 1).
- Переменная Rating является только указателем на элементы массива. Вам не обязательно его использовать, вы можете заменить его непосредственно на
PlayListRatings[i]
- Поскольку условие цикла while зависит от значения
Rating
, если вы не обновляете значениеRating
, условие внутри while() будет оставаться неизменным на каждой итерации, и в этом случае sinceRating
принимает значение 10 в первый раз (поскольку 10 является первым элементом массива), это приведет к бесконечному циклу, если значениеRating
не обновляется, что происходит с помощьюRating = PlayListRatings[i]
Ответ №2:
Попробуйте следующий код:
PlayListRatings = [10, 9.5, 10, 8, 7.5, 5, 10, 10]
i = 0
N = len(PlayListRatings)
Rating = PlayListRatings[0]
while(i < N and Rating > 6):
Rating = PlayListRatings[i]
i = i 1
print(Rating)