Форум сайта python.su
Руководитель кофейни хочет, что бы в конце дня, при вводе проданных за день разных типов напитков, выводился общий результат продаж.
Руководитель должен вводить название напитка, количество проданных стаканов, и получать такой результат:
-Количество проданных маленьких каппучино(реализовано)
-Чистая прибыль от проданных маленьких каппучино(реализовано)
спросить, продолжить расчет или нет-если да, то запросить
-Количество проданных больших каппучино(реализовано)
-Чистая прибыль от проданных больших каппучино(реализовано)
спросить, продолжить расчет или нет если нет, то вывести:
Общая чистая прибыль от всех проданных напитков(НЕ реализовано, прошу подсказать как это сделать)
milk_purchase = 0.1 syrop_purchase = 0.6 coffee_purchase = 1.4 cup_purchase = 1 CONST=0 i=1 while True: COUNT=str(input("Press 'y' for calculating: ")) if COUNT=="y": get_name = str(input("Enter name:")) if get_name == "big cappuchino" or get_name == "1":#Получаем данные о составе напитка get_cups = int(input(f"Enter quantity cups of big cappuchino = ")) milk = 270 espresso = 18 syrop = 22 cup = 10 COST=210 elif get_name =="small cappuchino" or get_name == "2": get_cups = int(input(f"Enter quantity cups of small cappuchino = ")) milk = 200 espresso = 18 syrop = 16 cup = 8 COST = 160 else: print("Enter exist name: ") COUNT = str(input("Press 'y' for calculating: ")) def main(get_name): total_cups=value_cap(get_cups)#Получаем количество стаканов и общую себестоимость price_cup=sell_cap(COST, get_cups)#Получаем цену продажи и общую цену за все проданные стаканы net_profit=price_cup-total_cups#Получаем чистую прибыль print(f"Sold for a total amount = {price_cup} rub") print(f"Total spent by {get_cups} cups {get_name} = {total_cups:.2f} rub") print(f"Net profit ={net_profit} rub") return net_profit def milk_price(milk,milk_purchase): res_milk = milk_purchase * milk return res_milk def coffee_price(espresso,coffee_purchase): res_coffee = coffee_purchase * espresso return res_coffee def syrop_price (syrop,syrop_purchase): res_syrop = syrop_purchase * syrop return res_syrop def cup_price(cup,cup_purchase): res_cup = cup_purchase * cup return res_cup def composition_drink(): #Получаем количество ингридиентов composition_price = cup_price(cup,cup_purchase)\ +syrop_price(syrop,syrop_purchase)\ +coffee_price(espresso,coffee_purchase)\ +milk_price(milk,milk_purchase) return composition_price def value_cap(get_cups): #Получаем количество стаканов большого капучино и общую себестоимость total_cups=get_cups*composition_drink() return total_cups def sell_cap(COST,get_cups): #Получаем цену продажи и общую цену за все проданные стаканы price_cup = COST * get_cups return price_cup def get_net_profit(): #Получаем чистую прибыль net_profit = sell_cap(COST, get_cups)-value_cap(get_cups) return net_profit main(get_name)[quote][/quote]
Отредактировано litvyakovirdeev (Сен. 12, 2022 13:55:49)
Офлайн
Опиши задачу без какого либо кода.
litvyakovirdeevЭто не описание, а просто набор слов вперемешку с кодом.
есть 2 типа напитков
идет расчет маржи в функции def get_net_profit()
после каждой итерации программа запрашивает второй тип напитка
напитков будет N-ное количество но для примера поставил 2
Отредактировано py.user.next (Сен. 12, 2022 02:46:49)
Офлайн
Отредактировал.Правильно?
Офлайн
Отредактировал.Правильно?
py.user.next
Опиши задачу без какого либо кода.
Офлайн
#!/usr/bin/env python3 def enter_drink_name(): menu = """\ Select a drink. Small cappuccino (enter "1" or "small") Big cappuccino (enter "2" or "big") """ name = None while True: print(menu) answer = input('(q for exit)> ') if answer == 'q': break if answer in ('1', 'small'): name = 'small_cap' break if answer in ('2', 'big'): name = 'big_cap' break print('Wrong input, try again.') return name def enter_drink_cups(): menu = """\ How many cups?\ """ cups = None while True: print(menu) answer = input('(q for exit)> ') if answer == 'q': break if answer.isdigit() and int(answer) >= 0: cups = int(answer) break print('Wrong input, try again.') return cups def ask_for_one_drink(): drink = {} drink_name = enter_drink_name() if drink_name is None: return {} drink['name'] = drink_name drink_cups = enter_drink_cups() if drink_cups is None: return {} drink['cups'] = drink_cups return drink def count_total_result(total): prices = { 'small_cap': 1.5, 'big_cap': 4.2 } result = { 'small_cap': 0, 'big_cap': 0, 'total': 0 } for i in total: name = i['name'] cups = i['cups'] cups_price = prices[name] * cups result[name] += cups_price result['total'] += cups_price return result def run_main_loop(): total = [] while True: drink = ask_for_one_drink() if not drink: break total.append(drink) result = count_total_result(total) return result def get_drink_name_string(string): dct = { 'small_cap': 'small cappuccino', 'big_cap': 'big cappuccino', 'total': 'all' } if string in dct: return dct[string] else: return None def get_drink_value_string(value): return '{:.2f}'.format(value) def print_result(result): fmt = """\ You sold {} for {}.\ """ for k, v in result.items(): name = get_drink_name_string(k) total = get_drink_value_string(v) print(fmt.format(name, total)) def run_all(): result = run_main_loop() print_result(result) def main(): run_all() if __name__ == '__main__': main()
[guest@localhost coffeemachine]$ ./coffeemachine.py
Select a drink.
Small cappuccino
(enter "1" or "small")
Big cappuccino
(enter "2" or "big")
(q for exit)> 1
How many cups?
(q for exit)> 2
Select a drink.
Small cappuccino
(enter "1" or "small")
Big cappuccino
(enter "2" or "big")
(q for exit)> 2
How many cups?
(q for exit)> 3
Select a drink.
Small cappuccino
(enter "1" or "small")
Big cappuccino
(enter "2" or "big")
(q for exit)> q
You sold small cappuccino for 3.00.
You sold big cappuccino for 12.60.
You sold all for 15.60.
[guest@localhost coffeemachine]$
Отредактировано py.user.next (Сен. 13, 2022 02:52:54)
Офлайн