From b23ac5b47abacc9189454434f7911cb41232db5a Mon Sep 17 00:00:00 2001 From: pi3c Date: Fri, 13 Oct 2023 15:04:21 +0300 Subject: [PATCH] lesson3 --- part1_basic/lesson3/README.md | 6 ++ part1_basic/lesson3/cinema.py | 101 ++++++++++++++++++++++++++++++++++ 2 files changed, 107 insertions(+) create mode 100644 part1_basic/lesson3/README.md create mode 100644 part1_basic/lesson3/cinema.py diff --git a/part1_basic/lesson3/README.md b/part1_basic/lesson3/README.md new file mode 100644 index 0000000..3ce98e8 --- /dev/null +++ b/part1_basic/lesson3/README.md @@ -0,0 +1,6 @@ +Напишите программу для кинотеатра. +Пользователь вводит возраст, город, имя и +наличие сопровождающего. +Если возраст меньше 12 лет, программа выводит "Билет бесплатный". +Если возраст от 12 до 18 лет и есть сопровождающий, программа выводит "Билет со скидкой". +Во всех остальных случаях программа выводит "Полная стоимость билета". diff --git a/part1_basic/lesson3/cinema.py b/part1_basic/lesson3/cinema.py new file mode 100644 index 0000000..246f4c3 --- /dev/null +++ b/part1_basic/lesson3/cinema.py @@ -0,0 +1,101 @@ +""" +Модуль является результатом выполнения практической +домашней работы по теме +"Логические и условные операторы" + +:copyright: Сергей Ванюшкин +:git: https://git.pi3c.ru/pi3c/StudyRepo_Synergy.git +:license: MIT +2023г. +""" + + +import os + + +def cls(): + os.system("cls" if os.name == "nt" else "clear") + + +def get_ticket(**kwargs) -> str: + rates = { + 0: "Полная стоимость билета", + 1: "Билет со скидкой", + 2: "Бесплатный билет", + } + rate = 0 + if kwargs.get("age") in range(0, 12): + rate = 2 + elif kwargs.get("age") in range(12, 18) and kwargs.get("escort", False): + rate = 1 + + return rates.get(rate, "Error") + + +def add_buyer(): + cls() + + print("#" * 25) + print("#".ljust(23), "#") + print("#", "\033[32m{}\033[0m ".format("Купить билет в кино").center(21), "#") + print("#".ljust(23), "#") + print("#" * 25) + + name = input("Ваше имя?: ") + city = input("Ваш город?: ") + + try: + age = int(input("Сколько вам полных лет?: ")) + if age not in range(0, 150): + raise ValueError + except ValueError: + print("Введен некорректный возраст. ") + age = -1 + + if age <= 12: + escort = True + elif age < 18: + escort = ( + True + if input("Вы с сопровождающим? (Да/Нет): ") in ("д", "Д", "Да", "да") + else False + ) + else: + escort = False + + cls() + print("#" * 30) + for i in range(11): + if i in (1, 3, 5, 7, 9): + print("#".ljust(28), "#") + if i == 0: + print("#", "Билет".center(26), "#") + if i == 2: + print("#", name.ljust(26), "#") + if i == 4: + print("#", city.ljust(26), "#") + if i == 6: + print("#", ("Возраст: " + str(age)).ljust(26), "#") + if i == 8: + print( + "#", + ("С сопровождающим" if escort else "Без сопровождения").ljust(26), + "#", + ) + + if i == 10: + print( + "#", + get_ticket(name=name, city=city, age=age, escort=escort).center(26), + "#", + ) + print("#" * 30) + + +add_buyer() + +while True: + if input("Купить еще билет? (Да/Нет): ") in ("д", "Д", "Да", "да"): + add_buyer() + else: + break