Есть задача, пользователь выбирает количество песен, затем выбирает песни, программа считает общую продолжительность треков. Решил задачу ниже приведенным способом. Куратор упорно отказывается ее принимать, указывая на ошибку в использовании 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))
Фрагменты кода надо размещать в виде текста и оборачивать тэгом code для корректного отображения. Удобно делать кнопкой </> Это обязательно, см.п.3.8 Регламента.
Сюда же относится traceback, ввод и вывод в консоли и другая структурированная текстовая инфа.
Emince, ещё раз: item - это не индекс. Это УЖЕ элемент mylist, как бы mylist[i]. Тебе не нужно обращаться к mylist еще раз.
Может, так будет понятнее.
mylist = ['foo', 'bar', 'baz']
for item in mylist:
print(item)
# для списков это то же самое, что и
for _i in range(len(mylist)):
item = mylist[_i]
print(item)
Технически, разница есть, но тут она несущественна.