From 99fc8eca1351a07e03b68867f19ce34c6bb65745 Mon Sep 17 00:00:00 2001 From: alardis Date: Thu, 17 Oct 2019 23:38:44 +0300 Subject: [PATCH 01/10] =?UTF-8?q?=D0=A1=D0=BE=D0=B7=D0=B4=D0=B0=D0=BB?= =?UTF-8?q?=D0=B8=20=D1=84=D0=B0=D0=B9=D0=BB=D1=8B=20=D0=B4=D0=BB=D1=8F=20?= =?UTF-8?q?=D1=87=D0=B5=D1=82=D0=B2=D0=B5=D1=80=D1=82=D0=BE=D0=B9=20=D0=B4?= =?UTF-8?q?=D0=BE=D0=BC=D0=B0=D1=88=D0=BA=D0=B8.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson_4/hw01_4.py | 0 lesson_4/hw02_4.py | 0 lesson_4/hw03_4.py | 0 lesson_4/hw04_4.py | 0 lesson_4/hw05_4.py | 0 lesson_4/hw06_4.py | 0 lesson_4/hw07_4.py | 0 7 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 lesson_4/hw01_4.py create mode 100644 lesson_4/hw02_4.py create mode 100644 lesson_4/hw03_4.py create mode 100644 lesson_4/hw04_4.py create mode 100644 lesson_4/hw05_4.py create mode 100644 lesson_4/hw06_4.py create mode 100644 lesson_4/hw07_4.py diff --git a/lesson_4/hw01_4.py b/lesson_4/hw01_4.py new file mode 100644 index 0000000..e69de29 diff --git a/lesson_4/hw02_4.py b/lesson_4/hw02_4.py new file mode 100644 index 0000000..e69de29 diff --git a/lesson_4/hw03_4.py b/lesson_4/hw03_4.py new file mode 100644 index 0000000..e69de29 diff --git a/lesson_4/hw04_4.py b/lesson_4/hw04_4.py new file mode 100644 index 0000000..e69de29 diff --git a/lesson_4/hw05_4.py b/lesson_4/hw05_4.py new file mode 100644 index 0000000..e69de29 diff --git a/lesson_4/hw06_4.py b/lesson_4/hw06_4.py new file mode 100644 index 0000000..e69de29 diff --git a/lesson_4/hw07_4.py b/lesson_4/hw07_4.py new file mode 100644 index 0000000..e69de29 From d5caf4e1d20cc4b231e55a9ccd1a0bd0b122d00a Mon Sep 17 00:00:00 2001 From: alardis Date: Thu, 17 Oct 2019 23:41:39 +0300 Subject: [PATCH 02/10] =?UTF-8?q?=D0=97=D0=B0=D0=BF=D0=B8=D1=81=D0=B0?= =?UTF-8?q?=D0=BB=D0=B8=20=D1=83=D1=81=D0=BB=D0=BE=D0=B2=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=B4=D0=B0=D1=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson_4/hw01_4.py | 5 +++++ lesson_4/hw02_4.py | 4 ++++ lesson_4/hw03_4.py | 4 ++++ lesson_4/hw04_4.py | 5 +++++ lesson_4/hw05_4.py | 5 +++++ lesson_4/hw06_4.py | 6 ++++++ lesson_4/hw07_4.py | 6 ++++++ 7 files changed, 35 insertions(+) diff --git a/lesson_4/hw01_4.py b/lesson_4/hw01_4.py index e69de29..b596adb 100644 --- a/lesson_4/hw01_4.py +++ b/lesson_4/hw01_4.py @@ -0,0 +1,5 @@ +# Реализовать скрипт, в котором должна быть предусмотрена функция расчета заработной платы сотрудника. +# В расчете необходимо использовать формулу: (выработка в часах*ставка в час) + премия. Для выполнения расчета для +# конкретных значений необходимо запускать скрипт с параметрами. + + diff --git a/lesson_4/hw02_4.py b/lesson_4/hw02_4.py index e69de29..22f1f9b 100644 --- a/lesson_4/hw02_4.py +++ b/lesson_4/hw02_4.py @@ -0,0 +1,4 @@ +# Представлен список чисел. Необходимо вывести элементы исходного списка, значения которых больше предыдущего элемента. +# Подсказка: элементы, удовлетворяющие условию, оформить в виде списка. Для формирования списка использовать генератор. + + diff --git a/lesson_4/hw03_4.py b/lesson_4/hw03_4.py index e69de29..910377b 100644 --- a/lesson_4/hw03_4.py +++ b/lesson_4/hw03_4.py @@ -0,0 +1,4 @@ +# Для чисел в пределах от 20 до 240 найти числа, кратные 20 или 21. Необходимо решить задание в одну строку. +# Подсказка: использовать функцию range() и генератор. + + diff --git a/lesson_4/hw04_4.py b/lesson_4/hw04_4.py index e69de29..35e1f60 100644 --- a/lesson_4/hw04_4.py +++ b/lesson_4/hw04_4.py @@ -0,0 +1,5 @@ +# Представлен список чисел. Определить элементы списка, не имеющие повторений. Сформировать итоговый массив чисел, +# соответствующих требованию. Элементы вывести в порядке их следования в исходном списке. Для выполнения задания +# обязательно использовать генератор. + + diff --git a/lesson_4/hw05_4.py b/lesson_4/hw05_4.py index e69de29..8ed95e8 100644 --- a/lesson_4/hw05_4.py +++ b/lesson_4/hw05_4.py @@ -0,0 +1,5 @@ +# Реализовать формирование списка, используя функцию range() и возможности генератора. В список должны войти четные +# числа от 100 до 1000 (включая границы). Необходимо получить результат вычисления произведения всех элементов списка. +# Подсказка: использовать функцию reduce(). + + diff --git a/lesson_4/hw06_4.py b/lesson_4/hw06_4.py index e69de29..c33d22c 100644 --- a/lesson_4/hw06_4.py +++ b/lesson_4/hw06_4.py @@ -0,0 +1,6 @@ +# Реализовать два небольших скрипта: +# а) бесконечный итератор, генерирующий целые числа, начиная с указанного, +# б) бесконечный итератор, повторяющий элементы некоторого списка, определенного заранее. +# Подсказка: использовать функцию count() и cycle() модуля itertools. + + diff --git a/lesson_4/hw07_4.py b/lesson_4/hw07_4.py index e69de29..f406dda 100644 --- a/lesson_4/hw07_4.py +++ b/lesson_4/hw07_4.py @@ -0,0 +1,6 @@ +# Реализовать генератор с помощью функции с ключевым словом yield, создающим очередное значение. При вызове функции +# должен создаваться объект-генератор. Функция должна вызываться следующим образом: for el in fibo_gen(). +# Функция отвечает за получение факториала числа, а в цикле необходимо выводить только первые 15 чисел. +# Подсказка: факториал числа n — произведение чисел от 1 до n. Например, факториал четырёх 4! = 1 * 2 * 3 * 4 = 24. + + From b8c710610ce9fb3d7fb06f2adcb174252310131b Mon Sep 17 00:00:00 2001 From: alardis Date: Thu, 17 Oct 2019 23:52:12 +0300 Subject: [PATCH 03/10] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B2=D0=B0=D1=8F=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=D0=B0=20=D1=81=D0=B4=D0=B5=D0=BB?= =?UTF-8?q?=D0=B0=D0=BD=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson_4/hw01_4.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lesson_4/hw01_4.py b/lesson_4/hw01_4.py index b596adb..e7023dd 100644 --- a/lesson_4/hw01_4.py +++ b/lesson_4/hw01_4.py @@ -3,3 +3,13 @@ # конкретных значений необходимо запускать скрипт с параметрами. +import sys + + +hours, costs, bonus = sys.argv[1:] +try: + salary = int(hours) * int(costs) + int(bonus) + print(f'Сотрудник должен получить {salary} рублей') +except ValueError: + print('Какие-то проблемы с параметрами. Не можем посчитать зарплату :(') + From 5975730a5721ab3bca369da5602ad81e5f9dab26 Mon Sep 17 00:00:00 2001 From: "VIZEX\\ashumov" Date: Fri, 18 Oct 2019 11:02:08 +0300 Subject: [PATCH 04/10] =?UTF-8?q?=D0=92=D1=82=D0=BE=D1=80=D0=B0=D1=8F=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=D0=B0=20=D1=81=D0=B4=D0=B5=D0=BB?= =?UTF-8?q?=D0=B0=D0=BD=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson_4/hw02_4.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lesson_4/hw02_4.py b/lesson_4/hw02_4.py index 22f1f9b..b6cc2a0 100644 --- a/lesson_4/hw02_4.py +++ b/lesson_4/hw02_4.py @@ -2,3 +2,15 @@ # Подсказка: элементы, удовлетворяющие условию, оформить в виде списка. Для формирования списка использовать генератор. +import random + + +base_list = [random.randint(0, 10) for _ in range(10)] +print(f'Рандомный лист: {base_list}') + +new_list = [] +for num, item in enumerate(base_list): + if num > 0 and base_list[num-1] < item: + new_list.append(item) + +print(f'Новый список: {new_list}') \ No newline at end of file From c9b8ac48023be8008e598422830b93730c0448b8 Mon Sep 17 00:00:00 2001 From: "VIZEX\\ashumov" Date: Fri, 18 Oct 2019 11:10:05 +0300 Subject: [PATCH 05/10] =?UTF-8?q?=D0=A2=D1=80=D0=B5=D1=82=D1=8C=D1=8F=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=D0=B0=20=D1=81=D0=B4=D0=B5=D0=BB?= =?UTF-8?q?=D0=B0=D0=BD=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson_4/hw03_4.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lesson_4/hw03_4.py b/lesson_4/hw03_4.py index 910377b..ea215e3 100644 --- a/lesson_4/hw03_4.py +++ b/lesson_4/hw03_4.py @@ -2,3 +2,6 @@ # Подсказка: использовать функцию range() и генератор. +my_list = [item for item in range(20, 240) if item % 20 == 0 or item % 21 == 0] + +print(my_list) \ No newline at end of file From ba59300cc2013dd4991d99a1af38e307b83924c5 Mon Sep 17 00:00:00 2001 From: "VIZEX\\ashumov" Date: Fri, 18 Oct 2019 11:14:58 +0300 Subject: [PATCH 06/10] =?UTF-8?q?=D0=A7=D0=B5=D1=82=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D1=82=D0=B0=D1=8F=20=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=D0=B0=20?= =?UTF-8?q?=D1=81=D0=B4=D0=B5=D0=BB=D0=B0=D0=BD=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson_4/hw04_4.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lesson_4/hw04_4.py b/lesson_4/hw04_4.py index 35e1f60..f7a6ab3 100644 --- a/lesson_4/hw04_4.py +++ b/lesson_4/hw04_4.py @@ -3,3 +3,13 @@ # обязательно использовать генератор. +import random + + +base_list = [random.randint(0, 20) for _ in range(20)] +print(f'Рандомный список: {base_list}') + +unique_list = [] +[unique_list.append(item) for item in base_list if item not in unique_list] + +print(f'Уникальный список: {unique_list}') \ No newline at end of file From b7ec61b52572ffa48cafd43a0e0f85f7fd0b5d15 Mon Sep 17 00:00:00 2001 From: "VIZEX\\ashumov" Date: Fri, 18 Oct 2019 11:34:09 +0300 Subject: [PATCH 07/10] =?UTF-8?q?=D0=9F=D1=8F=D1=82=D0=B0=D1=8F=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=B4=D0=B0=D1=87=D0=B0=20=D1=81=D0=B4=D0=B5=D0=BB=D0=B0?= =?UTF-8?q?=D0=BD=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson_4/hw05_4.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lesson_4/hw05_4.py b/lesson_4/hw05_4.py index 8ed95e8..33325e9 100644 --- a/lesson_4/hw05_4.py +++ b/lesson_4/hw05_4.py @@ -3,3 +3,13 @@ # Подсказка: использовать функцию reduce(). +from functools import reduce + +base_list = [item for item in range(100, 1001) if item % 2 == 0] + + +def my_func(prev_item, item): + return prev_item * item + + +print(f'Произведение всех чисел в списке: {reduce(my_func, base_list)}') From bcce3234db627525b2d43bcb425ae29203bae1ac Mon Sep 17 00:00:00 2001 From: "VIZEX\\ashumov" Date: Fri, 18 Oct 2019 12:28:28 +0300 Subject: [PATCH 08/10] =?UTF-8?q?=D0=A8=D0=B5=D1=81=D1=82=D0=B0=D1=8F=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=D0=B0=20=D1=81=D0=B4=D0=B5=D0=BB?= =?UTF-8?q?=D0=B0=D0=BD=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson_4/hw06_4.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/lesson_4/hw06_4.py b/lesson_4/hw06_4.py index c33d22c..fe6028c 100644 --- a/lesson_4/hw06_4.py +++ b/lesson_4/hw06_4.py @@ -4,3 +4,30 @@ # Подсказка: использовать функцию count() и cycle() модуля itertools. +import itertools +import random + + +mode = input('Какой скрипт будем смотреть?\nБесконечно возрастающий итератор(1) или Цикличный генератор(2)?\n') + +if mode == '1': + print('Выбран вариант 1. Бесконечно возрастающий итератор.') + begin_number = input('Введите целое число, с которого начнем генерировать числа\n') + try: + begin_number = int(begin_number) + for item in itertools.count(begin_number): + print(item) + decision = input('Продолжить вывод? Наберите "Нет", чтобы прекратить, или нажмите Enter, если согласны. ') + if decision == 'Нет': + break + except ValueError: + print('Проблемы с числом. Попробуйте запустить программу еще разок.') +elif mode == '2': + print('Выбран вариант 2. Бесконечный циклический итератор.') + list_to_cycle = [random.randint(0, 10) for item in range(4)] + print(f'Список значений, который будет закциклен: {list_to_cycle}') + for item in itertools.cycle(list_to_cycle): + print(item) + decision = input('Продолжить вывод? Наберите "Нет", чтобы прекратить, или нажмите Enter, если согласны. ') + if decision == 'Нет': + break From bf6ff5a72c01caca9848c7ac453024ddee01ead9 Mon Sep 17 00:00:00 2001 From: "VIZEX\\ashumov" Date: Fri, 18 Oct 2019 15:34:41 +0300 Subject: [PATCH 09/10] =?UTF-8?q?=D0=A1=D0=B5=D0=B4=D1=8C=D0=BC=D0=B0?= =?UTF-8?q?=D1=8F=20=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=D0=B0=20=D1=81=D0=B4?= =?UTF-8?q?=D0=B5=D0=BB=D0=B0=D0=BD=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson_4/hw07_4.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lesson_4/hw07_4.py b/lesson_4/hw07_4.py index f406dda..f47b413 100644 --- a/lesson_4/hw07_4.py +++ b/lesson_4/hw07_4.py @@ -4,3 +4,12 @@ # Подсказка: факториал числа n — произведение чисел от 1 до n. Например, факториал четырёх 4! = 1 * 2 * 3 * 4 = 24. +def fibo_gen(): + number = 1 + for item in (range(15)): + number *= (item + 1) + yield number + + +for el in fibo_gen(): + print(el) From 1a27ac4ca164e279c52b5d7fbf4d538babb7f374 Mon Sep 17 00:00:00 2001 From: "VIZEX\\ashumov" Date: Fri, 18 Oct 2019 18:22:22 +0300 Subject: [PATCH 10/10] =?UTF-8?q?=D0=92=D0=BE=D1=81=D1=8C=D0=BC=D0=B0?= =?UTF-8?q?=D1=8F=20=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=D0=B0=20=D1=81=D0=B4?= =?UTF-8?q?=D0=B5=D0=BB=D0=B0=D0=BD=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson_4/hw08_4.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 lesson_4/hw08_4.py diff --git a/lesson_4/hw08_4.py b/lesson_4/hw08_4.py new file mode 100644 index 0000000..a2cda00 --- /dev/null +++ b/lesson_4/hw08_4.py @@ -0,0 +1,13 @@ +# Напишите Lambda функцию которая принимает на вход положительное целое число, а в ответ возвращает произведение +# всех цифр данного числа игнорируя нули. +# Например на вход 123405 в результате 120 + + +from functools import reduce + + +lambda_strong = lambda number: reduce(lambda a1, a2: a1*a2 if a2 != 0 else a1*1, + [(number // 10**i) % 10 for i in range(100) if number // (10**i) > 0]) + + +print(lambda_strong(120002))