diff --git a/DZ6/task_6.1.py b/DZ6/task_6.1.py new file mode 100644 index 0000000..905613d --- /dev/null +++ b/DZ6/task_6.1.py @@ -0,0 +1,30 @@ +#### 6.1[30]: Напишите программу, генерирующую элементы арифметической прогрессии +# Программа принимает от пользователя три числа : +# - Первый элемент прогрессии, Разность (шаг) и Количество элементов +# Формула для получения n-го члена прогрессии: an = a1 + (n-1) * d. +# Напишите функцию +# - Аргументы: три указанных параметра +# - Возвращает: список элементов арифмитической прогрессии. + +a1, d, n = [int(el) for el in input("Введите a1, d, n: ").split()] + +def arithmetic_progression(start, step, quantity): + return[start+step*idx for idx in range(quantity)] + +print(arithmetic_progression(a1, d, n)) + +# ```(*)``` **Усложнение.** Для формирования списка внутри функции используйте Comprehension + +new_lst=[a1 + d * i for i in range(n)] +print(new_lst) + +# ```(**)``` **Усложнение.** Присвоение значений переменным a1,d,n запишите, используя только один input, +# в одну строку, вам понадобится распаковка и Comprehension или map + +my_lst=int(input("Введите a1, d, n: ")) +type(my_lst) +var=[*my_lst] +new_lst=[var[1] + var[2] * i for i in range(var[3])] +print(my_lst) + + diff --git a/DZ6/task_6.2.py b/DZ6/task_6.2.py new file mode 100644 index 0000000..f312df2 --- /dev/null +++ b/DZ6/task_6.2.py @@ -0,0 +1,16 @@ +#### 6.2[32]: Определить индексы элементов массива (списка), значения которых принадлежат заданному диапазону +# (т.е. не меньше заданного минимума и не больше заданного максимума) + +# Напишите функцию +# - Аргументы: список чисел и границы диапазона +# - Возвращает: список индексов элементов (смотри условие) + +def check_indexes(lst, min_bound, max_bound): + return [(idx, el) for idx, el in enumerate(lst) if min_bound <= el <= max_bound] + + +lst1 = [-5, 9, 0, 3, -1, -2, 1, 4, -2, 10, 2, 0, -9, 8, 10, -9, 0, -5, -5, 7] + +print(check_indexes(lst1, 2, 10)) +print(check_indexes(lst1, 2, 9)) +print(check_indexes(lst1, 0, 6)) diff --git a/DZ7/task_6.3.py b/DZ7/task_6.3.py new file mode 100644 index 0000000..ad227e3 --- /dev/null +++ b/DZ7/task_6.3.py @@ -0,0 +1,30 @@ +#### 6.2[32]: Напишите функцию ```print_operation_table(operation, num_rows=6, num_columns=6)```, +# которая принимает в качестве аргумента функцию, вычисляющую элемент по номеру строки и столбца, +# т.е. функцию двух аргументов. Аргументы ```num_rows``` и ```num_columns``` указывают число +# строк и столбцов таблицы, которые должны быть распечатаны. Нумерация строк и столбцов идет с единицы. + + # Примеры/Тесты: + # print_operation_table(lambda x,y: x**y,4,4) + # 1 1 1 1 + # 2 4 8 16 + # 3 9 27 81 + # 4 16 64 256 + + # print_operation_table(lambda x,y: x*y) + # 1 2 3 4 5 6 + # 2 4 6 8 10 12 + # 3 6 9 12 15 18 + # 4 8 12 16 20 24 + # 5 10 15 20 25 30 + # 6 12 18 24 30 36 + +def print_operation_table(operation, num_rows=6, num_columns=6): + for row in range(1, num_rows+1): + r="" + for col in range(1, num_columns+1): + value=operation(row, col) + r+="\t" + r+=str(value) + print (r) + +print_operation_table(lambda x,y: x*y) diff --git a/DZ7/task_7.1.py b/DZ7/task_7.1.py new file mode 100644 index 0000000..c4df1ce --- /dev/null +++ b/DZ7/task_7.1.py @@ -0,0 +1,43 @@ +#### 7.1[34]: Винни-Пух попросил Вас посмотреть, есть ли в его стихах ритм. Поскольку разобраться +# в его кричалках не настолько просто, насколько легко он их придумывает, Вам стоит написать программу. +# Винни-Пух считает, что ритм есть, если число слогов (т.е. число гласных букв) в каждой фразе стихотворения +# одинаковое. +# Фраза может состоять из одного слова, если во фразе несколько слов, то они разделяются дефисами. +# Фразы отделяются друг от друга пробелами. + +#Написать функцию, которая принимает строку текста и проверяет ее ритм (по Винни-Пуху) +# Если ритм есть, функция возвращает True, иначе возвращает False + +# Примеры/Тесты: +# ("пара-ра-рам рам-пам-папам па-ра-па-дам") -> True +# ("пара-ра-рам рам-пум-пупам па-ре-по-дам") -> True +# ("пара-ра-рам рам-пуум-пупам па-ре-по-дам") -> False +# ("Трам-пара-папам-парам-па-пам-пам-па Пум-пурум-пу-пурум-трам-пам-па") -> False +# ("Пам-парам-пурум Пум-пурум-карам") -> True + +# **Примечание.** + +# - Подумайте об эффективности алгоритма. Какие структуры данных будут более эффективны по скорости. +# - Алгоритм должен работать так, чтобы не делать лишних проверок. Подумайте, возможно некоторые проверки +# не нужны. + + +def win_and_pooh(song): + volwes = {'а', 'о', 'э', 'е', 'и', 'ы', 'у', 'ё', 'ю', 'я'} + z = ' ' + super_counter=-1 + counter=0 + for id in song: + if id in volwes: + counter+=1 + elif id == z: + if super_counter==-1: + super_counter=counter + counter=0 + elif super_counter==counter: + counter=0 + else: + return False + return True + +print(win_and_pooh("пара-ра-рам")) \ No newline at end of file diff --git a/DZ8/data08_1.txt b/DZ8/data08_1.txt new file mode 100644 index 0000000..d53f787 --- /dev/null +++ b/DZ8/data08_1.txt @@ -0,0 +1,6 @@ +Иванов#Иван#+7(xxx)xxx-xx-xx#desription_Иванов +Петров#Петр#+7(---)xxx-xx-xx#desription_Петров +Соколов#Илья#+7(---)---------#desription_Соколов +Павельев#Андрей#+7(***)***-**-**#desription_Павельев +Пешехов#Антон#+7++++++++++#desription_Пешехов +Сааков#Илья#+7(+++)+++-++-++#desription_Сааков \ No newline at end of file