From c0e3614074bbbf108c20a6157d6877ee92d70786 Mon Sep 17 00:00:00 2001 From: Alex Klyanchin Date: Wed, 21 Oct 2020 12:32:57 +0300 Subject: [PATCH 1/5] les03 initial --- homeworks/task01.py | 6 ++++++ homeworks/task02.py | 7 +++++++ homeworks/task03.py | 4 ++++ homeworks/task04.py | 9 +++++++++ homeworks/task05.py | 10 ++++++++++ homeworks/task06.py | 10 ++++++++++ 6 files changed, 46 insertions(+) create mode 100644 homeworks/task01.py create mode 100644 homeworks/task02.py create mode 100644 homeworks/task03.py create mode 100644 homeworks/task04.py create mode 100644 homeworks/task05.py create mode 100644 homeworks/task06.py diff --git a/homeworks/task01.py b/homeworks/task01.py new file mode 100644 index 0000000..6a5c213 --- /dev/null +++ b/homeworks/task01.py @@ -0,0 +1,6 @@ +""" +1. Реализовать функцию, принимающую два числа (позиционные аргументы) и выполняющую их деление. +Числа запрашивать у пользователя, предусмотреть обработку ситуации деления на ноль. +""" + + diff --git a/homeworks/task02.py b/homeworks/task02.py new file mode 100644 index 0000000..330c323 --- /dev/null +++ b/homeworks/task02.py @@ -0,0 +1,7 @@ +""" +2. Реализовать функцию, принимающую несколько параметров, +описывающих данные пользователя: имя, фамилия, год рождения, город проживания, email, телефон. +Функция должна принимать параметры как именованные аргументы. +Реализовать вывод данных о пользователе одной строкой. + +""" \ No newline at end of file diff --git a/homeworks/task03.py b/homeworks/task03.py new file mode 100644 index 0000000..023307c --- /dev/null +++ b/homeworks/task03.py @@ -0,0 +1,4 @@ +""" +3. Реализовать функцию my_func(), +которая принимает три позиционных аргумента, и возвращает сумму наибольших двух аргументов. +""" \ No newline at end of file diff --git a/homeworks/task04.py b/homeworks/task04.py new file mode 100644 index 0000000..c319c2f --- /dev/null +++ b/homeworks/task04.py @@ -0,0 +1,9 @@ +""" +4. Программа принимает действительное положительное число x и целое отрицательное число y. +Необходимо выполнить возведение числа x в степень y. Задание необходимо реализовать в виде функции my_func(x, y). +При решении задания необходимо обойтись без встроенной функции возведения числа в степень. + +Подсказка: попробуйте решить задачу двумя способами. +Первый — возведение в степень с помощью оператора **. +Второй — более сложная реализация без оператора **, предусматривающая использование цикла. +""" \ No newline at end of file diff --git a/homeworks/task05.py b/homeworks/task05.py new file mode 100644 index 0000000..5843f76 --- /dev/null +++ b/homeworks/task05.py @@ -0,0 +1,10 @@ +""" +5. Программа запрашивает у пользователя строку чисел, разделенных пробелом. +При нажатии Enter должна выводиться сумма чисел. +Пользователь может продолжить ввод чисел, разделенных пробелом и снова нажать Enter. +Сумма вновь введенных чисел будет добавляться к уже подсчитанной сумме. +Но если вместо числа вводится специальный символ, выполнение программы завершается. +Если специальный символ введен после нескольких чисел, +то вначале нужно добавить сумму этих чисел к полученной ранее сумме и после этого завершить программу. + +""" \ No newline at end of file diff --git a/homeworks/task06.py b/homeworks/task06.py new file mode 100644 index 0000000..96957ce --- /dev/null +++ b/homeworks/task06.py @@ -0,0 +1,10 @@ +""" +6. Реализовать функцию int_func(), +принимающую слово из маленьких латинских букв и возвращающую его же, но с прописной первой буквой. +Например, print(int_func(‘text’)) -> Text. +Продолжить работу над заданием. +В программу должна попадать строка из слов, разделенных пробелом. +Каждое слово состоит из латинских букв в нижнем регистре. +Сделать вывод исходной строки, но каждое слово должно начинаться с заглавной буквы. +Необходимо использовать написанную ранее функцию int_func(). +""" \ No newline at end of file From f2cf0391fc403bfd1027385b0ed23fefd3ef54df Mon Sep 17 00:00:00 2001 From: Alex Klyanchin Date: Wed, 21 Oct 2020 17:18:44 +0300 Subject: [PATCH 2/5] les03 task[1:3] beta --- homeworks/task01.py | 20 ++++++++++++++++++++ homeworks/task02.py | 10 +++++++++- homeworks/task03.py | 11 ++++++++++- 3 files changed, 39 insertions(+), 2 deletions(-) diff --git a/homeworks/task01.py b/homeworks/task01.py index 6a5c213..bea35bd 100644 --- a/homeworks/task01.py +++ b/homeworks/task01.py @@ -4,3 +4,23 @@ """ +def input_float(): + buf = input('Введите число : ') + try: + return float(buf) + except ValueError: + print('Ошибка ввода. ') + + +def ai_divide(a, b): + try: + return a / b + except ZeroDivisionError: + return float('inf') + # except TypeError: + # print('Введены неправильные данные') + + +a = input_float() +b = input_float() +print('Результат : ', ai_divide(a, b)) diff --git a/homeworks/task02.py b/homeworks/task02.py index 330c323..fb73a6d 100644 --- a/homeworks/task02.py +++ b/homeworks/task02.py @@ -4,4 +4,12 @@ Функция должна принимать параметры как именованные аргументы. Реализовать вывод данных о пользователе одной строкой. -""" \ No newline at end of file +""" + + +def client_to_string(name, last_name, year_of_birth, email, phone): + print(f'{name} {last_name}, {year_of_birth} года рождения, контакты: {email}, {phone}') + + +client_to_string(name='Николай', last_name='Иронов', year_of_birth=2019, email='ironov@artlebedev.ru', + phone='+7 495 926-18-00') diff --git a/homeworks/task03.py b/homeworks/task03.py index 023307c..68dbc1a 100644 --- a/homeworks/task03.py +++ b/homeworks/task03.py @@ -1,4 +1,13 @@ """ 3. Реализовать функцию my_func(), которая принимает три позиционных аргумента, и возвращает сумму наибольших двух аргументов. -""" \ No newline at end of file +""" + + +def my_func(a, b, c): + if a > c and b > c: + return a + b + elif b > a and c > a: + return b + c + else: + return a + c From 084c7cd1ef016c8491b0797bd75ebac5e8f322b8 Mon Sep 17 00:00:00 2001 From: Alex Klyanchin Date: Thu, 22 Oct 2020 15:25:18 +0300 Subject: [PATCH 3/5] les03 task[1:6] todo --- homeworks/task01.py | 4 ++-- homeworks/task03.py | 6 ++++++ homeworks/task04.py | 40 +++++++++++++++++++++++++++++++++++++++- homeworks/task05.py | 16 +++++++++++++++- homeworks/task06.py | 17 ++++++++++++++++- homeworks/test.py | 9 +++++++++ 6 files changed, 87 insertions(+), 5 deletions(-) create mode 100644 homeworks/test.py diff --git a/homeworks/task01.py b/homeworks/task01.py index bea35bd..cf0607a 100644 --- a/homeworks/task01.py +++ b/homeworks/task01.py @@ -5,6 +5,7 @@ def input_float(): + # todo описание функции buf = input('Введите число : ') try: return float(buf) @@ -13,12 +14,11 @@ def input_float(): def ai_divide(a, b): + # todo описание функции try: return a / b except ZeroDivisionError: return float('inf') - # except TypeError: - # print('Введены неправильные данные') a = input_float() diff --git a/homeworks/task03.py b/homeworks/task03.py index 68dbc1a..1258c32 100644 --- a/homeworks/task03.py +++ b/homeworks/task03.py @@ -5,9 +5,15 @@ def my_func(a, b, c): + # todo описание функции if a > c and b > c: return a + b elif b > a and c > a: return b + c else: return a + c + + +print(my_func(1, 2, 3)) +print(my_func(1, 2, 3)) +print(my_func(1, 3, 2)) diff --git a/homeworks/task04.py b/homeworks/task04.py index c319c2f..866a0f6 100644 --- a/homeworks/task04.py +++ b/homeworks/task04.py @@ -6,4 +6,42 @@ Подсказка: попробуйте решить задачу двумя способами. Первый — возведение в степень с помощью оператора **. Второй — более сложная реализация без оператора **, предусматривающая использование цикла. -""" \ No newline at end of file +""" + + +def input_float(invite='Введите число : '): + # todo описание функции + buf = input(invite) + try: + return float(buf) + except ValueError: + print('Ошибка ввода. ') + + +def input_int(invite='Введите число : '): + # todo описание функции + buf = input(invite) + try: + return int(buf) + except ValueError: + print('Ошибка ввода. ') + + +def reverse_expo(x, neg_exp): + # todo описание функции + multi = x + for _ in my_range(1, abs(neg_exp) - 1): + multi *= x + return 1 / multi + + +def my_range(start, end): + # todo описание функции + while start <= end: + yield start + start += 1 + + +x = input_float('Введите действительное положительное число : ') +neg_exp = input_int('Введите целое отрицательное число : ') +print('Результат', reverse_expo(x, neg_exp)) diff --git a/homeworks/task05.py b/homeworks/task05.py index 5843f76..715bae0 100644 --- a/homeworks/task05.py +++ b/homeworks/task05.py @@ -7,4 +7,18 @@ Если специальный символ введен после нескольких чисел, то вначале нужно добавить сумму этих чисел к полученной ранее сумме и после этого завершить программу. -""" \ No newline at end of file +""" +sym_stop = 'q' +is_doing = True +summa = 0 +while is_doing: + buf = input("Введите числа через пробел: ") + if buf[0] == sym_stop: + break + tokens = buf.split() + for word in tokens: + if word == sym_stop: + is_doing = False + break + summa += float(word) + print('Сумма : ', summa) diff --git a/homeworks/task06.py b/homeworks/task06.py index 96957ce..034c830 100644 --- a/homeworks/task06.py +++ b/homeworks/task06.py @@ -7,4 +7,19 @@ Каждое слово состоит из латинских букв в нижнем регистре. Сделать вывод исходной строки, но каждое слово должно начинаться с заглавной буквы. Необходимо использовать написанную ранее функцию int_func(). -""" \ No newline at end of file +""" + + +def int_func(text): + # todo описание функции + return text[0].upper() + text[1:] + + +buf = input("Введите слова через пробел: ") +tokens = buf.split() +idx = 0 +buf = '' +while idx < len(tokens): + buf += int_func(tokens[idx]) + ' ' + idx += 1 +print(buf) diff --git a/homeworks/test.py b/homeworks/test.py new file mode 100644 index 0000000..b5ae0b9 --- /dev/null +++ b/homeworks/test.py @@ -0,0 +1,9 @@ +def my_range(start, end): + while start <= end: + yield start + start += 1 + +print(list(my_range(1,3))) + + + From 615a98fc4c13fe60b5fb97983262a063807c332e Mon Sep 17 00:00:00 2001 From: Alex Klyanchin Date: Fri, 23 Oct 2020 09:48:26 +0300 Subject: [PATCH 4/5] les03 task[1:6] final release --- homeworks/task01.py | 3 ++- homeworks/task02.py | 1 + homeworks/task03.py | 2 +- homeworks/task04.py | 6 ++---- homeworks/task05.py | 10 +++++----- homeworks/task06.py | 6 +++--- homeworks/test.py | 9 --------- 7 files changed, 14 insertions(+), 23 deletions(-) delete mode 100644 homeworks/test.py diff --git a/homeworks/task01.py b/homeworks/task01.py index cf0607a..b88218f 100644 --- a/homeworks/task01.py +++ b/homeworks/task01.py @@ -5,7 +5,7 @@ def input_float(): - # todo описание функции + """ Запрашивает число у пользователя """ buf = input('Введите число : ') try: return float(buf) @@ -14,6 +14,7 @@ def input_float(): def ai_divide(a, b): + """ Принимает два числа, возвращает результат деления """ # todo описание функции try: return a / b diff --git a/homeworks/task02.py b/homeworks/task02.py index fb73a6d..d1a93e4 100644 --- a/homeworks/task02.py +++ b/homeworks/task02.py @@ -8,6 +8,7 @@ def client_to_string(name, last_name, year_of_birth, email, phone): + """ Принимает данные клиента, печатает в строку""" print(f'{name} {last_name}, {year_of_birth} года рождения, контакты: {email}, {phone}') diff --git a/homeworks/task03.py b/homeworks/task03.py index 1258c32..2ce3687 100644 --- a/homeworks/task03.py +++ b/homeworks/task03.py @@ -5,7 +5,7 @@ def my_func(a, b, c): - # todo описание функции + """ Принимает три числа, возвращает сумму наибольших двух аргументов """ if a > c and b > c: return a + b elif b > a and c > a: diff --git a/homeworks/task04.py b/homeworks/task04.py index 866a0f6..af8b620 100644 --- a/homeworks/task04.py +++ b/homeworks/task04.py @@ -10,7 +10,6 @@ def input_float(invite='Введите число : '): - # todo описание функции buf = input(invite) try: return float(buf) @@ -19,7 +18,6 @@ def input_float(invite='Введите число : '): def input_int(invite='Введите число : '): - # todo описание функции buf = input(invite) try: return int(buf) @@ -28,7 +26,7 @@ def input_int(invite='Введите число : '): def reverse_expo(x, neg_exp): - # todo описание функции + """ Вычисляет отцательную степень числа """ multi = x for _ in my_range(1, abs(neg_exp) - 1): multi *= x @@ -36,7 +34,7 @@ def reverse_expo(x, neg_exp): def my_range(start, end): - # todo описание функции + """ Реализация простого варианта функции range""" while start <= end: yield start start += 1 diff --git a/homeworks/task05.py b/homeworks/task05.py index 715bae0..269d82d 100644 --- a/homeworks/task05.py +++ b/homeworks/task05.py @@ -8,16 +8,16 @@ то вначале нужно добавить сумму этих чисел к полученной ранее сумме и после этого завершить программу. """ -sym_stop = 'q' -is_doing = True -summa = 0 +sym_stop = 'q' # символ остановки +is_doing = True # флаг продолжения расчетов +summa = 0 # сумма while is_doing: buf = input("Введите числа через пробел: ") - if buf[0] == sym_stop: + if buf[0] == sym_stop: # первый символ стоп break tokens = buf.split() for word in tokens: - if word == sym_stop: + if word == sym_stop: # проверяется наличие символа вместо числа is_doing = False break summa += float(word) diff --git a/homeworks/task06.py b/homeworks/task06.py index 034c830..8e5f181 100644 --- a/homeworks/task06.py +++ b/homeworks/task06.py @@ -11,15 +11,15 @@ def int_func(text): - # todo описание функции + """ Делаеет первую букву прописной """ return text[0].upper() + text[1:] buf = input("Введите слова через пробел: ") -tokens = buf.split() +tokens = buf.split() # преобразование в список idx = 0 buf = '' while idx < len(tokens): - buf += int_func(tokens[idx]) + ' ' + buf += int_func(tokens[idx]) + ' ' # преобразование в строку idx += 1 print(buf) diff --git a/homeworks/test.py b/homeworks/test.py deleted file mode 100644 index b5ae0b9..0000000 --- a/homeworks/test.py +++ /dev/null @@ -1,9 +0,0 @@ -def my_range(start, end): - while start <= end: - yield start - start += 1 - -print(list(my_range(1,3))) - - - From 7000f7b60fccfd21c9e208e287e7ca9b2b666230 Mon Sep 17 00:00:00 2001 From: Alex Klyanchin Date: Thu, 5 Nov 2020 09:17:45 +0300 Subject: [PATCH 5/5] les03 create dir --- homeworks/{ => les03}/task01.py | 0 homeworks/{ => les03}/task02.py | 0 homeworks/{ => les03}/task03.py | 0 homeworks/{ => les03}/task04.py | 0 homeworks/{ => les03}/task05.py | 0 homeworks/{ => les03}/task06.py | 0 6 files changed, 0 insertions(+), 0 deletions(-) rename homeworks/{ => les03}/task01.py (100%) rename homeworks/{ => les03}/task02.py (100%) rename homeworks/{ => les03}/task03.py (100%) rename homeworks/{ => les03}/task04.py (100%) rename homeworks/{ => les03}/task05.py (100%) rename homeworks/{ => les03}/task06.py (100%) diff --git a/homeworks/task01.py b/homeworks/les03/task01.py similarity index 100% rename from homeworks/task01.py rename to homeworks/les03/task01.py diff --git a/homeworks/task02.py b/homeworks/les03/task02.py similarity index 100% rename from homeworks/task02.py rename to homeworks/les03/task02.py diff --git a/homeworks/task03.py b/homeworks/les03/task03.py similarity index 100% rename from homeworks/task03.py rename to homeworks/les03/task03.py diff --git a/homeworks/task04.py b/homeworks/les03/task04.py similarity index 100% rename from homeworks/task04.py rename to homeworks/les03/task04.py diff --git a/homeworks/task05.py b/homeworks/les03/task05.py similarity index 100% rename from homeworks/task05.py rename to homeworks/les03/task05.py diff --git a/homeworks/task06.py b/homeworks/les03/task06.py similarity index 100% rename from homeworks/task06.py rename to homeworks/les03/task06.py