diff --git a/task-1.py b/task-1.py new file mode 100644 index 0000000..cf4ee00 --- /dev/null +++ b/task-1.py @@ -0,0 +1,19 @@ +""" +Задание: +Реализовать скрипт, в котором должна быть предусмотрена функция расчета заработной платы сотрудника. +В расчете необходимо использовать формулу: (выработка в часах*ставка в час) + премия. +Для выполнения расчета для конкретных значений необходимо запускать скрипт с параметрами. +""" + +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 diff --git a/task-2.py b/task-2.py new file mode 100644 index 0000000..308e6c0 --- /dev/null +++ b/task-2.py @@ -0,0 +1,11 @@ +""" +Задание: +Представлен список чисел. Необходимо вывести элементы исходного списка, значения которых больше предыдущего элемента. +Подсказка: элементы, удовлетворяющие условию, оформить в виде списка. Для формирования списка использовать генератор. +Пример исходного списка: [300, 2, 12, 44, 1, 1, 4, 10, 7, 1, 78, 123, 55]. +Результат: [12, 44, 4, 10, 78, 123]. +""" + +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]]) diff --git a/task-3.py b/task-3.py new file mode 100644 index 0000000..6c3d43e --- /dev/null +++ b/task-3.py @@ -0,0 +1,7 @@ +""" +Задание: +Для чисел в пределах от 20 до 240 найти числа, кратные 20 или 21. Необходимо решить задание в одну строку. +Подсказка: использовать функцию range() и генератор. +""" + +print([i for i in range(20, 240) if not i % 20 or not i % 21]) diff --git a/task-4.py b/task-4.py new file mode 100644 index 0000000..04f436b --- /dev/null +++ b/task-4.py @@ -0,0 +1,12 @@ +""" +Задание: +Представлен список чисел. Определить элементы списка, не имеющие повторений. +Сформировать итоговый массив чисел, соответствующих требованию. +Элементы вывести в порядке их следования в исходном списке. Для выполнения задания обязательно использовать генератор. +Пример исходного списка: [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 diff --git a/task-5.py b/task-5.py new file mode 100644 index 0000000..2851197 --- /dev/null +++ b/task-5.py @@ -0,0 +1,19 @@ +""" +Задание: +Реализовать формирование списка, используя функцию range() и возможности генератора. +В список должны войти четные числа от 100 до 1000 (включая границы). +Необходимо получить результат вычисления произведения всех элементов списка. +Подсказка: использовать функцию reduce(). +""" + +""" +Комментарий: +Прошу вас уточнить, допустим ли такой стиль оформления вызов функций? +""" + +import functools as ft + +print(ft.reduce( + lambda prev, curr: prev * curr, + [i for i in range(100, 1000) if not i % 2] +)) 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 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