profile
Размещено 4 года назад по предмету Информатика от gvozdb27

Всем привет!
Помогите с задачей, условие ниже (язык Python):

Мы пишем приложение для удобного прослушивания музыки. У Вани есть список из девяти песен группы Depeche Mode. Каждая песня состоит из названия и продолжительности с точностью до долей минут:
Из этого списка Ваня хочет выбрать N песен и закинуть их в особый плейлист с другими треками. И при этом ему важно, сколько времени в сумме эти N песен будут звучать.
Напишите программу, которая запрашивает у пользователя количество песен из списка и затем названия этих песен, а на экран выводит общее время их звучания.

Пример:
Сколько песен выбрать? 3
Название 1 песни: Halo
Название 2 песни: Enjoy the Silence
Название 3 песни: Clean
Общее время звучания песен: 14.93 минут


Мой код:

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

li = []
special_list = []
qty = int(input('Сколько песен выбрать? '))
print()

count = 1
for _ in range(qty):
``song = input('Введите название ' + str(count) + ' песни: ')
``for elem in violator_songs:
````li.extend(elem)
````if song not in li:
``````print('Ошибка. Такой песни в плейлисте нет!')
``````break
````else:
``````special_list.append(song)
``````count += 1

``summ = 0
``for i_time in violator_songs:
````if i_time[0] in special_list:
````summ += i_time[1]
print('nОбщее время звучания песен:', float(round(summ, 2)))


Я хочу добавить контроль ввода, если вводим песню не из списка, пишет ошибка. Но не очень пойму как это сделать.

Помогите, пожалуйста. Очень желательно через флаги.


Спасибо!

  1. Ответ на вопрос
    Ответ на вопрос дан tutu007

    Ответ:

    violator_songs = {

    'World in My Eyes': 4.86,

    'Sweetest Perfection': 4.43,

    'Personal Jesus': 4.56,

    'Halo': 4.90,

    'Waiting for the Night': 6.07,

    'Enjoy the Silence': 4.20,

    'Policy of Truth': 4.76,

    'Blue Dress': 4.29,

    'Clean': 5.83

    }

    li = {}

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

    print()

    count=1

    while count!=qty+1:

       song=input("Введите название " + str(count) + " песни: ")

       if song not in violator_songs:

           print("Ошибка. Такой песни в плейлисте нет или вы")

       elif song in li:

           print("Ошибка. Вы уже выбрали эту песню")

       else:

           li[song]=violator_songs[song]

           count+=1

    print('Общее время звучания песен:',round(sum(li.values()),2), "минут")

    Объяснение:

    вы слишком много лишних "телодвижений" в коде устраиваете, хотя видно, что с программированием знакомы, были какие то языки до этого?

    1. Ответ на вопрос
      Ответ на вопрос дан gvozdb27
      в вашем варианте список в таких {} скобках, а в условии задачи списки в с одном общем, [[ ]] в таких скобках. Поэтому когда проверяешь условным оператором, он выдаёт ошибку на любую песню, даже которая есть в списке, потому что он её не видит
    2. Ответ на вопрос
      Ответ на вопрос дан gvozdb27
      языков никаких не было, учу python 3 месяца
Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 6 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.