Вопрос задан 21.06.2023 в 13:09. Предмет Информатика. Спрашивает Грицан Дарина.

Всем привет! Помогите с задачей, условие ниже (язык 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 = 1for _ 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)))Я хочу добавить контроль ввода, если вводим песню не из списка, пишет ошибка. Но не очень пойму как это сделать. Помогите, пожалуйста. Очень желательно через флаги.Спасибо!
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Рябичева Анастасия.

Через флаги:

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

ok = True

while ok:

   for _ in range(qty):

       if ok:

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

           for elem in violator_songs:

               li.extend(elem)

               if song not in li:

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

                   ok = False

                   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]

   if ok:

       print('\nОбщее время звучания песен:', float(round(summ, 2)))

       break

1 0
Отвечает Долгова Поля.

Более простой вариант

from datetime import timedelta

 

music = {"mus1": 4.24,

       "mus2": 2.50,

       "mus3":  2.05}

time = timedelta(minutes=0, seconds=0)

maxcount = int(input("Сколько песен выбрать?: ")) + 1

count = 1

while 1:

       try:

               name = str(music[input(f"Название {count} песни: ")]).replace(".", " ").split()

               time = time + timedelta(minutes=int(name[0]), seconds=int(name[1]))

               count += 1

       except:

               print("Такой песни нету!")

               break

       if count == maxcount:

               print(f"Общее продолжительность песен: {int(time.total_seconds()%3600) // 60}.{int(time.total_seconds()%3600) % 60}")

               break

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения вашей задачи, вы можете использовать флаг, чтобы контролировать, была ли найдена песня в списке violator_songs. Вот как вы можете это сделать:

python
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] ] special_list = [] qty = int(input('Сколько песен выбрать? ')) print() count = 1 for _ in range(qty): song = input('Введите название ' + str(count) + ' песни: ') found = False # Флаг для контроля наличия песни в списке for elem in violator_songs: if song == elem[0]: special_list.append(song) found = True break # Выход из цикла, так как песня найдена if not found: print('Ошибка. Такой песни в плейлисте нет!') else: count += 1 summ = 0 for i_time in violator_songs: if i_time[0] in special_list: summ += i_time[1] print('\nОбщее время звучания песен:', round(summ, 2), 'минут')

В этом коде мы используем флаг found, чтобы проверить, была ли найдена песня в списке violator_songs. Если песня найдена, мы добавляем ее в special_list, иначе выводим сообщение об ошибке.

0 0

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

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

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