Калькулятор наружной рекламы с помощью Python

Калькулятор наружной рекламы с помощью Python

24.01.2021 0 Автор pavezlo

Зачастую на ходу (например при встрече вживую) требуется посчитать стоимость наружной рекламы.

Я рассматриваю пленку или баннер. Из-за множества условий в расчёте, сделать это с помощью обычного калькулятора довольно долго. А если и не долго, например стоимость печати пленки, то нет полноценного понимания в едином виде информации по себестоимости и прибыли.

В этих целях я написал скрипт, который полноценно считает и пленку и баннер в зависимости от цены или по заданным параметрам.

На выходе получается такой результат:

Пример результатов по расчету пленки

В коде я учел разные вариации. Например клиент хочет пленку с ламинацией и определенным качеством печати. Или баннер без люверсов. Всё это указывается в результатах расчета.

Пример результатов по расчету баннера

Постепенно я осваиваю язык, поэтому в целях перенести данную программу в веб версию или бот телеграма. Также в будущем в планах включить в программу прочие виды рекламы, например расчет визиток или объемных вывесок.

Из минусов: К сожалению, я ещё очень плохо владею Python, поэтому мне не удалось сделать запись результатов с целью расчета последовательно нескольких рекламных носителей. Например рассчитать 2 баннера и одну пленку и получить результат по общей сумме.

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

