From c500971369fd4ddd0b30aee809c5e724b5d1a9c0 Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Sun, 19 Jul 2020 11:06:08 +0300 Subject: [PATCH 01/13] Init task-1 --- task-1.py | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 task-1.py diff --git a/task-1.py b/task-1.py new file mode 100644 index 0000000..fb2e675 --- /dev/null +++ b/task-1.py @@ -0,0 +1,6 @@ +""" +Задание: +Реализовать скрипт, в котором должна быть предусмотрена функция расчета заработной платы сотрудника. +В расчете необходимо использовать формулу: (выработка в часах*ставка в час) + премия. +Для выполнения расчета для конкретных значений необходимо запускать скрипт с параметрами. +""" \ No newline at end of file From 2363bd6a05b31687e54e688f33178be5558bff4a Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Sun, 19 Jul 2020 11:20:34 +0300 Subject: [PATCH 02/13] Comp task-1 --- task-1.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/task-1.py b/task-1.py index fb2e675..cf4ee00 100644 --- a/task-1.py +++ b/task-1.py @@ -3,4 +3,17 @@ Реализовать скрипт, в котором должна быть предусмотрена функция расчета заработной платы сотрудника. В расчете необходимо использовать формулу: (выработка в часах*ставка в час) + премия. Для выполнения расчета для конкретных значений необходимо запускать скрипт с параметрами. -""" \ No newline at end of file +""" + +import sys + +if len(sys.argv) == 4: + try: + salary = float(sys.argv[1]) * float(sys.argv[2]) + float(sys.argv[3]) + except: + print("Ошибка во входных данных") + else: + print("Формула расчёта: (выработка в часах*ставка в час) + премия\n" + + "Заработная плата сотрудника составила {}".format(salary)) +else: + print("Использование: python {} Выроботка_в_часах ставка_в_часах премия".format(sys.argv[0])) \ No newline at end of file From c3a8d023e1c499ca1b3376136bff36f5a125fc91 Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Sun, 19 Jul 2020 11:21:20 +0300 Subject: [PATCH 03/13] 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..1010b9c --- /dev/null +++ b/task-2.py @@ -0,0 +1,7 @@ +""" +Задание: +Представлен список чисел. Необходимо вывести элементы исходного списка, значения которых больше предыдущего элемента. +Подсказка: элементы, удовлетворяющие условию, оформить в виде списка. Для формирования списка использовать генератор. +Пример исходного списка: [300, 2, 12, 44, 1, 1, 4, 10, 7, 1, 78, 123, 55]. +Результат: [12, 44, 4, 10, 78, 123]. +""" \ No newline at end of file From 83807f75d50ad0e620a81cf93c216832dd712240 Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Sun, 19 Jul 2020 11:28:22 +0300 Subject: [PATCH 04/13] Comp task-2 --- task-2.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/task-2.py b/task-2.py index 1010b9c..308e6c0 100644 --- a/task-2.py +++ b/task-2.py @@ -4,4 +4,8 @@ Подсказка: элементы, удовлетворяющие условию, оформить в виде списка. Для формирования списка использовать генератор. Пример исходного списка: [300, 2, 12, 44, 1, 1, 4, 10, 7, 1, 78, 123, 55]. Результат: [12, 44, 4, 10, 78, 123]. -""" \ No newline at end of file +""" + +my_list = [300, 2, 12, 44, 1, 1, 4, 10, 7, 1, 78, 123, 55] + +print([my_list[i] for i in range(1, len(my_list)) if my_list[i] > my_list[i - 1]]) From 542546ee94ec4fc63111bbcde5a2d909ceae139d Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Sun, 19 Jul 2020 11:29:12 +0300 Subject: [PATCH 05/13] Init task-3 --- task-3.py | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 task-3.py diff --git a/task-3.py b/task-3.py new file mode 100644 index 0000000..a3220f1 --- /dev/null +++ b/task-3.py @@ -0,0 +1,5 @@ +""" +Задание: +Для чисел в пределах от 20 до 240 найти числа, кратные 20 или 21. Необходимо решить задание в одну строку. +Подсказка: использовать функцию range() и генератор. +""" \ No newline at end of file From 7bb87fa8381f8910d4fa0525713e483d4b5770ee Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Sun, 19 Jul 2020 11:32:34 +0300 Subject: [PATCH 06/13] Comp task-3 --- task-3.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/task-3.py b/task-3.py index a3220f1..6c3d43e 100644 --- a/task-3.py +++ b/task-3.py @@ -2,4 +2,6 @@ Задание: Для чисел в пределах от 20 до 240 найти числа, кратные 20 или 21. Необходимо решить задание в одну строку. Подсказка: использовать функцию range() и генератор. -""" \ No newline at end of file +""" + +print([i for i in range(20, 240) if not i % 20 or not i % 21]) From 517bab34ec1cafe8deba2e70e099ae1d9bd3e134 Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Sun, 19 Jul 2020 13:02:11 +0300 Subject: [PATCH 07/13] Init task-3 --- 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..bf214cb --- /dev/null +++ b/task-4.py @@ -0,0 +1,8 @@ +""" +Задание: +Представлен список чисел. Определить элементы списка, не имеющие повторений. +Сформировать итоговый массив чисел, соответствующих требованию. +Элементы вывести в порядке их следования в исходном списке. Для выполнения задания обязательно использовать генератор. +Пример исходного списка: [2, 2, 2, 7, 23, 1, 44, 44, 3, 2, 10, 7, 4, 11]. +Результат: [23, 1, 3, 10, 4, 11] +""" From 0917ad20add944ea3aade25a715c5f51c6f84e5e Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Sun, 19 Jul 2020 13:02:27 +0300 Subject: [PATCH 08/13] Comp task-4 --- task-4.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/task-4.py b/task-4.py index bf214cb..04f436b 100644 --- a/task-4.py +++ b/task-4.py @@ -6,3 +6,7 @@ Пример исходного списка: [2, 2, 2, 7, 23, 1, 44, 44, 3, 2, 10, 7, 4, 11]. Результат: [23, 1, 3, 10, 4, 11] """ + +source_list = [2, 2, 2, 7, 23, 1, 44, 44, 3, 2, 10, 7, 4, 11] + +print([i for i in source_list if source_list.count(i) == 1]) \ No newline at end of file From 3c6582b961ba67029b4df17287e244aa83b0f109 Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Sun, 19 Jul 2020 13:09:01 +0300 Subject: [PATCH 09/13] Init task-5 --- task-5.py | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 task-5.py diff --git a/task-5.py b/task-5.py new file mode 100644 index 0000000..cdeed2c --- /dev/null +++ b/task-5.py @@ -0,0 +1,7 @@ +""" +Задание: +Реализовать формирование списка, используя функцию range() и возможности генератора. +В список должны войти четные числа от 100 до 1000 (включая границы). +Необходимо получить результат вычисления произведения всех элементов списка. +Подсказка: использовать функцию reduce(). +""" From d530e5059a2cfd45da558aa2eab8e656e043330f Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Sun, 19 Jul 2020 13:10:16 +0300 Subject: [PATCH 10/13] Comp task-5 --- task-5.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/task-5.py b/task-5.py index cdeed2c..90f17df 100644 --- a/task-5.py +++ b/task-5.py @@ -5,3 +5,10 @@ Необходимо получить результат вычисления произведения всех элементов списка. Подсказка: использовать функцию reduce(). """ + +import functools as ft + +print(ft.reduce( + lambda prev, curr: prev * curr, + [i for i in range(100, 1000) if not i % 2] +)) \ No newline at end of file From 1c08bf4c7b2caab490d3506a80ea290d177908b5 Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Sun, 19 Jul 2020 13:11:51 +0300 Subject: [PATCH 11/13] Init task-6 --- task-6.py | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 task-6.py diff --git a/task-6.py b/task-6.py new file mode 100644 index 0000000..988dc40 --- /dev/null +++ b/task-6.py @@ -0,0 +1,10 @@ +""" +Задание: +Реализовать два небольших скрипта: +а) итератор, генерирующий целые числа, начиная с указанного, +б) итератор, повторяющий элементы некоторого списка, определенного заранее. +Подсказка: использовать функцию count() и cycle() модуля itertools. Обратите внимание, +что создаваемый цикл не должен быть бесконечным. Необходимо предусмотреть условие его завершения. +Например, в первом задании выводим целые числа, начиная с 3, а при достижении числа 10 завершаем цикл. +Во втором также необходимо предусмотреть условие, при котором повторение элементов списка будет прекращено. +""" \ No newline at end of file From d8e4558c460068f710bb3dc3ff0d56bbe8fb4a28 Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Sun, 19 Jul 2020 13:19:01 +0300 Subject: [PATCH 12/13] add comment task-5 --- task-5.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/task-5.py b/task-5.py index 90f17df..2851197 100644 --- a/task-5.py +++ b/task-5.py @@ -6,9 +6,14 @@ Подсказка: использовать функцию reduce(). """ +""" +Комментарий: +Прошу вас уточнить, допустим ли такой стиль оформления вызов функций? +""" + import functools as ft print(ft.reduce( lambda prev, curr: prev * curr, [i for i in range(100, 1000) if not i % 2] -)) \ No newline at end of file +)) From 8f6c990665fc943fce206873dd3a63e48991a4be Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Sun, 19 Jul 2020 13:19:20 +0300 Subject: [PATCH 13/13] init task-7 --- task-7.py | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 task-7.py diff --git a/task-7.py b/task-7.py new file mode 100644 index 0000000..5884a7f --- /dev/null +++ b/task-7.py @@ -0,0 +1,8 @@ +""" +Задание: +Реализовать генератор с помощью функции с ключевым словом yield, создающим очередное значение. +При вызове функции должен создаваться объект-генератор. Функция должна вызываться следующим образом: for el in fact(n). +Функция отвечает за получение факториала числа, +а в цикле необходимо выводить только первые n чисел, начиная с 1! и до n!. +Подсказка: факториал числа n — произведение чисел от 1 до n. Например, факториал четырёх 4! = 1 * 2 * 3 * 4 = 24. +""" \ No newline at end of file