diff --git "a/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py" "b/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py" index fe0df5951..f64220779 100644 --- "a/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py" +++ "b/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py" @@ -1,13 +1,10 @@ -""" -Задание 1. - -Поработайте с переменными, создайте несколько, -выведите на экран, запросите у пользователя несколько чисел и -строк и сохраните в переменные, выведите на экран. - -Пример: -Ведите ваше имя: Василий -Ведите ваш пароль: vas -Введите ваш возраст: 45 -Ваши данные для входа в аккаунт: имя - Василий, пароль - vas, возраст - 45 -""" +a = 1 +b = "Кто ты воин?" +c = "Ахилес" +d = int(input("Введите число из сообщения: ")) +e = input("Введите ваши пожелалания: ") +print(a) +print(b) +print(c) +print(d) +print(e) diff --git "a/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2.py" "b/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2.py" index 840e3fa00..0870dced0 100644 --- "a/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2.py" +++ "b/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2.py" @@ -1,11 +1,7 @@ -""" -Задание 2. +seconds = int(input("Введите число в секундах: ")) +hours = seconds // 3600 +seconds = seconds - hours * 3600 +minutes = seconds // 60 +seconds = seconds - minutes * 60 -Пользователь вводит время в секундах. -Переведите время в часы, минуты и секунды и выведите в формате чч:мм:сс. -Используйте форматирование строк. - -Пример: -Введите время в секундах: 3600 -Время в формате ч:м:с - 1.0 : 60.0 : 3600 -""" +print(f'Time: {hours:02}:{minutes:02}:{seconds:02}') \ No newline at end of file diff --git "a/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3.py" "b/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3.py" index 0c08706fd..a676a5c73 100644 --- "a/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3.py" +++ "b/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3.py" @@ -1,10 +1,3 @@ -""" -Задание 3. - -Узнайте у пользователя целое положительное число n. -Найдите сумму чисел n + nn + nnn. - -Пример: -Введите число n: 3 -n + nn + nnn = 369 -""" +a = input("Введите число: ") +b = int(a) + int(a + a) + int(a + a + a) +print(b) diff --git "a/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_6.py" "b/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_6.py" index 3c46df32d..42836c1f1 100644 --- "a/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_6.py" +++ "b/\320\243\321\200\320\276\320\272 1. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_6.py" @@ -1,21 +1,11 @@ -""" -Задание 6. - -Спортсмен занимается ежедневными пробежками. -В первый день его результат составил a километров. -Каждый день спортсмен увеличивал результат на 10 % относительно предыдущего. -Требуется определить номер дня, -на который результат спортсмена составит не менее b километров. -Программа должна принимать значения параметров a и b - и выводить одно натуральное число — номер дня. - -Например: a = 2, b = 3. -Результат: -1-й день: 2 -2-й день: 2,2 -3-й день: 2,42 -4-й день: 2,66 -5-й день: 2,93 -6-й день: 3,22 -Ответ: на 6-й день спортсмен достиг результата — не менее 3 км. -""" +n1 = int(input()) +n2 = int(input()) +k = 1 +while True: + n1 *= 1.1 + k += 1 + if n1 >= n2: + print(k) + break + else: + continue \ No newline at end of file diff --git "a/\320\243\321\200\320\276\320\272 2. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py" "b/\320\243\321\200\320\276\320\272 2. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py" index efb8c5f98..451660eee 100644 --- "a/\320\243\321\200\320\276\320\272 2. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py" +++ "b/\320\243\321\200\320\276\320\272 2. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py" @@ -1,17 +1,5 @@ -""" -Задание 1. Создать список и заполнить его элементами различных типов данных. -Реализовать проверку типа данных каждого элемента. -Использовать функцию type() для проверки типа. -Элементы списка можно не запрашивать у пользователя, -а указать явно, в программе. - -Пример: -для списка [5, "string", 0.15, True, None] -результат - - - - - - -""" +list01 = [1, 1,35,'string', [1,2,3], (1,2,3), {1,2,3}, {1: 1, 2: 2}, True, None] +print ('press any key: ', end='') +for i in list01: + input('') + print (f'"{i}" is: {type(i)}', end='') \ No newline at end of file diff --git "a/\320\243\321\200\320\276\320\272 2. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2.py" "b/\320\243\321\200\320\276\320\272 2. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2.py" index 1e152143c..7a05bcad9 100644 --- "a/\320\243\321\200\320\276\320\272 2. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2.py" +++ "b/\320\243\321\200\320\276\320\272 2. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2.py" @@ -1,13 +1,13 @@ -""" -Задание 2. Для списка реализовать обмен значений соседних элементов, -т.е. значениями обмениваются элементы с индексами 0 и 1, 2 и 3 и т.д. -При нечетном количестве элементов последний сохранить на своем месте. -Для заполнения списка элементов необходимо использовать функцию input(). +input_line = input("Enter elements separated by spaces: ") +list1 = input_line.split(' ') +print('Original list: ', list1) -Пример: -Введите целые числа через пробел: 1 2 3 4 -Результат: 2 1 4 3 +for i in range(1, len(list1), 2): + input('') + print(f'i == {i}') + print(f'Swapping elements "{list1[i - 1]}" and "{list1[i]}"') -Введите целые числа через пробел: 1 2 3 -Результат: 2 1 3 -""" + list1[i-1], list1[i] = list1[i], list1[i-1] + +input('') +print('New list: ', list1) diff --git "a/\320\243\321\200\320\276\320\272 2. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3.py" "b/\320\243\321\200\320\276\320\272 2. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3.py" index 48a89eb99..1365f8d1f 100644 --- "a/\320\243\321\200\320\276\320\272 2. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3.py" +++ "b/\320\243\321\200\320\276\320\272 2. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3.py" @@ -1,10 +1,15 @@ -""" -3. Пользователь вводит месяц в виде целого числа от 1 до 12. -Сообщить к какому времени года относится месяц (зима, весна, лето, осень). -Напишите два варианта решения: через list и через dict. +seasons = {'Зима': [12, 1, 2], + 'Весна': [3, 4, 5], + 'Лето': [6, 7, 8], + 'Осень': [9, 10, 11]} -Пример: -Введите номер месяца: 10 -Результат через список: Осень -Результат через словарь: Осень -""" +number = int(input('Введите номер месяца: ')) + +if number in seasons['Зима']: + print('Это Зима') +if number in seasons['Весна']: + print('Это Весна') +if number in seasons['Лето']: + print('Это Лето') +if number in seasons['Осень']: + print('Это Осень') diff --git "a/\320\243\321\200\320\276\320\272 2. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_4.py" "b/\320\243\321\200\320\276\320\272 2. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_4.py" index 977970e9a..6a0f296f3 100644 --- "a/\320\243\321\200\320\276\320\272 2. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_4.py" +++ "b/\320\243\321\200\320\276\320\272 2. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_4.py" @@ -1,16 +1,6 @@ -""" -4. Пользователь вводит строку из нескольких слов, -разделённых пробелами. Вывести каждое слово с новой строки. -Строки необходимо пронумеровать. Если слово длинное, -выводить только первые 10 букв в слове. +input_line = input("Введите слова разделенные пробелом: ") +list01 = input_line.split(' ') +print('my_list ==', list01) -Пример: -Введите слова через пробел: раз два три -1. раз -2. два -3. три - -Введите слова через пробел: раз перерефрижерированность -1. раз -2. перерефриж -""" +for index, list01_line in enumerate(list01): + print(index, list01_line[:10]) diff --git "a/\320\243\321\200\320\276\320\272 2. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_5.py" "b/\320\243\321\200\320\276\320\272 2. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_5.py" index 4e74de593..246a1b681 100644 --- "a/\320\243\321\200\320\276\320\272 2. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_5.py" +++ "b/\320\243\321\200\320\276\320\272 2. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_5.py" @@ -1,17 +1,19 @@ -""" -5. Реализовать структуру «Рейтинг», представляющую собой не -возрастающий набор натуральных чисел -(каждый элемент ряда меньше или равен предыдущему). +list01 = [7, 9, 1, 3, 6, 2, 5] +print('Original list: ', list01) +number = int(input('Enter number: ')) -У пользователя необходимо запрашивать новый элемент рейтинга. -Если в рейтинге существуют элементы с одинаковыми значениями, -то новый элемент с тем же значением должен разместиться после них. +if number <= list01[-1]: + print(f'{number} <= {list01[-1]}') + list01.append(number) -Подсказка. Например, набор натуральных чисел: 7, 5, 3, 3, 2. -Пользователь ввел число 3. Результат: 7, 5, 3, 3, 3, 2. -Пользователь ввел число 8. Результат: 8, 7, 5, 3, 3, 2. -Пользователь ввел число 1. Результат: 7, 5, 3, 3, 2, 1. -Набор натуральных чисел можно задать непосредственно в коде, -например, my_list = [7, 5, 3, 3, 2]. -""" +else: + for i in range(len(list01)): + input('') + print(f'i == {i}, list01[i] == {list01[i]}') + if number > list01[i]: + print(f'{number} > {list01[i]}') + list01.insert(i, number) + break + +print('New list: ', list01) \ No newline at end of file diff --git "a/\320\243\321\200\320\276\320\272 2. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_6.py" "b/\320\243\321\200\320\276\320\272 2. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_6.py" index 96718ff18..139597f9c 100644 --- "a/\320\243\321\200\320\276\320\272 2. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_6.py" +++ "b/\320\243\321\200\320\276\320\272 2. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_6.py" @@ -1,27 +1,2 @@ -""" -6. *Реализовать структуру данных «Товары». Она должна представлять собой список кортежей. -Каждый кортеж хранит информацию об отдельном товаре. -В кортеже должно быть два элемента — номер товара и словарь с параметрами -(характеристиками товара: название, цена, количество, единица измерения). -Структуру нужно сформировать программно, т.е. запрашивать все данные у пользователя. -Пример готовой структуры: -[ - (1, {“название”: “компьютер”, “цена”: 20000, “количество”: 5, “eд”: “шт.”}), - (2, {“название”: “принтер”, “цена”: 6000, “количество”: 2, “eд”: “шт.”}), - (3, {“название”: “сканер”, “цена”: 2000, “количество”: 7, “eд”: “шт.”}) -] -Далее необходимо собрать аналитику о товарах. Реализовать словарь, -в котором каждый ключ — характеристика товара, например название, -а значение — список значений-характеристик, например список названий товаров. - -Пример: - -{ -“названия”: [“компьютер”, “принтер”, “сканер”], -“цены”: [20000, 6000, 2000], -“количества”: [5, 2, 7], -“ед”: [“шт.”] -} -""" diff --git "a/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py" "b/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py" index 4b1004ea9..cc2b827c7 100644 --- "a/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py" +++ "b/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py" @@ -1,19 +1,14 @@ -""" -1. Реализовать функцию, принимающую два числа (позиционные аргументы) -и выполняющую их деление. Числа запрашивать у пользователя, -предусмотреть обработку ситуации деления на ноль (try except). +def division(a, b): + try: + c = a / b + return c + except: + return 'Incorrect data' -Пример: -Введите первое число: 10 -Введите второе число: 0 -Вы что? Пытаетесь делить на 0! -Process finished with exit code 0 -Пример: -Введите первое число: 10 -Введите второе число: 10 -1.0 +a = int(input('Input "a": ')) +b = int(input('Input "b": ')) +result = division(a, b) -Process finished with exit code 0 -""" +print('Result:', result) \ No newline at end of file diff --git "a/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2.py" "b/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2.py" index b0177eb44..efd769379 100644 --- "a/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2.py" +++ "b/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2.py" @@ -1,10 +1,8 @@ -""" -2. Реализовать функцию, принимающую несколько параметров, -описывающих данные пользователя: имя, фамилия, год рождения, город проживания, email, телефон. -Функция должна принимать параметры как именованные аргументы. -Реализовать вывод данных о пользователе одной строкой. +def user_data_to_string(name, surname, year, city, email, phone): + return ', '.join([name, surname, year, city, email, phone]) -Пример: -Иван Иванов 1846 года рождения, проживает в городе Москва, -email: jackie@gmail.com, телефон: 01005321456 -""" + +result = user_data_to_string(name='Artur', surname='Morozov', year='1988', + city='Kazan', email='Artur_1.0@mail.ru', phone='89274253820') + +print(result) diff --git "a/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3.py" "b/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3.py" index 4385ba3cf..ceab1e40f 100644 --- "a/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3.py" +++ "b/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3.py" @@ -1,7 +1,15 @@ -""" -3. Реализовать функцию my_func(), которая принимает три позиционных аргумента, -и возвращает сумму наибольших двух аргументов. -Попробуйте решить задачу двумя способами: -1) используя функцию sort() -2) без функции sort() -""" +def my_func(a, b, c): + if a <= b and a <= c: + return b + c + elif b <= c: + return a + c + else: + return a + b + + +a = int(input('Input "a": ')) +b = int(input('Input "b": ')) +c = int(input('Input "c": ')) + +my_sum = my_func(a, b, c) +print('Max sum', my_sum) \ No newline at end of file diff --git "a/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_4.py" "b/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_4.py" index f6274e1bf..d321ff10f 100644 --- "a/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_4.py" +++ "b/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_4.py" @@ -1,7 +1,10 @@ -""" -4. Программа принимает действительное положительное число x и целое отрицательное число y. Необходимо -выполнить возведение числа x в степень y. Задание необходимо реализовать в виде функции my_func(x, y). -При решении задания необходимо обойтись без встроенной функции возведения числа в степень! -ВНИМАНИЕ: использование встроенной функции = задание не принято -Постараться придумать свой алгоритм без ** -""" +def my_pow(x, y): + return 1 / (x ** abs(y)) + + +x = int(input('Input "x": ')) +y = int(input('Input "y": ')) + + +result_my_pow = my_pow(x, y) +print('Result:', result_my_pow) diff --git "a/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_5.py" "b/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_5.py" index 6eb90d579..ead7d18c1 100644 --- "a/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_5.py" +++ "b/\320\243\321\200\320\276\320\272 3. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_5.py" @@ -1,8 +1,18 @@ -""" -5. Программа запрашивает у пользователя строку чисел, разделенных пробелом. При нажатии Enter должна - выводиться сумма чисел. Пользователь может продолжить ввод чисел, разделенных пробелом и снова - нажать Enter. Сумма вновь введенных чисел будет добавляться к уже подсчитанной сумме. Но если - вместо числа вводится специальный символ, выполнение программы завершается. Если специальный - символ введен после нескольких чисел, то вначале нужно добавить сумму этих чисел к полученной - ранее сумме и после этого завершить программу. -""" +def my_sum(line): + global exit_flag + list01 = line.split() + if list01[-1] == 'Q': + exit_flag = 1 + del list01[-1] + list01 = map(int, list01) + return sum(list01) + + +exit_flag = 0 +result = 0 + + +while exit_flag == 0: + line = input('Input numbers or input Q for exit: ') + result = result + my_sum(line) + print('Result:', result) diff --git "a/\320\243\321\200\320\276\320\272 4. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py" "b/\320\243\321\200\320\276\320\272 4. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py" index 7436f9ccd..6403f3950 100644 --- "a/\320\243\321\200\320\276\320\272 4. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py" +++ "b/\320\243\321\200\320\276\320\272 4. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py" @@ -1,8 +1,5 @@ -""" -1. Реализовать скрипт, в котором должна быть предусмотрена функция -расчета заработной платы сотрудника. В расчете необходимо использовать формулу: -(выработка в часах*ставка в час) + премия. +from sys import argv -Для выполнения расчета для конкретных значений -необходимо запускать скрипт с параметрами. -""" +file_name, hours, salary, bonus = argv + +print(float(hours) * float(salary) + float(bonus)) \ No newline at end of file diff --git "a/\320\243\321\200\320\276\320\272 4. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2.py" "b/\320\243\321\200\320\276\320\272 4. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2.py" index 14cdc7aef..73145fce7 100644 --- "a/\320\243\321\200\320\276\320\272 4. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2.py" +++ "b/\320\243\321\200\320\276\320\272 4. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2.py" @@ -1,9 +1,12 @@ -""" -2. Представлен список чисел. Необходимо вывести элементы исходного списка, -значения которых больше предыдущего элемента. -Подсказка: элементы, удовлетворяющие условию, оформить в виде списка. -Пример исходного списка: [300, 2, 12, 44, 1, 1, 4, 10, 7, 1, 78, 123, 55]. -Результат: [12, 44, 4, 10, 78, 123]. +my_list = [300, 2, 14, 11, 24, 35, 46, 123, 551] +new_list = [] -Реализуйте вариант без и с генераторным выражением -""" +for i in range(1,len(my_list)): + if my_list[i] > my_list[i-1]: + new_list.append(my_list[i]) + +new_list_gen = [el for num, el in enumerate(my_list) if num >= 1 and my_list[num-1] < el] + +print('my_list', my_list) +print('new_list', new_list) +print('new_list_gen', new_list_gen) diff --git "a/\320\243\321\200\320\276\320\272 4. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3.py" "b/\320\243\321\200\320\276\320\272 4. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3.py" index 2813c8098..3fb541f18 100644 --- "a/\320\243\321\200\320\276\320\272 4. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3.py" +++ "b/\320\243\321\200\320\276\320\272 4. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3.py" @@ -1,5 +1 @@ -""" -3. Для чисел в пределах от 20 до 240 найти числа, кратные 20 или 21. -Необходимо решить задание в одну строку. -Подсказка: использовать функцию range() и генераторное выражение. -""" +print([el for el in range(20, 241) if el % 20 == 0 or el % 21 == 0]) diff --git "a/\320\243\321\200\320\276\320\272 4. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_4.py" "b/\320\243\321\200\320\276\320\272 4. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_4.py" index d8acf9929..50c7a4e4d 100644 --- "a/\320\243\321\200\320\276\320\272 4. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_4.py" +++ "b/\320\243\321\200\320\276\320\272 4. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_4.py" @@ -1,8 +1,3 @@ -""" -4. Представлен список чисел. Определить элементы списка, не имеющие повторений. -Сформировать итоговый массив чисел, соответствующих требованию. -Элементы вывести в порядке их следования в исходном списке. -Для выполнения задания обязательно использовать генераторное выржаение. -Пример исходного списка: [2, 2, 2, 7, 23, 1, 44, 44, 3, 2, 10, 7, 4, 11]. -Результат: [23, 1, 3, 10, 4, 11] -""" +my_list = [2, 2, 2, 7, 23, 1, 44, 44, 3, 2, 10, 7, 4, 11] +new_list = [el for el in my_list if my_list.count(el) == 1] +print(new_list) \ No newline at end of file diff --git "a/\320\243\321\200\320\276\320\272 4. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_5.py" "b/\320\243\321\200\320\276\320\272 4. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_5.py" index 926ae4b07..0e9f9a426 100644 --- "a/\320\243\321\200\320\276\320\272 4. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_5.py" +++ "b/\320\243\321\200\320\276\320\272 4. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_5.py" @@ -1,7 +1,8 @@ -""" -5. Реализовать формирование списка, используя функцию range() -и возможности генераторного выражения. -В список должны войти четные числа от 100 до 1000 (включая границы). -Необходимо получить результат вычисления произведения всех элементов списка. -Подсказка: использовать лямбда-функцию и функцию reduce(). -""" +from functools import reduce + +def my_func(first_el, next_el): + return first_el * next_el + +my_list = [el for el in range(100, 1001, 2)] +result = reduce(my_func, my_list) +print(result) diff --git "a/\320\243\321\200\320\276\320\272 4. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_6.py" "b/\320\243\321\200\320\276\320\272 4. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_6.py" index e172a5cba..733ab4520 100644 --- "a/\320\243\321\200\320\276\320\272 4. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_6.py" +++ "b/\320\243\321\200\320\276\320\272 4. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_6.py" @@ -1,14 +1,16 @@ -""" -6. Реализовать два небольших скрипта: -а) итератор, генерирующий целые числа, начиная с указанного, -б) итератор, повторяющий элементы некоторого списка, определенного заранее. - -Подсказка: использовать функцию count() и cycle() модуля itertools. -Обратите внимание, что создаваемый цикл не должен быть бесконечным. -Необходимо предусмотреть условие его завершения. - -Например, в первом задании выводим целые числа, начиная с 3, -а при достижении числа 10 завершаем цикл. -Во втором также необходимо предусмотреть условие, -при котором повторение элементов списка будет прекращено. -""" +from itertools import cycle, count + +for i in count(3): + print(i) + if i >= 10: + break + + +i = 0 +my_list = ['a', 'b', 'c'] +for el in cycle(my_list): + print(el) + i += 1 + if i >= 10: + break + diff --git "a/\320\243\321\200\320\276\320\272 5. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1/file01.txt" "b/\320\243\321\200\320\276\320\272 5. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1/file01.txt" new file mode 100644 index 000000000..63eef14b3 --- /dev/null +++ "b/\320\243\321\200\320\276\320\272 5. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1/file01.txt" @@ -0,0 +1,2 @@ +44 +55 diff --git "a/\320\243\321\200\320\276\320\272 5. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1/task_1.py" "b/\320\243\321\200\320\276\320\272 5. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1/task_1.py" index 09df027db..9ee2397d1 100644 --- "a/\320\243\321\200\320\276\320\272 5. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1/task_1.py" +++ "b/\320\243\321\200\320\276\320\272 5. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1/task_1.py" @@ -1,5 +1,10 @@ -""" -1) Создать программно файл в текстовом формате, -записать в него построчно данные, вводимые пользователем. -Об окончании ввода данных свидетельствует пустая строка. -""" +file01 = open('file01.txt', 'w') + +while True: + line = input('Input line: ') + if not line: + break + file01.write(line + '\n') + +file01.close() + diff --git "a/\320\243\321\200\320\276\320\272 5. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2/file02.txt" "b/\320\243\321\200\320\276\320\272 5. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2/file02.txt" new file mode 100644 index 000000000..c0edbe5ae --- /dev/null +++ "b/\320\243\321\200\320\276\320\272 5. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2/file02.txt" @@ -0,0 +1,5 @@ +12133 fdlkvnjs dsfn +fsfsgfs kfn j nnefn e +fsfsgsggfdg fjnjrenv nre +vdghjukik jfn jfn rere fwkj +dsaaxaxac fjwnjef njfwnwkjef \ No newline at end of file diff --git "a/\320\243\321\200\320\276\320\272 5. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2/task_2.py" "b/\320\243\321\200\320\276\320\272 5. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2/task_2.py" index 28c1573a9..7323c4e3c 100644 --- "a/\320\243\321\200\320\276\320\272 5. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2/task_2.py" +++ "b/\320\243\321\200\320\276\320\272 5. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2/task_2.py" @@ -1,4 +1,6 @@ -""" -2) Создать текстовый файл (не программно), сохранить в нем несколько строк, -выполнить подсчет количества строк, количества слов в каждой строке. -""" +file01 = open('file02.txt', 'r') +content = file01.readlines() +print('Lines:', len(content)) +for i in range(len(content)): + print(f'line {i+1} - {len(content[i].split())} words') +file01.close() \ No newline at end of file diff --git "a/\320\243\321\200\320\276\320\272 5. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3/file03.txt" "b/\320\243\321\200\320\276\320\272 5. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3/file03.txt" new file mode 100644 index 000000000..48de98b73 --- /dev/null +++ "b/\320\243\321\200\320\276\320\272 5. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3/file03.txt" @@ -0,0 +1,4 @@ +One - 1 +Two - 2 +Three - 3 +Four - 4 \ No newline at end of file diff --git "a/\320\243\321\200\320\276\320\272 5. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3/file03_new.txt" "b/\320\243\321\200\320\276\320\272 5. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3/file03_new.txt" new file mode 100644 index 000000000..3fc3169b0 --- /dev/null +++ "b/\320\243\321\200\320\276\320\272 5. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3/file03_new.txt" @@ -0,0 +1,4 @@ +Один - 1 +Два - 2 +Три - 3 +Четыре - 4 \ No newline at end of file diff --git "a/\320\243\321\200\320\276\320\272 5. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3/task_3.py" "b/\320\243\321\200\320\276\320\272 5. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3/task_3.py" index af14722d2..b68af0035 100644 --- "a/\320\243\321\200\320\276\320\272 5. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3/task_3.py" +++ "b/\320\243\321\200\320\276\320\272 5. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3/task_3.py" @@ -1,10 +1,13 @@ -""" -4) Создать (не программно) текстовый файл со следующим содержимым: -One — 1 -Two — 2 -Three — 3 -Four — 4 -Необходимо написать программу, открывающую файл на чтение и считывающую построчно данные. -При этом английские числительные должны заменяться на русские. -Новый блок строк должен записываться в новый текстовый файл. -""" +replace_dict = {'One': 'Один', 'Two': 'Два', 'Three': 'Три', 'Four': 'Четыре'} + +my_file = open('file03.txt', 'r', encoding='utf-8') +new_file = open('file03_new.txt', 'w', encoding='utf-8') + +for line in my_file: + line = line.split(' - ') + line[0] = replace_dict[line[0]] + line = ' - '.join(line) + new_file.write(line) + +my_file.close() +new_file.close() \ No newline at end of file diff --git "a/\320\243\321\200\320\276\320\272 5. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_4/file04.txt" "b/\320\243\321\200\320\276\320\272 5. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_4/file04.txt" new file mode 100644 index 000000000..876d4b820 --- /dev/null +++ "b/\320\243\321\200\320\276\320\272 5. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_4/file04.txt" @@ -0,0 +1,10 @@ +Иванов 23448 +Петров 14969 +Сидоров 38737 +Барсуков 45554 +Шариков 13456 +Котов 32434 +Пирогов 11234 +Серов 34322 +Аркадьев 18334 +Васильев 24588 \ No newline at end of file diff --git "a/\320\243\321\200\320\276\320\272 5. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_4/task_4.py" "b/\320\243\321\200\320\276\320\272 5. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_4/task_4.py" index fe22885e5..7cf93c9f7 100644 --- "a/\320\243\321\200\320\276\320\272 5. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_4/task_4.py" +++ "b/\320\243\321\200\320\276\320\272 5. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_4/task_4.py" @@ -1,9 +1,15 @@ -""" -3. Создать текстовый файл (не программно), построчно записать фамилии сотрудников -и величину их окладов (не менее 10 строк). Определить, кто из сотрудников имеет оклад менее 20 тыс., -вывести фамилии этих сотрудников. Выполнить подсчет средней величины дохода сотрудников. -Пример файла: +my_file = open('file04.txt', 'r', encoding='utf-8') +content = my_file.readlines() -Иванов 23543.12 -Петров 13749.32 -""" +summary = 0 +names = [] + +for line in content: + line_split = line.split() + summary += float(line_split[1]) + if float(line_split[1]) < 20000.00: + names.append(line_split[0]) +my_file.close() + +print('Names:', ', '.join(names)) +print('Avg:', summary/len(content)) diff --git "a/\320\243\321\200\320\276\320\272 7. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py" "b/\320\243\321\200\320\276\320\272 7. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py" index 6d54d9904..ca0975e03 100644 --- "a/\320\243\321\200\320\276\320\272 7. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py" +++ "b/\320\243\321\200\320\276\320\272 7. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py" @@ -1,30 +1,29 @@ -""" -Задание 1. +class Matrix: + def __init__(self, my_list): + self.my_list = my_list -Реализовать класс Matrix (матрица). Обеспечить перегрузку конструктора класса (метод __init()__), -который должен принимать данные (список списков) для формирования матрицы. -[[], [], []] -Следующий шаг — реализовать перегрузку метода __str()__ для вывода матрицы в привычном виде. + def __str__(self): + for row in self.my_list: + for j in row: + print(f"{j:5}", end="") + print() + return '' -Далее реализовать перегрузку метода __add()__ для реализации операции -сложения двух объектов класса Matrix (двух матриц). -Результатом сложения должна быть новая матрица. -Подсказка: сложение элементов матриц выполнять поэлементно — -первый элемент первой строки первой матрицы складываем -с первым элементом первой строки второй матрицы и т.д. + def __add__(self, other): + for j in range(len(self.my_list)): + for i in range(len(other.my_list[j])): + self.my_list[j][i] = self.my_list[j][i] + other.my_list[j][i] + return Matrix.__str__(self) -Пример: -1 2 3 -4 5 6 -7 8 9 + m = Matrix([[-1, 20], [36, 40], [51, -1]]) + new_m = Matrix([[32, 2], [1, 3], [0, 87]]) + print(m + new_m) -1 2 3 -4 5 6 -7 8 9 + m = Matrix([[-1, 0, 31], [-1, 4, 4], [0, 60, -1]]) + new_m = Matrix([[4, 5, 1], [3, 0, 2] [-1, 4, -7]]) + print(m + new_m) -Сумма матриц: -2 4 6 -8 10 12 -14 16 18 -""" + m = Matrix([[-1, 5, 5, 1], [10, 0, 5, 0]]) + new_m = Matrix([[4, 0, 3, 2], [-2, 3, 2, 1]]) + print(m + new_m) \ No newline at end of file diff --git "a/\320\243\321\200\320\276\320\272 7. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2.py" "b/\320\243\321\200\320\276\320\272 7. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2.py" index e66508458..4a0f5bdc0 100644 --- "a/\320\243\321\200\320\276\320\272 7. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2.py" +++ "b/\320\243\321\200\320\276\320\272 7. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_2.py" @@ -1,27 +1,25 @@ -""" -Задание 2. +from abc import ABC, abstractmethod -Реализовать проект расчета суммарного расхода ткани на производство одежды. +class Clothes(ABC): + def __init__(self, param): + self.param = param -Единственный класс этого проекта — одежда (класс Clothes). + @abstractmethod + def consumption(self): + pass -К типам одежды в этом проекте относятся пальто и костюм. +class Coat(Clothes): + @property + def consumption(self): + return f'Всего для пошива пальто нужно: {self.param / 6.5 + 0.5 :.2f} метров ткани' -У этих типов одежды существуют параметры: -размер (для пальто) и рост (для костюма). Это могут быть обычные числа: v и h, соответственно. +class Costume(Clothes): + @property + def consumption(self): + return f'Всего для пошива костюма нужно: {2 * self.param + 0.3 :.2f} метров ткани' -Для определения расхода ткани по каждому типу одежды использовать формулы: для пальто (v/6.5 + 0.5), -для костюма (2*h + 0.3). Проверить работу этих методов на реальных данных. +coat = Coat(100) +costume = Costume(50) -Реализовать общий подсчет расхода ткани. -Проверить на практике полученные на этом уроке знания: реализовать -абстрактный класс для единственного класса проекта, -проверить на практике работу декоратора @property - -Пример: -Расход ткани на пальто = 1.27 -Расход ткани на костюм = 20.30 -Общий расход ткани = 21.57 - -Два класса: абстрактный и Clothes -""" +print(coat.consumption) +print(costume.consumption) \ No newline at end of file diff --git "a/\320\243\321\200\320\276\320\272 7. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3.py" "b/\320\243\321\200\320\276\320\272 7. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3.py" index 417212ff5..50ea71c4a 100644 --- "a/\320\243\321\200\320\276\320\272 7. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3.py" +++ "b/\320\243\321\200\320\276\320\272 7. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_3.py" @@ -1,102 +1,36 @@ -""" -Задание 3. - -Реализовать программу работы с органическими клетками, состоящими из ячеек. - -Необходимо создать класс Клетка (Cell). - -В его конструкторе инициализировать параметр (quantity), -соответствующий количеству ячеек клетки (целое число). - -В классе должны быть реализованы методы перегрузки арифметических операторов: -сложение (add()), -вычитание (sub()), -умножение (mul()), -деление (truediv()). - -Данные методы должны применяться только к клеткам и выполнять увеличение, -уменьшение, умножение и целочисленное (с округлением до целого) деление клеток, соответственно. - -Сложение. Объединение двух клеток. -При этом число ячеек общей клетки должно равняться сумме ячеек исходных двух клеток. - -Вычитание. Участвуют две клетки. -Операцию необходимо выполнять только если разность количества ячеек двух клеток больше нуля, -иначе выводить соответствующее сообщение. - -Умножение. Создается общая клетка из двух. -Число ячеек общей клетки определяется как произведение количества ячеек этих двух клеток. - -Деление. Создается общая клетка из двух. -Число ячеек общей клетки определяется как целочисленное деление количества ячеек этих двух клеток. - - -** - По желанию: В классе необходимо реализовать метод make_order(), принимающий экземпляр класса и -количество ячеек в ряду. Данный метод позволяет организовать ячейки по рядам. -Метод должен возвращать строку вида *****\n*****\n*****..., -где количество ячеек между \n равно переданному аргументу. -Если ячеек на формирование ряда не хватает, то в последний ряд записываются все оставшиеся. - -Например, количество ячеек клетки равняется 12, количество ячеек в ряду — 5. -Тогда метод make_order() вернет строку: *****\n*****\n**. -Или, количество ячеек клетки равняется 15, количество ячеек в ряду — 5. -Тогда метод make_order() вернет строку: *****\n*****\n*****. -Подсказка: подробный список операторов для перегрузки доступен по ссылке. - ------------------------------------------------------------------------------- -Пример клиентского кода: -print("Создаем объекты клеток") -cell1 = Cell(30) -cell2 = Cell(25) - -cell3 = Cell(10) -cell4 = Cell(15) - -print() - -print("Складываем") -print(cell1 + cell2) - -print() - -print("Вычитаем") -print(cell2 - cell1) -print(cell4 - cell3) - -print() - -print("Умножаем") -print(cell2 * cell1) - -print() - -print("Делим") -print(cell1 / cell2) - -print() - -print("Организация ячеек по рядам") -print(cell1.make_order(5)) -print(cell2.make_order(10)) - ------------------------------------------------------------------------------- -Результаты: -Создаем объекты клеток - -Складываем -Сумма клеток = (55) - -Вычитаем -Разность отрицательна, поэтому операция не выполняется -Разность клеток = (5) - -Умножаем -Умножение клеток = (750) - -Делим -Деление клеток = (1) - -Организация ячеек по рядам -*****\n *****\n *****\n *****\n *****\n *****\n -**********\n **********\n ***** -""" +class Cell: + def __init__(self, quantity): + self.quantity = int(quantity) + + def __add__(self, other): + if isinstance(other, Cell): + return self.quantity + other.quantity + + def __sub__(self, other): + if isinstance(other, Cell) and self.quantity - other.quantity > 0: + return self.quantity - other.quantity + + def __truediv__(self, other): + if isinstance(other, Cell): + return self.quantity // other.quantity + + def __mul__(self, other): + if isinstance(other, Cell): + return self.quantity * other.quantity + + def make_order(self, row): + result = '' + for i in range(int(self.quantity / row)): + result += '*' * row + '\n' + result += '*' * (self.quantity % row) + '\n' + return result + +cell_1 = Cell(36) +cell_2 = Cell(5) + +print('Сложение:', cell_1 + cell_2) +print('Вычитание:', cell_1 - cell_2) +print('Умножение:', cell_1 * cell_2) +print('Деление:', cell_1 / cell_2) +print('') +print(cell_1.make_order(10))