Задать вопрос
@Emince

Как правильно итерировать?

Есть задача, пользователь выбирает количество песен, затем выбирает песни, программа считает общую продолжительность треков. Решил задачу ниже приведенным способом. Куратор упорно отказывается ее принимать, указывая на ошибку в использовании range. Пробую и так и так и не как не хочет считать общую продолжительность треков. Как правильно сделать не могу понять?

violator_songs = [
['World in My Eyes', 4.86],
['Sweetest Perfection', 4.43],
['Personal Jesus', 4.56],
['Halo', 4.9],
['Waiting for the Night', 6.07],
['Enjoy the Silence', 4.20],
['Policy of Truth', 4.76],
['Blue Dress', 4.29],
['Clean', 5.83]
]
user_songs = []
time_song = 0

amount_songs = int(input('Сколько песен выбрать? '))

for i in range(amount_songs):
print('Название', i + 1, '-й песни', end='')
song = input(': ')

# TODO: итерируйте итерируемое, рендж в этом случае - ошибка
for x in range(len(violator_songs)):
# if element in iterable -- и никаких индексов
if song == violator_songs[x][0]:
# этой строки вообще не должно быть
user_songs.append(violator_songs[x])
time_song += violator_songs[i][1]

print('Общее время звучания песен: ', round(time_song, 4))
  • Вопрос задан
  • 105 просмотров
Подписаться 1 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Skillbox
    Python-разработчик
    10 месяцев
    Далее
  • ProductStar
    Профессия: Python-разработчик
    8 месяцев
    Далее
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Зачем обращаться к элементу списка по индексу, если простое итерирование через for позволяет получить элемент списка непосредственно?
mylist = ['foo', 'bar', 'baz']
for item in mylist:
    print(item)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы