diff --git "a/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py" "b/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py" index fe0df5951..ade91be52 100644 --- "a/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py" +++ "b/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py" @@ -11,3 +11,8 @@ Введите ваш возраст: 45 Ваши данные для входа в аккаунт: имя - Василий, пароль - vas, возраст - 45 """ +name = input('Введите ваше имя: ') +age = int(input('Введите ваш возраст: ')) +job = input('Введите вашу должность: ') +status_mar = input('Введите ваше семейное положение: ') +print(f"Это {name}. Ему(ей) {age}. Он(а) работает на позиции {job} и неплохо зарабатывает. И, кстати, {status_mar}.") diff --git "a/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2.py" "b/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2.py" index 840e3fa00..656ba3583 100644 --- "a/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2.py" +++ "b/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2.py" @@ -9,3 +9,8 @@ Введите время в секундах: 3600 Время в формате ч:м:с - 1.0 : 60.0 : 3600 """ +user_sec_input = int(input('Введите количество секунд: ')) +hour = user_sec_input//(60*60) +minute = (user_sec_input - hour*(60*60))//60 +second = user_sec_input - hour*(60*60) - minute*60 +print(f" {hour}:{minute}:{second}") \ No newline at end of file diff --git "a/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3.py" "b/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3.py" index 0c08706fd..7504ddeab 100644 --- "a/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3.py" +++ "b/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3.py" @@ -8,3 +8,8 @@ Введите число n: 3 n + nn + nnn = 369 """ +n = int(input('Введите число n: ')) +if n >10: + print("Введите однозначное число") +else: + print(n+(n*11)+(n*111)) diff --git "a/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_4.py" "b/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_4.py" index 9acac6dd3..119e55e8b 100644 --- "a/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_4.py" +++ "b/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_4.py" @@ -10,3 +10,11 @@ Ведите целое положительное число: 123456789 Самая большая цифра в числе: 9 """ +a = int(input('Введите число: ')) +b = a%10 +a = a//10 +while a > 0: + if a%10 > b: + b = a%10 + a = a//10 +print(b) \ No newline at end of file diff --git "a/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_5.py" "b/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_5.py" index 51682803e..b05d2f296 100644 --- "a/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_5.py" +++ "b/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_5.py" @@ -18,3 +18,14 @@ Введите численность сотрудников фирмы: 10 Прибыль фирмы в расчете на одного сотрудника = 50.0 """ +revenue = int(input('Введите выручку фирмы: ')) +costs = int(input('Введите издержки фирмы: ')) +if revenue > costs: + profitability = ((revenue - costs)/revenue)*100 + emp_number = int(input('Введите число сотрудников компании: ')) + profit_per_person = (revenue - costs)/emp_number + print(f"Рентабельность компании равна {profitability}%. Прибыль в расчёте на каждого сотрудника равна {profit_per_person} рублей.") +elif revenue < costs: + print('Компания работает в убыток') +else: + print('Компания работает в ноль') \ No newline at end of file diff --git "a/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_6.py" "b/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_6.py" index 3c46df32d..ef8e50698 100644 --- "a/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_6.py" +++ "b/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_6.py" @@ -19,3 +19,10 @@ 6-й день: 3,22 Ответ: на 6-й день спортсмен достиг результата — не менее 3 км. """ +fact_result = int(input('Введите результат спортсмена в 1 день: ')) #результат спортсмена в 1-й день +plan_result = int(input('Введите планируемый результат спортсмена: ')) #результат спортсмена в n-ый день +n = 1 +while fact_result < plan_result: + fact_result = fact_result * 1.1 + n += 1 +print (f"Спортсмену понадобится {n} дней") \ No newline at end of file diff --git "a/\320\243\321\200\320\276\320\272 2. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py" "b/\320\243\321\200\320\276\320\272 2. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py" index efb8c5f98..2d8cba57e 100644 --- "a/\320\243\321\200\320\276\320\272 2. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py" +++ "b/\320\243\321\200\320\276\320\272 2. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py" @@ -4,14 +4,6 @@ Использовать функцию type() для проверки типа. Элементы списка можно не запрашивать у пользователя, а указать явно, в программе. +""" -Пример: -для списка [5, "string", 0.15, True, None] -результат - - - - - -""" diff --git "a/\320\243\321\200\320\276\320\272 2. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_5.py" "b/\320\243\321\200\320\276\320\272 2. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_5.py" index 4e74de593..abaff7512 100644 --- "a/\320\243\321\200\320\276\320\272 2. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_5.py" +++ "b/\320\243\321\200\320\276\320\272 2. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_5.py" @@ -15,3 +15,4 @@ Набор натуральных чисел можно задать непосредственно в коде, например, my_list = [7, 5, 3, 3, 2]. """ + diff --git "a/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py" "b/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py" index 4b1004ea9..ba549f639 100644 --- "a/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py" +++ "b/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py" @@ -17,3 +17,12 @@ Process finished with exit code 0 """ +def calc_1(): + try: + arg1 = int(input('Введите первое число: ')) + arg2 = int(input('Введите второе число: ')) + except ZeroDivisionError: + return print('Делить на 0 нельзя') + res_1: int = arg1 // arg2 + return res_1 +print (calc_1()) diff --git "a/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2.py" "b/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2.py" index b0177eb44..dbcbed2c7 100644 --- "a/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2.py" +++ "b/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2.py" @@ -8,3 +8,14 @@ Иван Иванов 1846 года рождения, проживает в городе Москва, email: jackie@gmail.com, телефон: 01005321456 """ + +# f_name = input('Введите имя: ') +# l_name = input('Введите фамилию: ') +# city = input('Введите город: ') +# def second_func(f_name, l_name, city): +# print = f_name, l_name, " из города", city + +def func_2(name, l_name, city): + print(f"{name} {l_name} из города {city}") +func_2(name = input('Введите имя: '), l_name = input('Введите фамилию: '), city = input('Введите город: ')) + diff --git "a/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3.py" "b/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3.py" index 4385ba3cf..c328c3199 100644 --- "a/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3.py" +++ "b/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3.py" @@ -5,3 +5,17 @@ 1) используя функцию sort() 2) без функции sort() """ +# def my_func(arg1, arg2, arg3): +# if arg1 >= arg3 and arg2 >= arg3: +# return arg1 + arg2 +# elif arg1 > arg2 and arg1 < arg3: +# return arg1 + arg3 +# else: +# return arg2 + arg3 +# print(my_func(int(input('Введите число 1: ')), int(input('Введите число 2: ')), int(input('Введите число 3: ')))) + +def my_func(arg1, arg2, arg3): + a = [arg1,arg2,arg3] + a.sort(reverse = True) + return a[0]+a[1] +print(my_func(int(input('Введите число 1: ')), int(input('Введите число 2: ')), int(input('Введите число 3: ')))) \ No newline at end of file diff --git "a/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_4.py" "b/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_4.py" index f6274e1bf..ce2a8daab 100644 --- "a/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_4.py" +++ "b/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_4.py" @@ -4,4 +4,13 @@ При решении задания необходимо обойтись без встроенной функции возведения числа в степень! ВНИМАНИЕ: использование встроенной функции = задание не принято Постараться придумать свой алгоритм без ** + """ +def my_func(x, y): + a = x + y = abs(y) + while y >= 0: + a = a / x + y = y - 1 + return float(a) +print(my_func(int(input('Введите х положительное: ')), int(input('Введите y отрицательное: ')))) \ No newline at end of file diff --git "a/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_5.py" "b/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_5.py" index 6eb90d579..9c95ffa62 100644 --- "a/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_5.py" +++ "b/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_5.py" @@ -6,3 +6,23 @@ символ введен после нескольких чисел, то вначале нужно добавить сумму этих чисел к полученной ранее сумме и после этого завершить программу. """ + +def my_sum (): + sum_res = 0 + ex = False + while ex == False: + number = input('Введите числа через пробел или нажмите q для выхода - ').split() + + res = 0 + for el in range(len(number)): + if number[el] == 'q' or number[el] == 'Q': + ex = True + break + else: + res = res + int(number[el]) + sum_res = sum_res + res + print(f'Current sum is {sum_res}') + print(f'Your final sum is {sum_res}') + + +my_sum() \ No newline at end of file diff --git "a/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_6.py" "b/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_6.py" index 965966284..444d4b771 100644 --- "a/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_6.py" +++ "b/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_6.py" @@ -8,3 +8,8 @@ Сделать вывод исходной строки, но каждое слово должно начинаться с заглавной буквы. Необходимо использовать написанную ранее функцию int_func(). """ +def int_func (*args): + word = input("Введите слово(а) ") + print(word.title()) + return +int_func() \ No newline at end of file diff --git "a/\320\243\321\200\320\276\320\272 8. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py" "b/\320\243\321\200\320\276\320\272 8. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py" index 5b4641e41..ddcff5197 100644 --- "a/\320\243\321\200\320\276\320\272 8. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py" +++ "b/\320\243\321\200\320\276\320\272 8. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py" @@ -12,3 +12,46 @@ Второй, с декоратором @staticmethod, должен проводить валидацию числа, месяца и года (например, месяц — от 1 до 12). Проверить работу полученной структуры на реальных данных. """ + + +class Data: + def __init__(self, day_month_year): + # self.day = day + # self.month = month + # self.year = year + self.day_month_year = str(day_month_year) + + @classmethod + def extract(cls, day_month_year): + my_date = [] + + for i in day_month_year.split(): + if i != '-': my_date.append(i) + + return int(my_date[0]), int(my_date[1]), int(my_date[2]) + + @staticmethod + def valid(day, month, year): + + if 1 <= day <= 31: + if 1 <= month <= 12: + if 2023 >= year >= 0: + return f'All right' + else: + return f'Неправильный год' + else: + return f'Неправильный месяц' + else: + return f'Неправильный день' + + def __str__(self): + return f'Текущая дата {Data.extract(self.day_month_year)}' + + +today = Data('11 - 1 - 2001') +print(today) +print(Data.valid(11, 11, 2025)) +print(today.valid(11, 13, 2011)) +print(Data.extract('11 - 11 - 2011')) +print(today.extract('11 - 11 - 2020')) +print(Data.valid(1, 11, 2000)) diff --git "a/\320\243\321\200\320\276\320\272 8. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2.py" "b/\320\243\321\200\320\276\320\272 8. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2.py" index 12e1c68b3..8b3f87798 100644 --- "a/\320\243\321\200\320\276\320\272 8. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2.py" +++ "b/\320\243\321\200\320\276\320\272 8. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2.py" @@ -5,3 +5,20 @@ Проверьте его работу на данных, вводимых пользователем. При вводе пользователем нуля в качестве делителя программа должна корректно обработать эту ситуацию и не завершиться с ошибкой. """ + +class DivisionByZeroError(Exception): + pass +def divide(a, b): + if b == 0: + raise DivisionByZeroError("Делить на ноль нельзя") + return a / b + +try: + a = float(input("Введите число для деления: ")) + b = float(input("Введите число, на которое нужно поделить: ")) + result = divide(a, b) + print(f"Результат: {result}") +except DivisionByZeroError as e: + print(f"Ошибка: {e}") +except ValueError: + print("Error: Некоррентный ввод") \ No newline at end of file diff --git "a/\320\243\321\200\320\276\320\272 8. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3.py" "b/\320\243\321\200\320\276\320\272 8. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3.py" index ae100adca..f46fab5e6 100644 --- "a/\320\243\321\200\320\276\320\272 8. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3.py" +++ "b/\320\243\321\200\320\276\320\272 8. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3.py" @@ -9,3 +9,33 @@ Класс-исключение должен контролировать типы данных элементов списка. """ +class NotNumberError(Exception): + pass + +def get_numbers(): + numbers = [] + while True: + try: + user_input = input("Введите число или 'stop' для завершения: ") + if user_input == 'stop': + break + number = float(user_input) + numbers.append(number) + except ValueError: + print("Ошибка: допустимо вводить только числа") + except NotNumberError as e: + print(f"Ошибка: {e}") + return numbers + +class NumberList(list): + def append(self, value): + if not isinstance(value, (int, float)): + raise NotNumberError("Допустимо вводить только числа") + super().append(value) + +try: + number_list = NumberList() + number_list.extend(get_numbers()) + print(f"Список чисел: {number_list}") +except NotNumberError as e: + print(f"Ошибка: {e}") \ No newline at end of file diff --git "a/\320\243\321\200\320\276\320\272 8. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_4_5_6.py" "b/\320\243\321\200\320\276\320\272 8. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_4_5_6.py" index 29a002d49..457b6836f 100644 --- "a/\320\243\321\200\320\276\320\272 8. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_4_5_6.py" +++ "b/\320\243\321\200\320\276\320\272 8. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_4_5_6.py" @@ -19,3 +19,66 @@ Подсказка: постарайтесь по возможности реализовать в проекте «Склад оргтехники» максимум возможностей, изученных на уроках по ООП. """ +class StoreMashines: + + def __init__(self, name, price, quantity, number_of_lists, *args): + self.name = name + self.price = price + self.quantity = quantity + self.numb = number_of_lists + self.my_store_full = [] + self.my_store = [] + self.my_unit = {'Модель устройства': self.name, 'Цена за ед': self.price, 'Количество': self.quantity} + + def __str__(self): + return f'{self.name} цена {self.price} количество {self.quantity}' + + # @classmethod + # @staticmethod + def reception(self): + # print(f'Для выхода - Q, продолжение - Enter') + # while True: + try: + unit = input(f'Введите наименование ') + unit_p = int(input(f'Введите цену за ед ')) + unit_q = int(input(f'Введите количество ')) + unique = {'Модель устройства': unit, 'Цена за ед': unit_p, 'Количество': unit_q} + self.my_unit.update(unique) + self.my_store.append(self.my_unit) + print(f'Текущий список -\n {self.my_store}') + except: + return f'Ошибка ввода данных' + + print(f'Для выхода - Q, продолжение - Enter') + q = input(f'---> ') + if q == 'Q' or q == 'q': + self.my_store_full.append(self.my_store) + print(f'Весь склад -\n {self.my_store_full}') + return f'Выход' + else: + return StoreMashines.reception(self) + + +class Printer(StoreMashines): + def to_print(self): + return f'to print smth {self.numb} times' + + +class Scanner(StoreMashines): + def to_scan(self): + return f'to scan smth {self.numb} times' + + +class Copier(StoreMashines): + def to_copier(self): + return f'to copier smth {self.numb} times' + + +unit_1 = Printer('hp', 2000, 5, 10) +unit_2 = Scanner('Canon', 1200, 5, 10) +unit_3 = Copier('Xerox', 1500, 1, 15) +print(unit_1.reception()) +print(unit_2.reception()) +print(unit_3.reception()) +print(unit_1.to_print()) +print(unit_3.to_copier()) diff --git "a/\320\243\321\200\320\276\320\272 8. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_7.py" "b/\320\243\321\200\320\276\320\272 8. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_7.py" index 023fa7dbd..4ddd869ca 100644 --- "a/\320\243\321\200\320\276\320\272 8. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_7.py" +++ "b/\320\243\321\200\320\276\320\272 8. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_7.py" @@ -6,3 +6,32 @@ создав экземпляры класса (комплексные числа) и выполнив сложение и умножение созданных экземпляров. Проверьте корректность полученного результата. """ +class ComplexNumber: + def __init__(self, real, imag): + self.real = real + self.imag = imag + + def __add__(self, other): + return ComplexNumber(self.real + other.real, self.imag + other.imag) + + def __mul__(self, other): + return ComplexNumber(self.real * other.real - self.imag * other.imag, self.real * other.imag + self.imag * other.real) + + def __str__(self): + if self.imag >= 0: + return f"{self.real}+{self.imag}i" + else: + return f"{self.real}{self.imag}i" + + +# создаем два комплексных числа +a = ComplexNumber(2, 3) +b = ComplexNumber(-1, 4) + +# складываем и перемножаем числа +c = a + b +d = a * b + +# выводим результаты +print(f"({a}) + ({b}) = {c}") +print(f"({a}) * ({b}) = {d}") \ No newline at end of file