Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/29: Рейтинг темы: голосов - 29, средняя оценка - 4.72
1 / 1 / 0
Регистрация: 17.04.2019
Сообщений: 42

Напишите функцию для подсчета общей калорийности заказанных блюд

24.03.2022, 19:49. Показов 6613. Ответов 3

Студворк — интернет-сервис помощи студентам
Напишите функцию total() для подсчета общей калорийности заказанных блюд. В качестве аргумента в функцию передается список строк: блюдо и его калорийность через пробел. После каждого вызова калорийность суммируется и выводится общий итог в виде (блюда отсортированы в алфавитном порядке):

<Блюдо> - <количество порций> - <калорийность всех порций, точность до десятых> kCal
...
------
Total: <общая калорийность с точностью до 1 знака после запятой> kCal
В конце – пустая строка для разделения вызовов функции.

Ввод
data = ["Ice cream, strawberry 192",
"Puff pastry with protein cream 461"]
total(data)
data = ["Orange juice drink 54.5",
"Ice cream, strawberry 192",
"Puff pastry with protein cream 461"]
total(data)


Вывод
Ice cream, strawberry - 1 - 192.0 kCal
Puff pastry with protein cream - 1 - 461.0 kCal
------
Total: 653.0 kCal

Ice cream, strawberry - 2 - 384.0 kCal
Orange juice drink - 1 - 54.5 kCal
Puff pastry with protein cream - 2 - 922.0 kCal
------
Total: 1360.5 kCal


есть решение собранное в кучу, но до конца не работает - подскажите как собрать все чтобы работало


Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
e = {}
a = []
 
 
def total(sp):
 
 
    global e
    global a
    for i in range(len(sp)):
        s = ''
        for j in range(len(sp[i]) - 1, 0, -1):
            if sp[i][j] == ' ' and sp[i] not in e:
                e[sp[i][:len(sp[i]) - len(s) - 1]] = [float(s[::-1]), 0]
                a.append(sp[i][:len(sp[i]) - len(s) - 1])
                break
 
            else:
                s += sp[i][j]
                for i in range(len(a)):
                    if a[i] in e.keys():
                        e[a[i]][1] = a.count(a[i])
                        tot = 0
                        sorted_tuple = sorted(e.items())
                        e = dict(sorted_tuple)
                        for key, value in e.items():
                            print(f'{key} - {value[1]} - {(value[0] * a.count(key)):.1f} kCal')
                            tot += value[0] * a.count(key)
                        print('------')
                    print(f'Total: {tot:.1f} kCal')
    print()
 
data = ["Ice cream, strawberry 192",
        "Puff pastry with protein cream 461"]
total(data)
data = ["Orange juice drink 54.5",
        "Ice cream, strawberry 192",
        "Puff pastry with protein cream 461"]
total(data)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.03.2022, 19:49
Ответы с готовыми решениями:

Напишите функцию total() для подсчета общей калорийности заказанных блюд
Напишите функцию total() для подсчета общей калорийности заказанных блюд. В качестве аргумента в функцию передается список строк: блюдо и...

Написать программу для создания пиццы из ингредиентов с возможностью расчета общей калорийности
Не могу решить задачу по ОПП: не понимаю, как сделать атрибутом одного класса другой класс и как внутри одного класса сделать атрибутом...

Напишите функцию для подсчёта слов в строке S
Напишите функцию для подсчёта слов в строке S. Под словом следует понимать последовательность из любых символов кроме пробела, точки и...

3
 Аватар для VistaSV30
986 / 330 / 79
Регистрация: 10.04.2012
Сообщений: 1,239
Записей в блоге: 4
24.03.2022, 20:16
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
def total(dt):
    cl = 0.0
    for i,j in enumerate(sorted(dt)):
        print(f'{i+1}. {j}')
        cl += float(j.split()[-1])
    print(f'Всего блюд - {i+1}, общая калорийность - {cl}\n')
 
 
data = ["Ice cream, strawberry 192",   "Puff pastry with protein cream 461"]
total(data)
 
data = ["Orange juice drink 54.5",   "Ice cream, strawberry 192",   "Puff pastry with protein cream 461"]
total(data)
0
1 / 1 / 0
Регистрация: 17.04.2019
Сообщений: 42
24.03.2022, 20:27  [ТС]
большое спасибо, а как реализовать чтобы последний результат был общий для всех значений???
0
 Аватар для Semen-Semenich
5218 / 3466 / 1172
Регистрация: 21.03.2016
Сообщений: 8,289
24.03.2022, 20:30
Лучший ответ Сообщение было отмечено cheerful-29 как решение

Решение

Цитата Сообщение от cheerful-29 Посмотреть сообщение
есть решение собранное в кучу,
вот именно в кучу без понимания.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def total(data):
    total_ = 0
    for dish in data:
        name = dish[:dish.rfind(' ')]
        calor = float(dish[dish.rfind(' ')+1:]) 
        dct.setdefault(name, []).append(calor)
    for key, val in sorted(dct.items()):
        total_ += sum(val)
        print(f'{key} - {len(val)} - {"%.1f" % sum(val)} kCal')
    print('-'*5)
    print(f'Total: {total_} kCal\n')
        
dct = {}
data = ["Ice cream, strawberry 192",
"Puff pastry with protein cream 461"]
total(data)
data = ["Orange juice drink 54.5",
"Ice cream, strawberry 192",
"Puff pastry with protein cream 461"]
total(data)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.03.2022, 20:30
Помогаю со студенческими работами здесь

Вычисление общей калорийности продукта
Поле first – целое положительное число, калорийность 100 г продукта; поле second – дробное положительное число, масса продукта в...

Напишите программу которая использует функцию для подсчета букв.
Ку, всем. Можете помочь и наглядно обеснить. Напишите программу которая использует функцию для подсчета букв. Использовать string as...

Структура - пара. Вычисление общей калорийности продукта
Поле first - целое положительное число , калорийность 100 г. продукта ; поле second - дробное положительное число , масса продукта в...

Напишите функцию для подсчёта суммы всех элементов у списке целых чисел
Напишите функцию для подсчёта суммы всех элементов у списке целых чисел.

Разработать функцию обслуживания одного покупателя при условии, что каждый может заказать нужный ему набор блюд, но не более одной порции каждого блюд
В буфете предлагают покупателю меню из четырех блюд. Каждое блюдо имеет свою цену и представлено известным количеством порций. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru