From 0da5f367db2f5bcb2797fe129dde7f4532cc13ac Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Wed, 15 Jul 2020 20:33:20 +0300 Subject: [PATCH 01/17] Init task-1 --- task-1.py | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 task-1.py diff --git a/task-1.py b/task-1.py new file mode 100644 index 0000000..f42130d --- /dev/null +++ b/task-1.py @@ -0,0 +1,5 @@ +""" +Задание: +Реализовать функцию, принимающую два числа (позиционные аргументы) и выполняющую их деление. +Числа запрашивать у пользователя, предусмотреть обработку ситуации деления на ноль. +""" \ No newline at end of file From 6c862e7b721e6e8a2723a767d05673675c981220 Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Wed, 15 Jul 2020 20:44:43 +0300 Subject: [PATCH 02/17] Comp task-1 --- task-1.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/task-1.py b/task-1.py index f42130d..5f3537f 100644 --- a/task-1.py +++ b/task-1.py @@ -2,4 +2,18 @@ Задание: Реализовать функцию, принимающую два числа (позиционные аргументы) и выполняющую их деление. Числа запрашивать у пользователя, предусмотреть обработку ситуации деления на ноль. -""" \ No newline at end of file +""" + + +# Определяем фун-цию нахождения частного +def div(a, b): + return a / b + + +dividend = float(input("Делимое ")) +divider = float(input("Делитель ")) + +if not divider: + print("На ноль делить нельзя!") +else: + print("Частное {}".format(div(dividend, divider))) From 8e7dcd2931948de36677b07cc776089d6a309208 Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Wed, 15 Jul 2020 20:46:24 +0300 Subject: [PATCH 03/17] Init task-2 --- task-2.py | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 task-2.py diff --git a/task-2.py b/task-2.py new file mode 100644 index 0000000..ae85578 --- /dev/null +++ b/task-2.py @@ -0,0 +1,7 @@ +""" +Задание: +Реализовать функцию, принимающую несколько параметров, +описывающих данные пользователя: имя, фамилия, год рождения, город проживания, email, телефон. +Функция должна принимать параметры как именованные аргументы. Реализовать вывод данных о пользователе одной строкой. +""" + From 8746195b675c1831c27d0bc301c887aa393cd358 Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Wed, 15 Jul 2020 20:52:19 +0300 Subject: [PATCH 04/17] Comp task-2 --- task-2.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/task-2.py b/task-2.py index ae85578..cdd75d6 100644 --- a/task-2.py +++ b/task-2.py @@ -5,3 +5,9 @@ Функция должна принимать параметры как именованные аргументы. Реализовать вывод данных о пользователе одной строкой. """ + +def my_join(fname, lname, byear, cyear, email, phone): + return "{}, {}, {}, {}, {}, {}".format(fname, lname, byear, cyear, email, phone) + + +print(my_join("Иван", "Иванов", 1989, 2020, "a@a.ru", "89000000000")) From ea2199a6540cf78aab7de2b0dedec547a19d5416 Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Wed, 15 Jul 2020 20:54:33 +0300 Subject: [PATCH 05/17] fix-1 task-2 --- task-2.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/task-2.py b/task-2.py index cdd75d6..3fba790 100644 --- a/task-2.py +++ b/task-2.py @@ -10,4 +10,4 @@ def my_join(fname, lname, byear, cyear, email, phone): return "{}, {}, {}, {}, {}, {}".format(fname, lname, byear, cyear, email, phone) -print(my_join("Иван", "Иванов", 1989, 2020, "a@a.ru", "89000000000")) +print(my_join(fname="Иван", lname="Иванов", byear=1989, cyear=2020, email="a@a.ru", phone="89000000000")) From 6225476be30a502e26a1cb8eaff3376580228336 Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Wed, 15 Jul 2020 20:54:46 +0300 Subject: [PATCH 06/17] Init task-2 --- task-3.py | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 task-3.py diff --git a/task-3.py b/task-3.py new file mode 100644 index 0000000..5219dff --- /dev/null +++ b/task-3.py @@ -0,0 +1,6 @@ +""" +Задание: +Реализовать функцию my_func(), которая принимает три позиционных аргумента, +и возвращает сумму наибольших двух аргументов. +""" + From a4fe78692c49f26e5dfd779e2497003c4583ae43 Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Wed, 15 Jul 2020 21:05:06 +0300 Subject: [PATCH 07/17] Init task-3 --- task-3.py | 1 - 1 file changed, 1 deletion(-) diff --git a/task-3.py b/task-3.py index 5219dff..5543b10 100644 --- a/task-3.py +++ b/task-3.py @@ -3,4 +3,3 @@ Реализовать функцию my_func(), которая принимает три позиционных аргумента, и возвращает сумму наибольших двух аргументов. """ - From 21d9a573262038a08a3010f80033f18da0d3d0c4 Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Wed, 15 Jul 2020 21:05:54 +0300 Subject: [PATCH 08/17] Comp task-3 --- task-3.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/task-3.py b/task-3.py index 5543b10..71e84ec 100644 --- a/task-3.py +++ b/task-3.py @@ -3,3 +3,10 @@ Реализовать функцию my_func(), которая принимает три позиционных аргумента, и возвращает сумму наибольших двух аргументов. """ + + +def my_func(a, b, c): + return max(a, b) + max(min(a, b), c) + + +print(my_func(2, 7, 1)) From 71c026c5dd7c01a74c4efda06bdc7d8d94ce5d4c Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Wed, 15 Jul 2020 21:07:16 +0300 Subject: [PATCH 09/17] Init task-4 --- task-4.py | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 task-4.py diff --git a/task-4.py b/task-4.py new file mode 100644 index 0000000..4869255 --- /dev/null +++ b/task-4.py @@ -0,0 +1,8 @@ +""" +Задание: +Программа принимает действительное положительное число x и целое отрицательное число y. +Необходимо выполнить возведение числа x в степень y. Задание необходимо реализовать в виде функции my_func(x, y). +При решении задания необходимо обойтись без встроенной функции возведения числа в степень. +Подсказка: попробуйте решить задачу двумя способами. Первый — возведение в степень с помощью оператора **. +Второй — более сложная реализация без оператора **, предусматривающая использование цикла. +""" \ No newline at end of file From 3b6a78a1626792cbde4c631b2daaa0c512da0752 Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Wed, 15 Jul 2020 21:44:24 +0300 Subject: [PATCH 10/17] Comp task-4 --- task-4.py | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/task-4.py b/task-4.py index 4869255..e343d84 100644 --- a/task-4.py +++ b/task-4.py @@ -5,4 +5,24 @@ При решении задания необходимо обойтись без встроенной функции возведения числа в степень. Подсказка: попробуйте решить задачу двумя способами. Первый — возведение в степень с помощью оператора **. Второй — более сложная реализация без оператора **, предусматривающая использование цикла. -""" \ No newline at end of file +""" + + +def my_func(x, y): + return x ** y + + +def my_func2(x, y): + res = 1 + for i in range(abs(y)): + res *= x + return 1 / res + + +x, y = float(input("Введите число x ")), int(input("Введите число y ")) + +if x >= 0 and y < 0: + print("Результат возведение числа x в степень y {}".format(my_func(x, y))) + print("Результат возведение числа x в степень y {}".format(my_func2(x, y))) +else: + print("Нарушены вводные данные") From e46fd32f258ff3ac4b89f69058252168d2ec02a7 Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Wed, 15 Jul 2020 21:45:49 +0300 Subject: [PATCH 11/17] Init task-5 --- task-5.py | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 task-5.py diff --git a/task-5.py b/task-5.py new file mode 100644 index 0000000..f19fede --- /dev/null +++ b/task-5.py @@ -0,0 +1,9 @@ +""" +Задание: +Программа запрашивает у пользователя строку чисел, разделенных пробелом. +При нажатии Enter должна выводиться сумма чисел. Пользователь может продолжить ввод чисел, +разделенных пробелом и снова нажать Enter. Сумма вновь введенных чисел будет добавляться к уже подсчитанной сумме. +Но если вместо числа вводится специальный символ, выполнение программы завершается. +Если специальный символ введен после нескольких чисел, +то вначале нужно добавить сумму этих чисел к полученной ранее сумме и после этого завершить программу. +""" \ No newline at end of file From d41728b5b18eb68d45c0f5bebc7788715e1365b2 Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Sat, 18 Jul 2020 11:22:34 +0300 Subject: [PATCH 12/17] opt task-3 --- task-3.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/task-3.py b/task-3.py index 71e84ec..dde8eab 100644 --- a/task-3.py +++ b/task-3.py @@ -6,7 +6,7 @@ def my_func(a, b, c): - return max(a, b) + max(min(a, b), c) + return max(max(a,b),c) print(my_func(2, 7, 1)) From 7ae1f44068af59258d3e8b678fac23cb8e2c8ea5 Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Sat, 18 Jul 2020 11:29:35 +0300 Subject: [PATCH 13/17] opt task-1 --- task-1.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/task-1.py b/task-1.py index 5f3537f..bcc24ad 100644 --- a/task-1.py +++ b/task-1.py @@ -7,13 +7,15 @@ # Определяем фун-цию нахождения частного def div(a, b): - return a / b + try: + return a / b + except ZeroDivisionError: + print("На ноль делить нельзя!") + return "" + dividend = float(input("Делимое ")) divider = float(input("Делитель ")) -if not divider: - print("На ноль делить нельзя!") -else: - print("Частное {}".format(div(dividend, divider))) +print("Частное {}".format(div(dividend, divider))) From 22d1e5c92287b4e48511b92d6bec6f4c34d32dd0 Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Sat, 18 Jul 2020 11:48:10 +0300 Subject: [PATCH 14/17] opt task-4 --- task-4.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/task-4.py b/task-4.py index e343d84..4615ef9 100644 --- a/task-4.py +++ b/task-4.py @@ -7,22 +7,18 @@ Второй — более сложная реализация без оператора **, предусматривающая использование цикла. """ +import math def my_func(x, y): - return x ** y - - -def my_func2(x, y): res = 1 for i in range(abs(y)): res *= x - return 1 / res + return round(1 / res, 4) x, y = float(input("Введите число x ")), int(input("Введите число y ")) if x >= 0 and y < 0: print("Результат возведение числа x в степень y {}".format(my_func(x, y))) - print("Результат возведение числа x в степень y {}".format(my_func2(x, y))) else: print("Нарушены вводные данные") From e4ddae10801ef5ce08cb506a2520469494df84a5 Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Sat, 18 Jul 2020 12:11:49 +0300 Subject: [PATCH 15/17] comp task-5 --- task-5.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/task-5.py b/task-5.py index f19fede..815ca94 100644 --- a/task-5.py +++ b/task-5.py @@ -6,4 +6,17 @@ Но если вместо числа вводится специальный символ, выполнение программы завершается. Если специальный символ введен после нескольких чисел, то вначале нужно добавить сумму этих чисел к полученной ранее сумме и после этого завершить программу. -""" \ No newline at end of file +""" + +sum = int(0) + +while True: + input_string = input("Введите строку чисел ") + list1 = input_string.split() + try: + for element in list1: + sum += float(element) + except ValueError: + break + print("Общая сумма равна {}".format(sum)) +print("Общая сумма равна {}".format(sum)) From 8114277af1a9d9bb98a174289448bcc42eba9030 Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Sat, 18 Jul 2020 12:13:59 +0300 Subject: [PATCH 16/17] Init task-6 --- task-6.py | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 task-6.py diff --git a/task-6.py b/task-6.py new file mode 100644 index 0000000..01bf2e9 --- /dev/null +++ b/task-6.py @@ -0,0 +1,8 @@ +""" +Задание: +Реализовать функцию int_func(), принимающую слово из маленьких латинских букв и возвращающую его же, +но с прописной первой буквой. Например, print(int_func(‘text’)) -> Text. +Продолжить работу над заданием. В программу должна попадать строка из слов, разделенных пробелом. +Каждое слово состоит из латинских букв в нижнем регистре. Сделать вывод исходной строки, +но каждое слово должно начинаться с заглавной буквы. Необходимо использовать написанную ранее функцию int_func(). +""" \ No newline at end of file From 50e1f02bc6b473ac7c882a17a31a65bf4a945254 Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Sat, 18 Jul 2020 12:50:21 +0300 Subject: [PATCH 17/17] comp task-6 --- task-6.py | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/task-6.py b/task-6.py index 01bf2e9..e706db5 100644 --- a/task-6.py +++ b/task-6.py @@ -5,4 +5,23 @@ Продолжить работу над заданием. В программу должна попадать строка из слов, разделенных пробелом. Каждое слово состоит из латинских букв в нижнем регистре. Сделать вывод исходной строки, но каждое слово должно начинаться с заглавной буквы. Необходимо использовать написанную ранее функцию int_func(). -""" \ No newline at end of file +""" + +# Рекурсивная ф-ция проверки строки +# True если все символы в диапазоне от 96 до 123 +def filter(word): + if not len(word): + return True + if 96 < ord(word[0]) < 123 and filter(word[1:]): + return True + else: + return False + +def int_func(input_string): + output = [] + for word in input_string.split(): + if filter(word): + output.append(word.title()) + return " ".join(output) + +print(int_func("text Text teXt text Text 47sa3 same")) \ No newline at end of file