From b1454db927ef63dfa61c726b19d362bb2d424bfa Mon Sep 17 00:00:00 2001 From: gitddpsm <37410949+gitddpsm@users.noreply.github.com> Date: Sat, 12 Dec 2020 00:39:55 +0300 Subject: [PATCH 01/10] webinar MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit конь`спект занятия --- class_work/lection_3.py | 36 +++++++++++++ class_work/lection_3_2.py | 103 ++++++++++++++++++++++++++++++++++++++ lesson_3/test.txt.3.txt | 0 test.txt.3.txt | 0 4 files changed, 139 insertions(+) create mode 100644 class_work/lection_3.py create mode 100644 class_work/lection_3_2.py delete mode 100644 lesson_3/test.txt.3.txt delete mode 100644 test.txt.3.txt diff --git a/class_work/lection_3.py b/class_work/lection_3.py new file mode 100644 index 0000000..003d669 --- /dev/null +++ b/class_work/lection_3.py @@ -0,0 +1,36 @@ +''' DRY ''' +''' +''' + +def is_some(number: int, count: int) -> bool: + '''Функция возвращает результат проверки является ли число n разрядным + :number: int число + :count: int количество разрядов + :return: bool: + ''' + return 1 <= (number // 10 ** (count -1)) < 10 + +a: bool = is_some(123, 3) #аннотация +b: float = is_some(123, 4) #аннотация не влияет на выполнение +c = is_some(12, 5) +d = is_some(124523446, 6) + +print(a, b, c, d) +print(any((a, b, c, d))) +print(all((a, b, c, d))) +# + +def some(number): + # как использовать Степень делимого для определения условия ? + ''' + >>> some(34235253) + NO + >>> some(53) + NO + >>> some(353) + YES + ''' + answer = ('NO','YES') + print(answer[1 <= (number // 100) < 10]) + +some(353) \ No newline at end of file diff --git a/class_work/lection_3_2.py b/class_work/lection_3_2.py new file mode 100644 index 0000000..cbda742 --- /dev/null +++ b/class_work/lection_3_2.py @@ -0,0 +1,103 @@ + +def is_some(number: int, count: int) -> bool: + '''Функция возвращает результат проверки является ли число n разрядным + :number: int число + :count: int количество разрядов + :return: bool: + ''' + return 1 <= (number // 10 ** (count -1)) < 10 + +b = {24323, 5} + +print(is_some(*b)) + +a = { + 'count': 5, + 'number': 234, +} + +print(is_some(**a)) + +print(is_some(number=5,count=235)) +print(is_some(count=2256,number=5)) + +''' +zip +map +''' + +def dd_map(func, iter_obj): + '''Map this shit''' + for item in iter_obj: + yield func(item) + +a = dd_map(str, [1, 2, 3, 4, 5]) + +print(a) + +def dd_sum(*stuff): + result = 0 + for n in stuff: + result += n + return result + +print(dd_sum(1, 2, 3, 4,5)) + +def dd_sum_2(*stuff, factor=1): + print('factor ', factor) + result = 0 + for n in stuff: + result += n + return result * factor + +print(dd_sum_2(1, 2, 3, 4, 5, factor=5)) + +def dd_sum_3(*stuff, **kwargs): + print('kwargs ', kwargs) + print(stuff) + result = 0 + for n in stuff: + result += n + return result + +print(dd_sum_3(1, 2, 3, 4, 5, factor=562)) + +a = 1 +b = 10 + +c = [] + +for n in range(a, b+1): + c.append(n**2) +print(c) + +d = [n**2 for n in range(a, b+1)] +print(d) + +list_a = [1, 2, 3, 4, 5] +list_b = [100, 200, 300, 400, 500] + +list_combinations = [(n_a, n_b) for n_a in list_a for n_b in list_b] + +print(list_combinations) +print(list_combinations[2]) + +#result = {1: 1 ** 2, 2: 2**2} +list_result = {n: n ** 2 for n in list_a} +print(list_result) + +list_result = {n: n ** 2 for n in list_a if n & 1} +print(list_result) + +list_result = {n: n ** 2 for n in list_a if not n & 1} +print(list_result) + +list_result = tuple( n ** 2 for n in list_a if n & 1) +print(list_result) + +list_result = tuple( n ** 2 for n in list_a if not n & 1) +print(list_result) + +'''result = [] +for n_a in list_a: + for n_b in list_b:''' diff --git a/lesson_3/test.txt.3.txt b/lesson_3/test.txt.3.txt deleted file mode 100644 index e69de29..0000000 diff --git a/test.txt.3.txt b/test.txt.3.txt deleted file mode 100644 index e69de29..0000000 From 93f5feffa1eff700f89955b7474099d7d30817ed Mon Sep 17 00:00:00 2001 From: gitddpsm <37410949+gitddpsm@users.noreply.github.com> Date: Wed, 16 Dec 2020 21:09:20 +0300 Subject: [PATCH 02/10] create task files --- les3_task1.py | 3 +++ les3_task2.py | 3 +++ les3_task3.py | 3 +++ les3_task4.py | 4 ++++ les3_task5.py | 3 +++ les3_task6.py | 4 ++++ practice.py | 10 ++++++++++ tempCodeRunnerFile.py | 3 +++ 8 files changed, 33 insertions(+) create mode 100644 les3_task1.py create mode 100644 les3_task2.py create mode 100644 les3_task3.py create mode 100644 les3_task4.py create mode 100644 les3_task5.py create mode 100644 les3_task6.py create mode 100644 practice.py create mode 100644 tempCodeRunnerFile.py diff --git a/les3_task1.py b/les3_task1.py new file mode 100644 index 0000000..8d767a1 --- /dev/null +++ b/les3_task1.py @@ -0,0 +1,3 @@ +'''1) Реализовать функцию, принимающую два числа (позиционные аргументы) и выполняющую их деление. Числа запрашивать у пользователя, предусмотреть обработку ситуации деления на ноль.''' + +input('ok _>') diff --git a/les3_task2.py b/les3_task2.py new file mode 100644 index 0000000..a55a230 --- /dev/null +++ b/les3_task2.py @@ -0,0 +1,3 @@ +'''2) Реализовать функцию, принимающую несколько параметров, описывающих данные пользователя: имя, фамилия, год рождения, город проживания, email, телефон. Функция должна принимать параметры как именованные аргументы. Реализовать вывод данных о пользователе одной строкой.''' + +input('ok _>') diff --git a/les3_task3.py b/les3_task3.py new file mode 100644 index 0000000..ec8b410 --- /dev/null +++ b/les3_task3.py @@ -0,0 +1,3 @@ +'''3) Реализовать функцию my_func(), которая принимает три позиционных аргумента, и возвращает сумму наибольших двух аргументов.''' + +input('ok _>') diff --git a/les3_task4.py b/les3_task4.py new file mode 100644 index 0000000..d642e35 --- /dev/null +++ b/les3_task4.py @@ -0,0 +1,4 @@ +'''4) Программа принимает действительное положительное число x и целое отрицательное число y. Необходимо выполнить возведение числа x в степень y. Задание необходимо реализовать в виде функции my_func(x, y). При решении задания необходимо обойтись без встроенной функции возведения числа в степень. +Подсказка: попробуйте решить задачу двумя способами. Первый — возведение в степень с помощью оператора **. Второй — более сложная реализация без оператора **, предусматривающая использование цикла.''' + +input('ok _>') diff --git a/les3_task5.py b/les3_task5.py new file mode 100644 index 0000000..6e216da --- /dev/null +++ b/les3_task5.py @@ -0,0 +1,3 @@ +'''5) Программа запрашивает у пользователя строку чисел, разделенных пробелом. При нажатии Enter должна выводиться сумма чисел. Пользователь может продолжить ввод чисел, разделенных пробелом и снова нажать Enter. Сумма вновь введенных чисел будет добавляться к уже подсчитанной сумме. Но если вместо числа вводится специальный символ, выполнение программы завершается. Если специальный символ введен после нескольких чисел, то вначале нужно добавить сумму этих чисел к полученной ранее сумме и после этого завершить программу.''' + +input('ok _>') diff --git a/les3_task6.py b/les3_task6.py new file mode 100644 index 0000000..cdc1f2e --- /dev/null +++ b/les3_task6.py @@ -0,0 +1,4 @@ +'''6) Реализовать функцию int_func(), принимающую слово из маленьких латинских букв и возвращающую его же, но с прописной первой буквой. Например, print(int_func(‘text’)) -> Text. +Продолжить работу над заданием. В программу должна попадать строка из слов, разделенных пробелом. Каждое слово состоит из латинских букв в нижнем регистре. Сделать вывод исходной строки, но каждое слово должно начинаться с заглавной буквы. Необходимо использовать написанную ранее функцию int_func().''' + +input('ok _>') diff --git a/practice.py b/practice.py new file mode 100644 index 0000000..636ee53 --- /dev/null +++ b/practice.py @@ -0,0 +1,10 @@ +1) Реализовать функцию, принимающую два числа (позиционные аргументы) и выполняющую их деление. Числа запрашивать у пользователя, предусмотреть обработку ситуации деления на ноль. +2) Реализовать функцию, принимающую несколько параметров, описывающих данные пользователя: имя, фамилия, год рождения, город проживания, email, телефон. Функция должна принимать параметры как именованные аргументы. Реализовать вывод данных о пользователе одной строкой. +3) Реализовать функцию my_func(), которая принимает три позиционных аргумента, и возвращает сумму наибольших двух аргументов. +4) Программа принимает действительное положительное число x и целое отрицательное число y. Необходимо выполнить возведение числа x в степень y. Задание необходимо реализовать в виде функции my_func(x, y). При решении задания необходимо обойтись без встроенной функции возведения числа в степень. +5) Подсказка: попробуйте решить задачу двумя способами. Первый — возведение в степень с помощью оператора **. Второй — более сложная реализация без оператора **, предусматривающая использование цикла. +6) Программа запрашивает у пользователя строку чисел, разделенных пробелом. При нажатии Enter должна выводиться сумма чисел. Пользователь может продолжить ввод чисел, разделенных пробелом и снова нажать Enter. Сумма вновь введенных чисел будет добавляться к уже подсчитанной сумме. Но если вместо числа вводится специальный символ, выполнение программы завершается. Если специальный символ введен после нескольких чисел, то вначале нужно добавить сумму этих чисел к полученной ранее сумме и после этого завершить программу. +Реализовать функцию int_func(), принимающую слово из маленьких латинских букв и возвращающую его же, но с прописной первой буквой. Например, print(int_func(‘text’)) -> Text. +Продолжить работу над заданием. В программу должна попадать строка из слов, разделенных пробелом. Каждое слово состоит из латинских букв в нижнем регистре. Сделать вывод исходной строки, но каждое слово должно начинаться с заглавной буквы. Необходимо использовать написанную ранее функцию int_func(). + +input('ok _>') diff --git a/tempCodeRunnerFile.py b/tempCodeRunnerFile.py new file mode 100644 index 0000000..cfdeddc --- /dev/null +++ b/tempCodeRunnerFile.py @@ -0,0 +1,3 @@ + +print('ok _>') +input() From db409a78f496cce54a3bd289febe182e0a0bc990 Mon Sep 17 00:00:00 2001 From: gitddpsm <37410949+gitddpsm@users.noreply.github.com> Date: Wed, 16 Dec 2020 22:31:27 +0300 Subject: [PATCH 03/10] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=BE=20=D1=80=D0=B5=D1=88=D0=B5=D0=BD=D0=B8=D0=B5?= =?UTF-8?q?=20task1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- les3_task1.py | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/les3_task1.py b/les3_task1.py index 8d767a1..5983ace 100644 --- a/les3_task1.py +++ b/les3_task1.py @@ -1,3 +1,25 @@ '''1) Реализовать функцию, принимающую два числа (позиционные аргументы) и выполняющую их деление. Числа запрашивать у пользователя, предусмотреть обработку ситуации деления на ноль.''' -input('ok _>') +def divider(a: int, b:int): # -> int: + try: + result = a // b + except ZeroDivisionError: + print(f' Ошибка деления на 0 ') + result = str('Nan') + return result + +def user_input(): + while True: + user_input = input('iput int:\n>') + if user_input.isdigit(): + user_input = int(user_input) + return user_input + elif user_input == 'x': + print('enter canceled\n 0 set by default') + return 0 + else: + print('Not a number, type "x" for cancel:') + +output_divider = divider(user_input(), user_input()) + +input(f'Результат = {output_divider}\n>ok') From 6d63d83ceb6d33a9e57a8ab0fc9e819563c4fb1a Mon Sep 17 00:00:00 2001 From: gitddpsm <37410949+gitddpsm@users.noreply.github.com> Date: Fri, 18 Dec 2020 01:15:08 +0300 Subject: [PATCH 04/10] update homework --- .vscode/.ropeproject/config.py | 114 +++++++++++++++++++++++++++++++++ les3_task2.py | 6 +- les3_task3.py | 6 +- practice.py | 10 --- tempCodeRunnerFile.py | 3 - 5 files changed, 124 insertions(+), 15 deletions(-) create mode 100644 .vscode/.ropeproject/config.py delete mode 100644 practice.py delete mode 100644 tempCodeRunnerFile.py diff --git a/.vscode/.ropeproject/config.py b/.vscode/.ropeproject/config.py new file mode 100644 index 0000000..dee2d1a --- /dev/null +++ b/.vscode/.ropeproject/config.py @@ -0,0 +1,114 @@ +# The default ``config.py`` +# flake8: noqa + + +def set_prefs(prefs): + """This function is called before opening the project""" + + # Specify which files and folders to ignore in the project. + # Changes to ignored resources are not added to the history and + # VCSs. Also they are not returned in `Project.get_files()`. + # Note that ``?`` and ``*`` match all characters but slashes. + # '*.pyc': matches 'test.pyc' and 'pkg/test.pyc' + # 'mod*.pyc': matches 'test/mod1.pyc' but not 'mod/1.pyc' + # '.svn': matches 'pkg/.svn' and all of its children + # 'build/*.o': matches 'build/lib.o' but not 'build/sub/lib.o' + # 'build//*.o': matches 'build/lib.o' and 'build/sub/lib.o' + prefs['ignored_resources'] = ['*.pyc', '*~', '.ropeproject', + '.hg', '.svn', '_svn', '.git', '.tox'] + + # Specifies which files should be considered python files. It is + # useful when you have scripts inside your project. Only files + # ending with ``.py`` are considered to be python files by + # default. + # prefs['python_files'] = ['*.py'] + + # Custom source folders: By default rope searches the project + # for finding source folders (folders that should be searched + # for finding modules). You can add paths to that list. Note + # that rope guesses project source folders correctly most of the + # time; use this if you have any problems. + # The folders should be relative to project root and use '/' for + # separating folders regardless of the platform rope is running on. + # 'src/my_source_folder' for instance. + # prefs.add('source_folders', 'src') + + # You can extend python path for looking up modules + # prefs.add('python_path', '~/python/') + + # Should rope save object information or not. + prefs['save_objectdb'] = True + prefs['compress_objectdb'] = False + + # If `True`, rope analyzes each module when it is being saved. + prefs['automatic_soa'] = True + # The depth of calls to follow in static object analysis + prefs['soa_followed_calls'] = 0 + + # If `False` when running modules or unit tests "dynamic object + # analysis" is turned off. This makes them much faster. + prefs['perform_doa'] = True + + # Rope can check the validity of its object DB when running. + prefs['validate_objectdb'] = True + + # How many undos to hold? + prefs['max_history_items'] = 32 + + # Shows whether to save history across sessions. + prefs['save_history'] = True + prefs['compress_history'] = False + + # Set the number spaces used for indenting. According to + # :PEP:`8`, it is best to use 4 spaces. Since most of rope's + # unit-tests use 4 spaces it is more reliable, too. + prefs['indent_size'] = 4 + + # Builtin and c-extension modules that are allowed to be imported + # and inspected by rope. + prefs['extension_modules'] = [] + + # Add all standard c-extensions to extension_modules list. + prefs['import_dynload_stdmods'] = True + + # If `True` modules with syntax errors are considered to be empty. + # The default value is `False`; When `False` syntax errors raise + # `rope.base.exceptions.ModuleSyntaxError` exception. + prefs['ignore_syntax_errors'] = False + + # If `True`, rope ignores unresolvable imports. Otherwise, they + # appear in the importing namespace. + prefs['ignore_bad_imports'] = False + + # If `True`, rope will insert new module imports as + # `from import ` by default. + prefs['prefer_module_from_imports'] = False + + # If `True`, rope will transform a comma list of imports into + # multiple separate import statements when organizing + # imports. + prefs['split_imports'] = False + + # If `True`, rope will remove all top-level import statements and + # reinsert them at the top of the module when making changes. + prefs['pull_imports_to_top'] = True + + # If `True`, rope will sort imports alphabetically by module name instead + # of alphabetically by import statement, with from imports after normal + # imports. + prefs['sort_imports_alphabetically'] = False + + # Location of implementation of + # rope.base.oi.type_hinting.interfaces.ITypeHintingFactory In general + # case, you don't have to change this value, unless you're an rope expert. + # Change this value to inject you own implementations of interfaces + # listed in module rope.base.oi.type_hinting.providers.interfaces + # For example, you can add you own providers for Django Models, or disable + # the search type-hinting in a class hierarchy, etc. + prefs['type_hinting_factory'] = ( + 'rope.base.oi.type_hinting.factory.default_type_hinting_factory') + + +def project_opened(project): + """This function is called after opening the project""" + # Do whatever you like here! diff --git a/les3_task2.py b/les3_task2.py index a55a230..db124cf 100644 --- a/les3_task2.py +++ b/les3_task2.py @@ -1,3 +1,7 @@ '''2) Реализовать функцию, принимающую несколько параметров, описывающих данные пользователя: имя, фамилия, год рождения, город проживания, email, телефон. Функция должна принимать параметры как именованные аргументы. Реализовать вывод данных о пользователе одной строкой.''' -input('ok _>') +def input_to_string(a, b, c, d, e, f): + print(f'Пользователь: {a} {b} {c}г.р., г.{d}, email: {e}, телефон: {f}') + +input_to_string(e = 'pirog.v@ya.ru', a = 'Василий', b = 'Пирожков', c = '1984', d = 'Бобруйск', f = '88005678432') + diff --git a/les3_task3.py b/les3_task3.py index ec8b410..8b48e8e 100644 --- a/les3_task3.py +++ b/les3_task3.py @@ -1,3 +1,7 @@ '''3) Реализовать функцию my_func(), которая принимает три позиционных аргумента, и возвращает сумму наибольших двух аргументов.''' -input('ok _>') +def my_func(a,b,c): + my_list = sorted([a, b, c]) + print(sum(my_list[-2:])) + +my_func(5, 1 ,2) diff --git a/practice.py b/practice.py deleted file mode 100644 index 636ee53..0000000 --- a/practice.py +++ /dev/null @@ -1,10 +0,0 @@ -1) Реализовать функцию, принимающую два числа (позиционные аргументы) и выполняющую их деление. Числа запрашивать у пользователя, предусмотреть обработку ситуации деления на ноль. -2) Реализовать функцию, принимающую несколько параметров, описывающих данные пользователя: имя, фамилия, год рождения, город проживания, email, телефон. Функция должна принимать параметры как именованные аргументы. Реализовать вывод данных о пользователе одной строкой. -3) Реализовать функцию my_func(), которая принимает три позиционных аргумента, и возвращает сумму наибольших двух аргументов. -4) Программа принимает действительное положительное число x и целое отрицательное число y. Необходимо выполнить возведение числа x в степень y. Задание необходимо реализовать в виде функции my_func(x, y). При решении задания необходимо обойтись без встроенной функции возведения числа в степень. -5) Подсказка: попробуйте решить задачу двумя способами. Первый — возведение в степень с помощью оператора **. Второй — более сложная реализация без оператора **, предусматривающая использование цикла. -6) Программа запрашивает у пользователя строку чисел, разделенных пробелом. При нажатии Enter должна выводиться сумма чисел. Пользователь может продолжить ввод чисел, разделенных пробелом и снова нажать Enter. Сумма вновь введенных чисел будет добавляться к уже подсчитанной сумме. Но если вместо числа вводится специальный символ, выполнение программы завершается. Если специальный символ введен после нескольких чисел, то вначале нужно добавить сумму этих чисел к полученной ранее сумме и после этого завершить программу. -Реализовать функцию int_func(), принимающую слово из маленьких латинских букв и возвращающую его же, но с прописной первой буквой. Например, print(int_func(‘text’)) -> Text. -Продолжить работу над заданием. В программу должна попадать строка из слов, разделенных пробелом. Каждое слово состоит из латинских букв в нижнем регистре. Сделать вывод исходной строки, но каждое слово должно начинаться с заглавной буквы. Необходимо использовать написанную ранее функцию int_func(). - -input('ok _>') diff --git a/tempCodeRunnerFile.py b/tempCodeRunnerFile.py deleted file mode 100644 index cfdeddc..0000000 --- a/tempCodeRunnerFile.py +++ /dev/null @@ -1,3 +0,0 @@ - -print('ok _>') -input() From 15589bddfd39820c1f163316c6b6ef1c85c83b17 Mon Sep 17 00:00:00 2001 From: gitddpsm <37410949+gitddpsm@users.noreply.github.com> Date: Fri, 18 Dec 2020 14:25:41 +0300 Subject: [PATCH 05/10] task 4 --- les3_task4.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/les3_task4.py b/les3_task4.py index d642e35..8cf3738 100644 --- a/les3_task4.py +++ b/les3_task4.py @@ -1,4 +1,21 @@ '''4) Программа принимает действительное положительное число x и целое отрицательное число y. Необходимо выполнить возведение числа x в степень y. Задание необходимо реализовать в виде функции my_func(x, y). При решении задания необходимо обойтись без встроенной функции возведения числа в степень. Подсказка: попробуйте решить задачу двумя способами. Первый — возведение в степень с помощью оператора **. Второй — более сложная реализация без оператора **, предусматривающая использование цикла.''' -input('ok _>') +def my_func(x, y): + outout = x ** y + return outout + +print(my_func(6, 2)) + +def fastExp(b, n): + def even(n): #проверка четности + if n%2 == 0: + return 1 + return 0 + if n == 0: + return 1 + if even(n): + return fastExp(b, n/2)**2 + return b*fastExp(b, n-1) + +print(fastExp(0, 0 )) From 1b592ed6165793a875abfe4594548a42be9b1057 Mon Sep 17 00:00:00 2001 From: gitddpsm <37410949+gitddpsm@users.noreply.github.com> Date: Fri, 18 Dec 2020 15:38:29 +0300 Subject: [PATCH 06/10] task 4 update --- les3_task4.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/les3_task4.py b/les3_task4.py index 8cf3738..5f3fb7a 100644 --- a/les3_task4.py +++ b/les3_task4.py @@ -5,7 +5,7 @@ def my_func(x, y): outout = x ** y return outout -print(my_func(6, 2)) +print(my_func(2, -2)) def fastExp(b, n): def even(n): #проверка четности @@ -18,4 +18,16 @@ def even(n): #проверка четности return fastExp(b, n/2)**2 return b*fastExp(b, n-1) -print(fastExp(0, 0 )) +print(fastExp(2, 0)) + +def negative_exp(x, y): + result = 1 + for el in range(abs(y)): + result *= x + if y >= 0: + return result + else: + return 1 / result + +print(negative_exp(2, -2)) + From ef9220387ab247add46108b2db5442a727be0c64 Mon Sep 17 00:00:00 2001 From: gitddpsm <37410949+gitddpsm@users.noreply.github.com> Date: Mon, 21 Dec 2020 13:04:56 +0300 Subject: [PATCH 07/10] upd task3 task5 --- les3_task3.py | 5 +++-- les3_task5.py | 31 +++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/les3_task3.py b/les3_task3.py index 8b48e8e..c33097c 100644 --- a/les3_task3.py +++ b/les3_task3.py @@ -2,6 +2,7 @@ def my_func(a,b,c): my_list = sorted([a, b, c]) - print(sum(my_list[-2:])) + #print(sum(my_list[-2:])) + return sum(my_list[-2:]) -my_func(5, 1 ,2) +print(my_func(5, 1 ,2)) diff --git a/les3_task5.py b/les3_task5.py index 6e216da..c471759 100644 --- a/les3_task5.py +++ b/les3_task5.py @@ -1,3 +1,34 @@ '''5) Программа запрашивает у пользователя строку чисел, разделенных пробелом. При нажатии Enter должна выводиться сумма чисел. Пользователь может продолжить ввод чисел, разделенных пробелом и снова нажать Enter. Сумма вновь введенных чисел будет добавляться к уже подсчитанной сумме. Но если вместо числа вводится специальный символ, выполнение программы завершается. Если специальный символ введен после нескольких чисел, то вначале нужно добавить сумму этих чисел к полученной ранее сумме и после этого завершить программу.''' +import re # regular expressions module + +def numbers_from_string(user_string = ""): + '''Returns numbers found in string to list + user_string: str''' + out = re.findall(r'\d+', user_string) + return out + +def summ_func(num_list): + '''Return summ of elements in list + num_list: list''' + out = 0 + for el in num_list: + out += int(el) + return out + +def exit_flag_fc(user_string, spc_char = 'x'): + '''Returns -1 if spc_char not found in string , or index of result''' + flag = user_string.find(spc_char) + return flag + +exit_flag = -1 +final_summ = 0 + +while exit_flag == -1: + user_string = input("enter nums useing space, and/or 'x' to exit)") + tmp_list = numbers_from_string(user_string) + final_summ = final_summ + summ_func(tmp_list) + print(f'final_summ {final_summ}') + exit_flag = exit_flag_fc(user_string) + input('ok _>') From 27ac3abf251d3051d34aeb23a8c7d62b12382eb6 Mon Sep 17 00:00:00 2001 From: gitddpsm <37410949+gitddpsm@users.noreply.github.com> Date: Wed, 23 Dec 2020 12:33:27 +0300 Subject: [PATCH 08/10] upd task6 upd task6 --- les3_task6.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/les3_task6.py b/les3_task6.py index cdc1f2e..da05796 100644 --- a/les3_task6.py +++ b/les3_task6.py @@ -1,4 +1,16 @@ '''6) Реализовать функцию int_func(), принимающую слово из маленьких латинских букв и возвращающую его же, но с прописной первой буквой. Например, print(int_func(‘text’)) -> Text. Продолжить работу над заданием. В программу должна попадать строка из слов, разделенных пробелом. Каждое слово состоит из латинских букв в нижнем регистре. Сделать вывод исходной строки, но каждое слово должно начинаться с заглавной буквы. Необходимо использовать написанную ранее функцию int_func().''' -input('ok _>') +def int_func(word): + return word.title() + +def mass_titles(words_string): + tmp_list = words_string.split() + out_str = '' + for el in tmp_list: + out_str = (f'{out_str} {int_func(el)}') + return out_str + +print(mass_titles('sdjfh sdkjhfkj dskjhf eqwrio qwp')) + +input('ok >') \ No newline at end of file From 88abb2878526f7ed6fd90ed6d5a7415693bcde2d Mon Sep 17 00:00:00 2001 From: gitddpsm <37410949+gitddpsm@users.noreply.github.com> Date: Thu, 24 Dec 2020 00:40:25 +0300 Subject: [PATCH 09/10] Update les3_task6.py --- les3_task6.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/les3_task6.py b/les3_task6.py index da05796..14f5b5e 100644 --- a/les3_task6.py +++ b/les3_task6.py @@ -11,6 +11,17 @@ def mass_titles(words_string): out_str = (f'{out_str} {int_func(el)}') return out_str + print(mass_titles('sdjfh sdkjhfkj dskjhf eqwrio qwp')) -input('ok >') \ No newline at end of file + +def int_func_exampl(string: str): + return ''.join((string[0].upper(), string[1:])) if string else string + +def user_temp(string: str): + return ''.join(map(int_func_exampl, string.split(''))) + + +assert int_func_exampl('') == '', "int_func('')" + +input('ok >') From 4b3ea3bb288d2f4543ec5195674ce6a8a3ddd6c5 Mon Sep 17 00:00:00 2001 From: gitddpsm <37410949+gitddpsm@users.noreply.github.com> Date: Thu, 24 Dec 2020 13:32:11 +0300 Subject: [PATCH 10/10] upd task6 --- les3_task6.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/les3_task6.py b/les3_task6.py index 14f5b5e..9bccc62 100644 --- a/les3_task6.py +++ b/les3_task6.py @@ -19,9 +19,14 @@ def int_func_exampl(string: str): return ''.join((string[0].upper(), string[1:])) if string else string def user_temp(string: str): - return ''.join(map(int_func_exampl, string.split(''))) + return ' '.join(map(int_func_exampl, string.split(' '))) +assert int_func_exampl('рокетлаунчер') == 'Рокетлаунчер', "int_func('рокетлаунчер')" +assert int_func_exampl('кваддамейдж') == 'Кваддамейдж', "int_func('кваддамейдж')" assert int_func_exampl('') == '', "int_func('')" -input('ok >') +print(user_temp('бабка переходит дорогу')) +#assert user_temp('бабка переходит дорогу') == 'Бабка Переходит Дорогу', "user_temp('бабка переходит дорогу')" + +#input('ok >')