Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/55: Рейтинг темы: голосов - 55, средняя оценка - 4.60
168 / 73 / 33
Регистрация: 13.04.2019
Сообщений: 370

Виртуальная кофе машина

12.05.2019, 16:38. Показов 11485. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! Имеется виртуальная кофе машина, которое умеет делать три вещи: продавать кофе (buy), заполнять содержимое (fill) и выводить деньги (take).
Если пользователь пишет «buy», он должен выбрать один из трех сортов кофе, которые может приготовить кофемашина: эспрессо, латте или капучино.

Для приготовления эспрессо кофеварке необходимо 250 мл воды и 16 г кофейных зерен. Это стоит 4 доллара.
Для приготовления латте кофеварке необходимо 350 мл воды, 75 мл молока и 20 г кофейных зерен. Это стоит 7 долларов.
А для приготовления капучино кофеварке нужно 200 мл воды, 100 мл молока и 12 г кофе. Это стоит 6 долларов.

Если пользователь пишет «fill», программа должна спросить его, сколько воды, молока, кофейных зерен и сколько одноразовых стаканов он хочет добавить в кофемашину.

Если пользователь пишет «take», программа должна отдать ему все деньги, которые он заработал от продажи кофе.

На начальный момент кофемашина имеет 550 долларов, 1200 мл воды, 540 мл молока, 120 г кофейных зерен и 9 одноразовых стаканчиков.

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
def buy_coffee(water, milk, coffee_beans, disposable_cups, money):
    coffee = input('What do you want to buy? 1 - espresso, 2 - latte, 3 - cappuccino: ')
    water_espresso = 250
    coffee_beans_espresso = 16
    money_espresso = 4
    water_latte = 350
    milk_latte = 75
    coffee_beans_latte = 20
    money_latte = 7
    water_cappuccino = 200
    milk_cappuccino = 100
    coffee_beans_cappuccino = 12
    money_cappuccino = 6
    if coffee == '1':
        water -= water_espresso
        coffee_beans -= coffee_beans_espresso
        disposable_cups -= 1
        money += money_espresso
    elif coffee == '2':
        water -= water_latte
        milk -= milk_latte
        coffee_beans -= coffee_beans_latte
        disposable_cups -= 1
        money += money_latte
    else:
        water -= water_cappuccino
        milk -= milk_cappuccino
        coffee_beans -= coffee_beans_cappuccino
        disposable_cups -= 1
        money += money_cappuccino
    print('The coffee machine has:')
    print('%d of water' % water)
    print('%d of milk' % milk)
    print('%d of coffee_beans' % coffee_beans)
    print('%d of disposable cups' % disposable_cups)
    print('%d of money' % money)
 
 
def fill_coffee(water, milk, coffee_beans, disposable_cups):
    water_fill = int(input('Write how many ml of water do you want to add: '))
    milk_fill = int(input('Write how many ml of milk do you want to add: '))
    coffee_beans_fill = int(input('Write how many grams of coffee beans do you want to add: '))
    disposable_cups_fill = int(input('Write how many disposable cups of coffee do you want to add: '))
    water += water_fill
    milk += milk_fill
    coffee_beans += coffee_beans_fill
    disposable_cups += disposable_cups_fill
    print('The coffee machine has:')
    print('%d of water' % water)
    print('%d of milk' % milk)
    print('%d of coffee_beans' % coffee_beans)
    print('%d of disposable cups' % disposable_cups)
    print('%d of money' % money)
 
 
def money_coffee(money):
    print('I gave you $%d' % money)
    money = 0
    print()
    print('The coffee machine has:')
    print('%d of water' % water)
    print('%d of milk' % milk)
    print('%d of coffee_beans' % coffee_beans)
    print('%d of disposable cups' % disposable_cups)
    print('%d of money' % money)
 
 
water = 1200
milk = 540
coffee_beans = 120
disposable_cups = 9
money = 550
print('The coffee machine has:')
print('%d of water' % water)
print('%d of milk' % milk)
print('%d of coffee_beans' % coffee_beans)
print('%d of disposable cups' % disposable_cups)
print('%d of money' % money)
action = input('Write action (buy, fill, take): ')
if action == 'buy':
    buy_coffee(water, milk, coffee_beans, disposable_cups, money)
