Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions task_1_lesson4.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Задание №1
# Реализовать скрипт, в котором должна быть предусмотрена функция расчёта заработной
# платы сотрудника. Используйте в нём формулу: (выработка в часах*ставка в час) + премия. Во
# время выполнения расчёта для конкретных значений необходимо запускать скрипт с
# параметрами.

from sys import argv
task_1_lesson4, number_hours, rate_hour, bonus = argv
''' Определение параметров

task_1_lesson4 - имя скрипта
number_hours - Количество отработанных часов
rate_hour - Ставка в час
bonus - Сумма премии

'''
print(f'Количество отработанных часов: {number_hours}')
print(f'Ставка в час: {rate_hour}')
print(f'Сумма премии: {bonus}')
salary = round((float(number_hours) * float(rate_hour) + float(bonus)), 2)
print(f'Заработная плата сотрудника: {salary} руб.')
12 changes: 12 additions & 0 deletions task_2_lesson4.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Задание №2
# Представлен список чисел. Необходимо вывести элементы исходного списка, значения
# которых больше предыдущего элемента.
# Подсказка: элементы, удовлетворяющие условию, оформить в виде списка. Для его
# формирования используйте генератор.
# Пример исходного списка: [300, 2, 12, 44, 1, 1, 4, 10, 7, 1, 78, 123, 55].
# Результат: [12, 44, 4, 10, 78, 123].

list_data = [300, 2, 12, 44, 1, 1, 4, 10, 7, 1, 78, 123, 55]
new_list = [el for i, el in enumerate(list_data) if i > 0 and list_data[i] > list_data[i-1]]
print(f'Исходный список: {list_data}')
print(f'Результат: {new_list}')
9 changes: 9 additions & 0 deletions task_3_lesson4.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Задание №3
# Для чисел в пределах от 20 до 240 найти числа, кратные 20 или 21. Решите задание в одну
# строку.
# Подсказка: используйте функцию range() и генератор.

numbers_list = [number for number in range(20, 241, 20)]
numbers_list_1 = [number for number in range(21, 241, 21)]
print(f'Список чисел кратных 20 в диапазоне от 20 до 240 включительно: {numbers_list}')
print(f'Список чисел кратных 21 в диапазоне от 20 до 240 включительно: {numbers_list_1}')
12 changes: 12 additions & 0 deletions task_4_lesson4.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Задание №4
# Представлен список чисел. Определите элементы списка, не имеющие повторений.
# Сформируйте итоговый массив чисел, соответствующих требованию. Элементы выведите в
# порядке их следования в исходном списке. Для выполнения задания обязательно используйте
# генератор.
# Пример исходного списка: [2, 2, 2, 7, 23, 1, 44, 44, 3, 2, 10, 7, 4, 11].
# Результат: [23, 1, 3, 10, 4, 11]

list_data = [2, 2, 2, 7, 23, 1, 44, 44, 3, 2, 10, 7, 4, 11]
new_list = [el for el in list_data if list_data.count(el) == 1]
print(f'Исходный список: {list_data}')
print(f'Результат: {new_list}')
13 changes: 13 additions & 0 deletions task_5_lesson4.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Задание №5
# Реализовать формирование списка, используя функцию range() и возможности генератора. В
# список должны войти чётные числа от 100 до 1000 (включая границы). Нужно получить
# результат вычисления произведения всех элементов списка.
# Подсказка: использовать функцию reduce().

from functools import reduce

my_list = [number for number in range(100, 1001) if number % 2 == 0]
result = reduce(lambda a, b: a * b, my_list)

print(f'Сформирован список: \n{my_list}')
print(f'Результат вычисления произведения всех элементов списка: \n{result}')
27 changes: 27 additions & 0 deletions task_6_1_lesson4.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Задание №6 часть 2
# Реализовать два небольших скрипта:
# итератор, генерирующий целые числа, начиная с указанного;
# итератор, повторяющий элементы некоторого списка, определённого заранее.
# Подсказка: используйте функцию count() и cycle() модуля itertools. Обратите внимание, что
# создаваемый цикл не должен быть бесконечным. Предусмотрите условие его завершения.
# Например, в первом задании выводим целые числа, начиная с 3. При достижении числа 10 —
# завершаем цикл. Вторым пунктом необходимо предусмотреть условие, при котором
# повторение элементов списка прекратится.

from sys import argv
from itertools import cycle
task_6_1_lesson4, number_rep = argv
''' Определение параметров

task_6_lesson4 - имя скрипта
number_rep - число повторений элементов списка

'''
a = 1
my_list = ['Hello', 'World']
for el in cycle(my_list):
if a > int(number_rep):
break
else:
print(el)
a += 1
24 changes: 24 additions & 0 deletions task_6_lesson4.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Задание №6 часть 1
# Реализовать два небольших скрипта:
# итератор, генерирующий целые числа, начиная с указанного;
# итератор, повторяющий элементы некоторого списка, определённого заранее.
# Подсказка: используйте функцию count() и cycle() модуля itertools. Обратите внимание, что
# создаваемый цикл не должен быть бесконечным. Предусмотрите условие его завершения.
# Например, в первом задании выводим целые числа, начиная с 3. При достижении числа 10 —
# завершаем цикл. Вторым пунктом необходимо предусмотреть условие, при котором
# повторение элементов списка прекратится.

from sys import argv
from itertools import count
task_6_lesson4, start_number = argv
''' Определение параметров

task_6_lesson4 - имя скрипта
start_number - число с которого начинать формировать список

'''
for el in count(int(start_number)):
if el > 10:
break
else:
print(el)
18 changes: 18 additions & 0 deletions task_7_lesson4.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Задание №7
# Реализовать генератор с помощью функции с ключевым словом yield, создающим очередное
# значение. При вызове функции должен создаваться объект-генератор. Функция вызывается
# следующим образом: for el in fact(n). Она отвечает за получение факториала числа. В цикле
# нужно выводить только первые n чисел, начиная с 1! и до n!.
# Подсказка: факториал числа n — произведение чисел от 1 до n. Например, факториал
# четырёх 4! = 1 * 2 * 3 * 4 = 24.

def fact(n):
temp = 1
for i in range(1, n+1):
temp *= i
yield temp


n = int(input('Введите число, факториал которого Вы хотите узнать: '))
for i in fact(n):
print(i)