Калькулятор наружной рекламы с помощью Python
Зачастую на ходу (например при встрече вживую) требуется посчитать стоимость наружной рекламы.
Я рассматриваю пленку или баннер. Из-за множества условий в расчёте, сделать это с помощью обычного калькулятора довольно долго. А если и не долго, например стоимость печати пленки, то нет полноценного понимания в едином виде информации по себестоимости и прибыли.
В этих целях я написал скрипт, который полноценно считает и пленку и баннер в зависимости от цены или по заданным параметрам.
На выходе получается такой результат:
В коде я учел разные вариации. Например клиент хочет пленку с ламинацией и определенным качеством печати. Или баннер без люверсов. Всё это указывается в результатах расчета.
Постепенно я осваиваю язык, поэтому в целях перенести данную программу в веб версию или бот телеграма. Также в будущем в планах включить в программу прочие виды рекламы, например расчет визиток или объемных вывесок.
Из минусов: К сожалению, я ещё очень плохо владею 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(' Напишите по русски Да или Нет')