Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 12, 2022 02:21:33

litvyakovirdeev
Зарегистрирован: 2022-08-18
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

DEF HELP_Please()!!!

Руководитель кофейни хочет, что бы в конце дня, при вводе проданных за день разных типов напитков, выводился общий результат продаж.
Руководитель должен вводить название напитка, количество проданных стаканов, и получать такой результат:
-Количество проданных маленьких каппучино(реализовано)
-Чистая прибыль от проданных маленьких каппучино(реализовано)
спросить, продолжить расчет или нет-если да, то запросить
-Количество проданных больших каппучино(реализовано)
-Чистая прибыль от проданных больших каппучино(реализовано)
спросить, продолжить расчет или нет если нет, то вывести:
Общая чистая прибыль от всех проданных напитков(НЕ реализовано, прошу подсказать как это сделать)

 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)

Офлайн

#2 Сен. 12, 2022 02:45:32

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9874
Репутация: +  854  -
Профиль   Отправить e-mail  

DEF HELP_Please()!!!

Опиши задачу без какого либо кода.

litvyakovirdeev
есть 2 типа напитков
идет расчет маржи в функции def get_net_profit()
после каждой итерации программа запрашивает второй тип напитка
напитков будет N-ное количество но для примера поставил 2
Это не описание, а просто набор слов вперемешку с кодом.

1. У тебя нет описания задачи.
2. У тебя нет правильной реализации задачи в виде кода.
3. Ты ошмётки кода и пустоту пытаешься переделать во что-то дальше.

Вот начни с задачи.
1. Опиши её словами, как будто нет никакого языка программирования и компьютера вообще.
2. Когда задача полностью описана и готова, напиши реализацию в коде, решающую эту задачу.
3. Когда реализация в виде кода написана и правильно работает, тогда и переделывай код этой реализации в другой вид.



Отредактировано py.user.next (Сен. 12, 2022 02:46:49)

Офлайн

#3 Сен. 12, 2022 13:57:45

litvyakovirdeev
Зарегистрирован: 2022-08-18
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

DEF HELP_Please()!!!

Отредактировал.Правильно?

Офлайн

#4 Сен. 12, 2022 13:59:15

litvyakovirdeev
Зарегистрирован: 2022-08-18
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

DEF HELP_Please()!!!

Отредактировал.Правильно?

py.user.next
Опиши задачу без какого либо кода.

Офлайн

#5 Сен. 13, 2022 02:49:43

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9874
Репутация: +  854  -
Профиль   Отправить e-mail  

DEF HELP_Please()!!!

  
#!/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)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version