print('-- Калькулятор расчета --')
questions = input('Хотите указать цены печати? Напишите Да или Нет: ').lower()
if (questions == 'да') or (questions == 'if') or (questions == 'yes'):
    was = input("Напишите 1 - если считаем баннер или 2 - если считаем винил: ")
    if was == '1':
        print('-- Расчет баннера --')
        price_print_my = float(input("Введите себестоимость печати за 1 м.кв.: "))
        price_print_client = float(input("Введите стоимость печати клиента за 1 м.кв.: "))
        size1 = float(input("Введите первый размер: "))
        size2 = float(input("Введите второй размер: "))
        square_banner = size1 * size2
        perimeter = (size1 + size2) * 2
        luvers_count = (size1 + size2) * 2 / 0.4
        luvers_price = luvers_count * 15
        prokleika_price = (size1 + size2) * 2 * 15
        banner_print_price_for_client = size1 * size2 * price_print_client
        all_banner_price = prokleika_price + banner_print_price_for_client + luvers_price
        all_banner_price_for_me = size1 * size2 * price_print_my + luvers_price + prokleika_price
        my_money = all_banner_price - all_banner_price_for_me
        print('--- Результаты ---')
        print('Общая цена баннера для клиента: {:.2f}'.format(all_banner_price))
        print('Моя себестоимость баннера: {:.2f}'.format(all_banner_price_for_me))
        print('Моя прибыль: {:.2f}'.format(my_money))
        print('-----------------------')
        print('Площадь баннера: {:.2f}'.format(square_banner))
        print('Периметр баннера: {:.2f}'.format(perimeter))
        print('Количество люверсов: {:.2f}'.format(luvers_count))
        print('Стоимость печати: {:.2f}'.format(banner_print_price_for_client))
        print('Стоимость люверсов: {:.2f}'.format(luvers_price))
        print('Стоимость проклейки: {:.2f}'.format(prokleika_price))
        print('Цена печати за метр для клиента: ' + str(price_print_client) + ' руб.')
    elif was == '2':
        was2 = input('Выберете тип пленки: 1 - (интерьерка), 2 - (интерьерка + ламинат), 3 - (широкоформат), 4 - (широкоформат + ламинат): ')
        if was2 == '1':
            print('-- Расчет пленки с интерьерной печатью --')
            price_print_my = float(input("Введите себестоимость печати за 1 м.кв.: "))
            price_print_client = float(input("Введите стоимость печати клиента за 1 м.кв.: "))
            size1 = float(input("Введите первый размер: "))
            size2 = float(input("Введите второй размер: "))
            square_vinyl = size1 * size2
            vinyl_print_price_for_client = size1 * size2 * price_print_client
            vinyl_price_for_me = size1 * size2 * price_print_my
            my_money = vinyl_print_price_for_client - vinyl_price_for_me
            print('--- Результаты ---')
            print('Общая цена пленки для клиента: {:.2f}'.format(vinyl_print_price_for_client))
            print('Моя себестоимость пленки: {:.2f}'.format(vinyl_price_for_me))
            print('Моя прибыль: {:.2f}'.format(my_money))
            print('-----------------------')
            print('Площадь пленки: {:.2f}'.format(square_vinyl))
            print('Цена печати за метр для клиента: ' + str(price_print_client) + ' руб.')
        elif was2 == '2':
            print('-- Расчет пленки с интерьерной печатью и ламинацией --')
            price_print_my = float(input("Введите себестоимость печати за 1 м.кв.: "))
            price_print_client = float(input("Введите стоимость печати клиента за 1 м.кв.: "))
            size1 = float(input("Введите первый размер: "))
            size2 = float(input("Введите второй размер: "))
            square_vinyl = size1 * size2
            vinyl_print_price_for_client = size1 * size2 * price_print_client
            vinyl_price_for_me = size1 * size2 * price_print_my
            my_money = vinyl_print_price_for_client - vinyl_price_for_me
            print('--- Результаты ---')
            print('Общая цена пленки для клиента: {:.2f}'.format(vinyl_print_price_for_client))
            print('Моя себестоимость пленки: {:.2f}'.format(vinyl_price_for_me))
            print('Моя прибыль: {:.2f}'.format(my_money))
            print('-----------------------')
            print('Площадь пленки: {:.2f}'.format(square_vinyl))
            print('Цена печати за метр для клиента: ' + str(price_print_client) + ' руб.')
        elif was2 == '3':
            print('-- Расчет пленки с широкоформатной печатью --')
            price_print_my = float(input("Введите себестоимость печати за 1 м.кв.: "))
            price_print_client = float(input("Введите стоимость печати клиента за 1 м.кв.: "))
            size1 = float(input("Введите первый размер: "))
            size2 = float(input("Введите второй размер: "))
            square_vinyl = size1 * size2
            vinyl_print_price_for_client = size1 * size2 * price_print_client
            vinyl_price_for_me = size1 * size2 * price_print_my
            my_money = vinyl_print_price_for_client - vinyl_price_for_me
            print('--- Результаты ---')
            print('Общая цена пленки для клиента: {:.2f}'.format(vinyl_print_price_for_client))
            print('Моя себестоимость пленки: {:.2f}'.format(vinyl_price_for_me))
            print('Моя прибыль: {:.2f}'.format(my_money))
            print('-----------------------')
            print('Площадь пленки: {:.2f}'.format(square_vinyl))
            print('Цена печати за метр для клиента: ' + str(price_print_client) + ' руб.')
        elif was2 == '4':
            print('-- Расчет пленки с широкоформатной печатью и ламинацией --')
            price_print_my = float(input("Введите себестоимость печати за 1 м.кв.: "))
            price_print_client = float(input("Введите стоимость печати клиента за 1 м.кв.: "))
            size1 = float(input("Введите первый размер: "))
            size2 = float(input("Введите второй размер: "))
            square_vinyl = size1 * size2
            vinyl_print_price_for_client = size1 * size2 * price_print_client
            vinyl_price_for_me = size1 * size2 * price_print_my
            my_money = vinyl_print_price_for_client - vinyl_price_for_me
            print('--- Результаты ---')
            print('Общая цена пленки для клиента: {:.2f}'.format(vinyl_print_price_for_client))
            print('Моя себестоимость пленки: {:.2f}'.format(vinyl_price_for_me))
            print('Моя прибыль: {:.2f}'.format(my_money))
            print('-----------------------')
            print('Площадь пленки: {:.2f}'.format(square_vinyl))
            print('Цена печати за метр для клиента: ' + str(price_print_client) + ' руб.')
elif (questions == 'нет') or (questions == 'ytn') or (questions == 'no'):
    was = input("Напишите 1 - если считаем баннер или 2 - если считаем винил: ")
    if was == '1':
        print('-- Расчет баннера --')
        size1 = float(input("Введите первый размер: "))
        size2 = float(input("Введите второй размер: "))
        square_banner = size1 * size2
        perimeter = (size1 + size2) * 2
        luvers_count = (size1 + size2) * 2 / 0.4
        luvers_price = luvers_count * 15
        prokleika_price = (size1 + size2) * 2 * 15
        banner_print_price_for_client = size1 * size2 * 300
        all_banner_price = prokleika_price + banner_print_price_for_client + luvers_price
        all_banner_price_for_me = size1 * size2 * 180 + luvers_price + prokleika_price
        my_money = all_banner_price - all_banner_price_for_me
        print('--- Результаты ---')
        print('Общая цена баннера для клиента: {:.2f}'.format(all_banner_price))
        print('Моя себестоимость баннера: {:.2f}'.format(all_banner_price_for_me))
        print('Моя прибыль: {:.2f}'.format(my_money))
        print('-----------------------')
        print('Площадь баннера: {:.2f}'.format(square_banner))
        print('Периметр баннера: {:.2f}'.format(perimeter))
        print('Количество люверсов: {:.2f}'.format(luvers_count))
        print('Стоимость печати: {:.2f}'.format(banner_print_price_for_client))
        print('Стоимость люверсов: {:.2f}'.format(luvers_price))
        print('Стоимость проклейки: {:.2f}'.format(prokleika_price))
        print('Цена печати за метр для клиента: 300 руб.')
    elif was == '2':
        was2 = input('Выберете тип пленки: 1 - (интерьерка), 2 - (интерьерка + ламинат), 3 - (широкоформат), 4 - (широкоформат + ламинат): ')
        if was2 == '1':
            print('-- Расчет пленки с интерьерной печатью --')
            size1 = float(input("Введите первый размер: "))
            size2 = float(input("Введите второй размер: "))
            square_vinyl = size1 * size2
            vinyl_print_price_for_client = size1 * size2 * 550
            vinyl_price_for_me = size1 * size2 * 400
            my_money = vinyl_print_price_for_client - vinyl_price_for_me
            print('--- Результаты ---')
            print('Общая цена пленки для клиента: {:.2f}'.format(vinyl_print_price_for_client))
            print('Моя себестоимость пленки: {:.2f}'.format(vinyl_price_for_me))
            print('Моя прибыль: {:.2f}'.format(my_money))
            print('-----------------------')
            print('Площадь пленки: {:.2f}'.format(square_vinyl))
            print('Цена печати за метр для клиента: 550 руб.')
        elif was2 == '2':
            print('-- Расчет пленки с интерьерной печатью и ламинацией --')
            size1 = float(input("Введите первый размер: "))
            size2 = float(input("Введите второй размер: "))
            square_vinyl = size1 * size2
            vinyl_print_price_for_client = size1 * size2 * 850
            vinyl_price_for_me = size1 * size2 * 600
            my_money = vinyl_print_price_for_client - vinyl_price_for_me
            print('--- Результаты ---')
            print('Общая цена пленки для клиента: {:.2f}'.format(vinyl_print_price_for_client))
            print('Моя себестоимость пленки: {:.2f}'.format(vinyl_price_for_me))
            print('Моя прибыль: {:.2f}'.format(my_money))
            print('-----------------------')
            print('Площадь пленки: {:.2f}'.format(square_vinyl))
            print('Цена печати за метр для клиента: 850 руб.')
        elif was2 == '3':
            print('-- Расчет пленки с широкоформатной печатью --')
            size1 = float(input("Введите первый размер: "))
            size2 = float(input("Введите второй размер: "))
            square_vinyl = size1 * size2
            vinyl_print_price_for_client = size1 * size2 * 400
            vinyl_price_for_me = size1 * size2 * 250
            my_money = vinyl_print_price_for_client - vinyl_price_for_me
            print('--- Результаты ---')
            print('Общая цена пленки для клиента: {:.2f}'.format(vinyl_print_price_for_client))
            print('Моя себестоимость пленки: {:.2f}'.format(vinyl_price_for_me))
            print('Моя прибыль: {:.2f}'.format(my_money))
            print('-----------------------')
            print('Площадь пленки: {:.2f}'.format(square_vinyl))
            print('Цена печати за метр для клиента: 400 руб.')
        elif was2 == '4':
            print('-- Расчет пленки с широкоформатной печатью и ламинацией --')
            size1 = float(input("Введите первый размер: "))
            size2 = float(input("Введите второй размер: "))
            square_vinyl = size1 * size2
            vinyl_print_price_for_client = size1 * size2 * 600
            vinyl_price_for_me = size1 * size2 * 400
            my_money = vinyl_print_price_for_client - vinyl_price_for_me
            print('--- Результаты ---')
            print('Общая цена пленки для клиента: {:.2f}'.format(vinyl_print_price_for_client))
            print('Моя себестоимость пленки: {:.2f}'.format(vinyl_price_for_me))
            print('Моя прибыль: {:.2f}'.format(my_money))
            print('-----------------------')
            print('Площадь пленки: {:.2f}'.format(square_vinyl))
            print('Цена печати за метр для клиента: 600 руб.')
else:
    print(' Напишите по русски Да или Нет')