elif action == 'fill':
    fill_coffee(water, milk, coffee_beans, disposable_cups)
else:
    money_coffee(money)
Моя программа мне не нравится тем, что после каждой функции я должен делать print-Ы, подскажите, как можно ее улучшить.


Примеры вывода:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
The coffee machine has:
1200 of water
540 of milk
120 of coffee beans
9 of disposable cups
550 of money
 
Write action (buy, fill, take): buy
What do you want to buy? 1 - espresso, 2 - latte, 3 - cappuccino: 3
 
The coffee machine has:
1000 of water
440 of milk
108 of coffee beans
8 of disposable cups
556 of money
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
The coffee machine has:
1200 of water
540 of milk
120 of coffee beans
9 of disposable cups
550 of money
 
Write action (buy, fill, take): fill
Write how many ml of water do you want to add: 2000
Write how many ml of milk do you want to add: 500
Write how many grams of coffee beans do you want to add: 100
Write how many disposable cups of coffee do you want to add: 10
 
The coffee machine has:
3200 of water
1040 of milk
220 of coffee beans
19 of disposable cups
550 of money
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
The coffee machine has:
1200 of water
540 of milk
120 of coffee beans
9 of disposable cups
550 of money
 
Write action (buy, fill, take): take
I gave you $550
 
The coffee machine has:
1200 of water
540 of milk
120 of coffee beans
9 of disposable cups
0 of money
Спасибо Вам за помощь
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.05.2019, 16:38
Ответы с готовыми решениями:

Coffee Machine - проект кофе машина
Сделать программу кофе машина, где покупатель может выбрать из списка кофе, заплатить наличными, также желательно, чтобы результат оплаты,...

Виртуальная машина win xp mode. После установки сканера Mustek 1200 UB Plus виртуальная машина перестала запускаться
Здравствуйте. Проблема в чем - виртуальная машина win xp mode. после установки сканера Mustek 1200 UB Plus виртуальная машина перестала...

кофе машина JURA, что за проц
что за проц ? если тема не в этой ветке прошу перенести

4
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
12.05.2019, 17:08
Цитата Сообщение от Marina-Marina Посмотреть сообщение
делать print-Ы
Вынеси их в отдельную функцию например
1
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
12.05.2019, 17:09
ну наверно создать функцию в которой прописать эти принты
Python
1
2
3
4
5
6
7
def fun_print(water, milk, coffee_beans, disposable_cups, money):
    print('The coffee machine has:')
    print('%d of water' % water)
    print('%d of milk' % milk)
    print('%d of coffee_beans' % coffee_beans)
    print('%d of disposable cups' % disposable_cups)
    print('%d of money' % money)
и вызывать ее вместо кучи принтов.
еще бы я эти данные сохранил бы в словаре а в функциях менял значения по ключу и тогда передавать кучу параметров не пришлось бы
1
168 / 73 / 33
Регистрация: 13.04.2019
Сообщений: 370
12.05.2019, 17:20  [ТС]
Semen-Semenich, я просто словари еще не начал проходить, но возьму на заметку Ваше замечание, спасибо
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
13.05.2019, 09:45
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
еще бы я эти данные сохранил бы в словаре
Зачем, когда есть классы?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.05.2019, 09:45
Помогаю со студенческими работами здесь

Кофе машина Grimac 1GR N120019721, Помогите определить неисправность
Пришла машина разобранная, восстановил,блока не было,Заведомо рабочего блока у меня нет, в запчастях нашел два одинаковых от такой машины...

кофе машина grind master модель 7446e230v, не вкл тен
Добрый день всем привезли на ремонт данный агрегат , я в принципе не ремонтирую данную технику просто попросили посмотреть , вопрос в...

Кофе машина philips hd8654 2100 перестала подаваться жидкость
Коллеги такая проблема. 2 с половиной месяца назад купил кофемашину philips hd8654 2100. Отличная машинка, но вот проблема пару дней назад...

Виртуальная машина
Добрый день! Не уверен, правильно ли написал в теме. Хочу из своего компа сделать как бы два, те мой главный, второй с...

Виртуальная машина!
Всем привет, вот решил поставить виртуальную машину на комп! Незнал в какой раздел написать, подумал рас у меня на компе вин7 закину сюда...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита табличной части. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru