From 77b25c04badd1fb79e29aebeae3b8e7a515b136c Mon Sep 17 00:00:00 2001 From: Stas Petrov Date: Fri, 17 Feb 2023 16:13:07 +0300 Subject: [PATCH 1/2] excesize7 --- 7_exception2.py | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/7_exception2.py b/7_exception2.py index d4bd8a39..27d9f921 100644 --- a/7_exception2.py +++ b/7_exception2.py @@ -13,11 +13,23 @@ """ -def discounted(price, discount, max_discount=20) - """ - Замените pass на ваш код - """ - pass +def discounted(price, discount, max_discount=-23.4): + + try: + price = abs(float(price)) + discount = abs(float(discount)) + max_discount = abs(int(max_discount)) + if max_discount >= 100: + raise ValueError('Максимальная скидка не должна быть больше 100') + if discount >= max_discount: + price_with_discount = price + else: + price_with_discount = price - (price * discount / 100) + return price_with_discount + except(ValueError): + print("неправильно!") + except(TypeError): + print("неправильный тип переменной!") if __name__ == "__main__": print(discounted(100, 2)) From b317e6ce8451820ce628352382b2f9d678e4f4a7 Mon Sep 17 00:00:00 2001 From: Stas Petrov Date: Sat, 18 Feb 2023 15:40:07 +0300 Subject: [PATCH 2/2] =?UTF-8?q?=D0=BF=D0=BE=D0=BF=D1=80=D0=B0=D0=B2=D0=BA?= =?UTF-8?q?=D0=B0=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BE=D0=BA?= =?UTF-8?q?=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BE=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 7_exception2.py | 41 +++++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/7_exception2.py b/7_exception2.py index 27d9f921..b6caf727 100644 --- a/7_exception2.py +++ b/7_exception2.py @@ -10,31 +10,36 @@ * Первые два нужно приводить к вещественному числу при помощи float(), а третий - к целому при помощи int() и перехватывать исключения ValueError и TypeError, если приведение типов не сработало. - + """ def discounted(price, discount, max_discount=-23.4): try: - price = abs(float(price)) - discount = abs(float(discount)) - max_discount = abs(int(max_discount)) - if max_discount >= 100: + price = abs(float(price)) + discount = abs(float(discount)) + max_discount = abs(int(max_discount)) + except(ValueError): + raise ValueError("неправильно!") + except(TypeError): + raise ValueError("неправильный тип переменной!") + + if max_discount >= 100: raise ValueError('Максимальная скидка не должна быть больше 100') - if discount >= max_discount: + + print(f'{max_discount=} {discount=}') + if discount >= max_discount: price_with_discount = price - else: + else: price_with_discount = price - (price * discount / 100) - return price_with_discount - except(ValueError): - print("неправильно!") - except(TypeError): - print("неправильный тип переменной!") - + + return price_with_discount + + if __name__ == "__main__": - print(discounted(100, 2)) - print(discounted(100, "3")) - print(discounted("100", "4.5")) - print(discounted("five", 5)) + # print(discounted(100, 2, 105)) + # print(discounted(100, "3")) + # print(discounted("100", "4.5")) + # print(discounted("five", 5)) print(discounted("сто", "десять")) - print(discounted(100.0, 5, "10")) + # print(discounted(100.0, 5, "10"))