diff --git a/task_1_lesson2.py b/task_1_lesson2.py new file mode 100644 index 0000000..c8c2c58 --- /dev/null +++ b/task_1_lesson2.py @@ -0,0 +1,8 @@ +# Задание №1 +# Создать список и заполнить его элементами различных типов данных. Реализовать скрипт +# проверки типа данных каждого элемента. Использовать функцию type() для проверки типа. +# Элементы списка можно не запрашивать у пользователя, а указать явно, в программе. + +my_list = [4, 14.8, 'яблоко', ['v', 4], (5, 'a'), {'Sername':'Ivanov', 'name':'Petr'}, {'a', 'b', 'c'}, None, True, False] +for el in my_list: + print(el, type(el)) diff --git a/task_2_lesson2.py b/task_2_lesson2.py new file mode 100644 index 0000000..a598a6c --- /dev/null +++ b/task_2_lesson2.py @@ -0,0 +1,22 @@ +# Задание №2 +# Для списка реализовать обмен значений соседних элементов. Значениями обмениваются +# элементы с индексами 0 и 1, 2 и 3 и т. д. При нечётном количестве элементов последний +# сохранить на своём месте. Для заполнения списка элементов нужно использовать функцию +# input(). + +number_elements = int(input('Введите количество элементов списка: ')) +input_list = [] +i = 0 +while i <= (number_elements - 1): + el = input(f'Введите {i} элемент списка: ') + input_list.append(el) + i += 1 +print('Список пользователя: ', input_list) + +i = 0 +while i <= (number_elements // 2): + el = input_list[i + 1] + input_list.pop(i+1) + input_list.insert(i, el) + i += 2 +print('Измененный список : ', input_list) diff --git a/task_3_lesson2.py b/task_3_lesson2.py new file mode 100644 index 0000000..1bb5c39 --- /dev/null +++ b/task_3_lesson2.py @@ -0,0 +1,37 @@ +# Задание №3 +# Пользователь вводит месяц в виде целого числа от 1 до 12. Сообщить, к какому времени года +# относится месяц (зима, весна, лето, осень). Напишите решения через list и dict. + +# реализация через list +seasons = ['зима', 'весна', 'лето', 'осень'] +month = int(input('Введите месяц в виде целого числа от 1 до 12: ')) +while month > 12 or month < 1: + print('Не правильно введен месяц!!!') + month = int(input('Введите месяц в виде целого числа от 1 до 12: ')) +else: + if month == 12: + print(f'Месяц с номером {month} относится к времени года: {seasons[0]}\n') + else: + print(f'Месяц с номером {month} относится к времени года: {seasons[month // 3]}\n') +print('Реализация через Dict\n') + +# реализация через dict +seasons = { + 1: 'Зима', + 2: 'Зима', + 3: 'Весна', + 4: 'Весна', + 5: 'Весна', + 6: 'Лето', + 7: 'Лето', + 8: 'Лето', + 9: 'Осень', + 10: 'Осень', + 11: 'Осень', + 12: 'Зима'} +month = int(input('Введите месяц в виде целого числа от 1 до 12: ')) +while month > 12 or month < 1: + print('Не правильно введен месяц!!!') + month = int(input('Введите месяц в виде целого числа от 1 до 12: ')) +else: + print(f'Месяц с номером {month} относится к времени года: {seasons[month]}') diff --git a/task_4_lesson2.py b/task_4_lesson2.py new file mode 100644 index 0000000..d3effc6 --- /dev/null +++ b/task_4_lesson2.py @@ -0,0 +1,14 @@ +# Задание №4 +# Пользователь вводит строку из нескольких слов, разделённых пробелами. Вывести каждое +# слово с новой строки. Строки нужно пронумеровать. Если слово длинное, выводить только +# первые 10 букв в слове. + +string = input('Введите строку из нескольких слов разделенных пробелом: ') +list_words = string.split() +length_list = len(list_words) +i = 0 +while i < length_list: + word = list_words[i] + list_words[i] = word[0:10] + print(f'{i+1}. {list_words[i]}') + i += 1 diff --git a/task_5_lesson2.py b/task_5_lesson2.py new file mode 100644 index 0000000..eaee0b3 --- /dev/null +++ b/task_5_lesson2.py @@ -0,0 +1,24 @@ +# Задание №5 +# Реализовать структуру «Рейтинг», представляющую собой набор натуральных чисел, который +# не возрастает. У пользователя нужно запрашивать новый элемент рейтинга. Если в рейтинге +# существуют элементы с одинаковыми значениями, то новый элемент с тем же значением +# должен разместиться после них. +# Подсказка. Например, набор натуральных чисел: 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]. + +my_list = [7, 5, 3, 3, 2] +number = int(input('Введите число: ')) +print(f'Рейтинг до ввода: {my_list}') +number_rep = my_list.count(number) +if number_rep > 0: + i = my_list.index(number) + my_list.insert(i+number_rep, number) +else: + if number > my_list[0]: + my_list.insert(0, number) + else: + my_list.append(number) +print(f'Рейтинг после ввода: {my_list}') diff --git a/task_6_lesson2.py b/task_6_lesson2.py new file mode 100644 index 0000000..cb39c7f --- /dev/null +++ b/task_6_lesson2.py @@ -0,0 +1,46 @@ +# Задание №6 +# *Реализовать структуру данных «Товары». Она должна представлять собой список кортежей. +# Каждый кортеж хранит информацию об отдельном товаре. В кортеже должно быть два +# элемента — номер товара и словарь с параметрами, то есть характеристиками товара: +# название, цена, количество, единица измерения. Структуру нужно сформировать программно, +# запросив все данные у пользователя. +# Пример готовой структуры: +# [ +# (1, {“название”: “компьютер”, “цена”: 20000, “количество”: 5, “eд”: “шт.”}), +# (2, {“название”: “принтер”, “цена”: 6000, “количество”: 2, “eд”: “шт.”}), +# (3, {“название”: “сканер”, “цена”: 2000, “количество”: 7, “eд”: “шт.”}) +# ] +# Нужно собрать аналитику о товарах. Реализовать словарь, в котором каждый ключ — +# характеристика товара, например, название. Тогда значение — список +# значений-характеристик, например, список названий товаров. +# Пример: +# { +# “название”: [“компьютер”, “принтер”, “сканер”], +# “цена”: [20000, 6000, 2000], +# “количество”: [5, 2, 7], +# “ед”: [“шт.”] +# } + +products = [] +analysis_products = dict({}) +while True: + products.append( + (int(input('Введите номер товара: ')), dict({ + 'название': input('Введите название: '), + 'цена': float(input('Введите цену: ')), + 'количество': int(input('Введите количество: ')), + 'eд': input('Введите единцы измерения: '), + })) + ) + if input('Добавить еще один товар? (да/нет): ') == 'нет': + break +print(f'Структура товаров: {products}') + +for product in products: + for key, value in product[-1].items(): + if key in analysis_products: + if value not in analysis_products.get(key): + analysis_products.get(key).append(value) + else: + analysis_products.update({key: [value]}) +print(f'Аналитика товаров: {analysis_products}')