diff --git a/task-1.py b/task-1.py new file mode 100644 index 0000000..4080e59 --- /dev/null +++ b/task-1.py @@ -0,0 +1,15 @@ +""" +Задание: +Создать список и заполнить его элементами различных типов данных. +Реализовать скрипт проверки типа данных каждого элемента. Использовать функцию type() для проверки типа. +Элементы списка можно не запрашивать у пользователя, а указать явно, в программе. +""" + +#Создать список и заполнить его элементами различных типов данных. +the_list = [True, 1, 1.0, "One", (), {}] + +print("List: {}".format(the_list)) + +#Реализовать скрипт проверки типа данных каждого элемента. Использовать функцию type() для проверки типа. +for element in the_list: + print("'{}' is {}".format(element, type(element))) \ No newline at end of file diff --git a/task-2.py b/task-2.py new file mode 100644 index 0000000..a4d8762 --- /dev/null +++ b/task-2.py @@ -0,0 +1,20 @@ +""" +Задание: +Для списка реализовать обмен значений соседних элементов, т.е. Значениями обмениваются элементы +с индексами 0 и 1, 2 и 3 и т.д. При нечетном количестве элементов последний сохранить на своем месте. +Для заполнения списка элементов необходимо использовать функцию input(). +""" + +input_string = input("Введите числа, используя пробел в качестве разделителя. ") +the_list = input_string.split(" ") + +# Удаляем элементы содержащие пустую строку +for i in range(the_list.count("")): + the_list.remove("") + +print("Ваш список: {}".format(the_list)) + +for i in range(0, len(the_list) // 2): + the_list[2 * i], the_list[2 * i + 1] = the_list[2 * i + 1], the_list[2 * i] + +print("Ваш список после обмена соседних элементов: {}".format(the_list)) diff --git a/task-3.py b/task-3.py new file mode 100644 index 0000000..863b554 --- /dev/null +++ b/task-3.py @@ -0,0 +1,24 @@ +""" +Задание: +Пользователь вводит месяц в виде целого числа от 1 до 12. +Сообщить к какому времени года относится месяц (зима, весна, лето, осень). Напишите решения через list и через dict. +""" + +year_list = ["зима", "весна", "лето", "осень"] +year_dict = { + 12: "зима", 3: "весна", 6: "лето", 9: "осень", + 1: "зима", 4: "весна", 7: "лето", 10: "осень", + 2: "зима", 5: "весна", 8: "лето", 11: "осень" +} + +# Считываем и проверяем входные параметры +num_of_month = int(input("Ваш месяц: ")) +num_of_month = num_of_month if 0 < num_of_month < 13 else 1 + +# Находим индекс месяца +index = num_of_month // 3 +index = index if index != 4 else 0 + +print("Месяц относиться к {}".format(year_list[index])) +print("Месяц относиться к {}".format(year_dict[num_of_month])) + diff --git a/task-4.py b/task-4.py new file mode 100644 index 0000000..808ff78 --- /dev/null +++ b/task-4.py @@ -0,0 +1,16 @@ +""" +Задание: +Пользователь вводит строку из нескольких слов, разделённых пробелами. +Вывести каждое слово с новой строки. Строки необходимо пронумеровать. +Если в слово длинное, выводить только первые 10 букв в слове. +""" + +input_string = input("Введите слова, используя пробел в качестве разделителя. ") +words = input_string.split(" ") + +# Удаляем элементы содержащие пустую строку +for i in range(words.count("")): + words.remove("") + +for i in enumerate(words, 1): + print("{}: {}".format(i[0], i[1][0:10])) diff --git a/task-5.py b/task-5.py new file mode 100644 index 0000000..bfe243a --- /dev/null +++ b/task-5.py @@ -0,0 +1,26 @@ +""" +Задание: +Реализовать структуру «Рейтинг», представляющую собой не возрастающий набор натуральных чисел. +У пользователя необходимо запрашивать новый элемент рейтинга. +Если в рейтинге существуют элементы с одинаковыми значениями, +то новый элемент с тем же значением должен разместиться после них. +Подсказка. Например, набор натуральных чисел: 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("Введите число ")) + +if my_list[-1] > number: + my_list.append(number) +else: + for i in range(len(my_list)): + if number >= my_list[i]: + my_list.insert(i, number) + break + +print(my_list) diff --git a/task-6.py b/task-6.py new file mode 100644 index 0000000..793988f --- /dev/null +++ b/task-6.py @@ -0,0 +1,66 @@ +""" +Задание: +*Реализовать структуру данных «Товары». Она должна представлять собой список кортежей. Каждый кортеж хранит +информацию об отдельном товаре. В кортеже должно быть два элемента — номер товара и словарь с параметрами +(характеристиками товара: название, цена, количество, единица измерения). С +труктуру нужно сформировать программно, т.е. запрашивать все данные у пользователя. +Пример готовой структуры: +[ + (1, {“название”: “компьютер”, “цена”: 20000, “количество”: 5, “eд”: “шт.”}), + (2, {“название”: “принтер”, “цена”: 6000, “количество”: 2, “eд”: “шт.”}), + (3, {“название”: “сканер”, “цена”: 2000, “количество”: 7, “eд”: “шт.”}) +] +Необходимо собрать аналитику о товарах. Реализовать словарь, в котором каждый ключ — характеристика товара, +например название, а значение — список значений-характеристик, например список названий товаров. +Пример: +{ + “название”: [“компьютер”, “принтер”, “сканер”], + “цена”: [20000, 6000, 2000], + “количество”: [5, 2, 7], + “ед”: [“шт.”] +} +""" + +items = [] + +properties = { + "название": [], + "цена": [], + "количество": [], + "ед": [] +} + +item_index = 1 + +print("Введите название, цену, кол-во, ед. измерения через пробел. \n" + + " Для заверения ввеода оставте пустую строку и нажмиье Enter") + +while True: + input_string = input() + item = input_string.split(" ") + + # Удаляем элементы содержащие пустую строку + for i in range(item.count("")): + item.remove("") + + if len(item) == 0: + break + + if len(item) != 4: + continue + + items.append((item_index, { + "название": item[0], + "цена": item[1], + "количество": item[2], + "ед": item[3] + })) + + item_index += 1 + +for item in items: + for key, value in item[1].items(): + properties[key].append(value) + +print("Введённые данные {}".format(items)) +print("Словарь {}".format(properties)) \ No newline at end of file