From 5a790391b5e03462fc24cc2af98c520d8f1d639d Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Sat, 11 Jul 2020 22:27:11 +0300 Subject: [PATCH 01/13] Init task-1 --- task-1.py | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 task-1.py diff --git a/task-1.py b/task-1.py new file mode 100644 index 0000000..c31585d --- /dev/null +++ b/task-1.py @@ -0,0 +1,6 @@ +""" +Задание: +Создать список и заполнить его элементами различных типов данных. +Реализовать скрипт проверки типа данных каждого элемента. Использовать функцию type() для проверки типа. +Элементы списка можно не запрашивать у пользователя, а указать явно, в программе. +""" \ No newline at end of file From 2934fa8e237244e83695801e6dbe09ae1d059288 Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Sat, 11 Jul 2020 22:33:51 +0300 Subject: [PATCH 02/13] Comp task-1 --- task-1.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/task-1.py b/task-1.py index c31585d..4080e59 100644 --- a/task-1.py +++ b/task-1.py @@ -3,4 +3,13 @@ Создать список и заполнить его элементами различных типов данных. Реализовать скрипт проверки типа данных каждого элемента. Использовать функцию type() для проверки типа. Элементы списка можно не запрашивать у пользователя, а указать явно, в программе. -""" \ No newline at end of file +""" + +#Создать список и заполнить его элементами различных типов данных. +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 From e01c72ad4fed6bab191ee008757652e21ab381e9 Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Sat, 11 Jul 2020 22:34:50 +0300 Subject: [PATCH 03/13] Init task-2 --- task-2.py | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 task-2.py diff --git a/task-2.py b/task-2.py new file mode 100644 index 0000000..c9a43b9 --- /dev/null +++ b/task-2.py @@ -0,0 +1,6 @@ +""" +Задание: +Для списка реализовать обмен значений соседних элементов, т.е. Значениями обмениваются элементы +с индексами 0 и 1, 2 и 3 и т.д. При нечетном количестве элементов последний сохранить на своем месте. +Для заполнения списка элементов необходимо использовать функцию input(). +""" \ No newline at end of file From 536f24febabd980f78f07ff2dc3d22df33a6cac7 Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Sat, 11 Jul 2020 22:54:50 +0300 Subject: [PATCH 04/13] Comp task-2 --- task-2.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/task-2.py b/task-2.py index c9a43b9..714a1b1 100644 --- a/task-2.py +++ b/task-2.py @@ -3,4 +3,20 @@ Для списка реализовать обмен значений соседних элементов, т.е. Значениями обмениваются элементы с индексами 0 и 1, 2 и 3 и т.д. При нечетном количестве элементов последний сохранить на своем месте. Для заполнения списка элементов необходимо использовать функцию input(). -""" \ No newline at end of file +""" + +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): + tmp = the_list[2 * i] + the_list[2 * i] = the_list[2 * i + 1] + the_list[2 * i + 1] = tmp + +print("Ваш список после обмена соседних элементов: {}".format(the_list)) From d31ec1f6ad1e2bf2cd54de088eba623c1e440fab Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Sat, 11 Jul 2020 23:02:54 +0300 Subject: [PATCH 05/13] Fix task-2 --- task-2.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/task-2.py b/task-2.py index 714a1b1..a4d8762 100644 --- a/task-2.py +++ b/task-2.py @@ -15,8 +15,6 @@ print("Ваш список: {}".format(the_list)) for i in range(0, len(the_list) // 2): - tmp = the_list[2 * i] - the_list[2 * i] = the_list[2 * i + 1] - the_list[2 * i + 1] = tmp + the_list[2 * i], the_list[2 * i + 1] = the_list[2 * i + 1], the_list[2 * i] print("Ваш список после обмена соседних элементов: {}".format(the_list)) From a0399682c461a8f78ba81b9e2c1b42e17a46e4ee Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Sat, 11 Jul 2020 23:03:11 +0300 Subject: [PATCH 06/13] Init task-3 --- task-3.py | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 task-3.py diff --git a/task-3.py b/task-3.py new file mode 100644 index 0000000..0cbd53a --- /dev/null +++ b/task-3.py @@ -0,0 +1,6 @@ +""" +Задание: +Пользователь вводит месяц в виде целого числа от 1 до 12. +Сообщить к какому времени года относится месяц (зима, весна, лето, осень). Напишите решения через list и через dict. +""" + From a7657e168562bb4f87760652e43a582d4573b8bd Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Sat, 11 Jul 2020 23:22:04 +0300 Subject: [PATCH 07/13] Comp task-3 --- task-3.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/task-3.py b/task-3.py index 0cbd53a..863b554 100644 --- a/task-3.py +++ b/task-3.py @@ -4,3 +4,21 @@ Сообщить к какому времени года относится месяц (зима, весна, лето, осень). Напишите решения через 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])) + From b6d3578178264d4b6471d27f356955b994d29076 Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Sat, 11 Jul 2020 23:24:28 +0300 Subject: [PATCH 08/13] Init task-4 --- task-4.py | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 task-4.py diff --git a/task-4.py b/task-4.py new file mode 100644 index 0000000..930f04a --- /dev/null +++ b/task-4.py @@ -0,0 +1,6 @@ +""" +Задание: +Пользователь вводит строку из нескольких слов, разделённых пробелами. +Вывести каждое слово с новой строки. Строки необходимо пронумеровать. +Если в слово длинное, выводить только первые 10 букв в слове. +""" \ No newline at end of file From cc5301059efbfd3b7b1b95120e56c79ff592b7a1 Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Sat, 11 Jul 2020 23:30:22 +0300 Subject: [PATCH 09/13] Comp task-4 --- task-4.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/task-4.py b/task-4.py index 930f04a..808ff78 100644 --- a/task-4.py +++ b/task-4.py @@ -3,4 +3,14 @@ Пользователь вводит строку из нескольких слов, разделённых пробелами. Вывести каждое слово с новой строки. Строки необходимо пронумеровать. Если в слово длинное, выводить только первые 10 букв в слове. -""" \ No newline at end of file +""" + +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])) From ee665f3de134c130c6ae5833fe06a4b5dff85a5c Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Sat, 11 Jul 2020 23:31:12 +0300 Subject: [PATCH 10/13] Int task-5 --- task-5.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 task-5.py diff --git a/task-5.py b/task-5.py new file mode 100644 index 0000000..1029e6e --- /dev/null +++ b/task-5.py @@ -0,0 +1,12 @@ +""" +Задание: +Реализовать структуру «Рейтинг», представляющую собой не возрастающий набор натуральных чисел. +У пользователя необходимо запрашивать новый элемент рейтинга. +Если в рейтинге существуют элементы с одинаковыми значениями, +то новый элемент с тем же значением должен разместиться после них. +Подсказка. Например, набор натуральных чисел: 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]. +""" \ No newline at end of file From 593bff63823faf475d02ebfb39f1dc702e1ddaa2 Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Sun, 12 Jul 2020 09:40:18 +0300 Subject: [PATCH 11/13] Comp task-5 --- task-5.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/task-5.py b/task-5.py index 1029e6e..bfe243a 100644 --- a/task-5.py +++ b/task-5.py @@ -9,4 +9,18 @@ Пользователь ввел число 8. Результат: 8, 7, 5, 3, 3, 2. Пользователь ввел число 1. Результат: 7, 5, 3, 3, 2, 1. Набор натуральных чисел можно задать непосредственно в коде, например, my_list = [7, 5, 3, 3, 2]. -""" \ No newline at end of file +""" + +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) From 0add45f55a83bb83f15f70b96f77af2a957b5271 Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Sun, 12 Jul 2020 09:42:31 +0300 Subject: [PATCH 12/13] Init task-6 --- task-6.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 task-6.py diff --git a/task-6.py b/task-6.py new file mode 100644 index 0000000..d6c3466 --- /dev/null +++ b/task-6.py @@ -0,0 +1,22 @@ +""" +Задание: +*Реализовать структуру данных «Товары». Она должна представлять собой список кортежей. Каждый кортеж хранит +информацию об отдельном товаре. В кортеже должно быть два элемента — номер товара и словарь с параметрами +(характеристиками товара: название, цена, количество, единица измерения). С +труктуру нужно сформировать программно, т.е. запрашивать все данные у пользователя. +Пример готовой структуры: +[ + (1, {“название”: “компьютер”, “цена”: 20000, “количество”: 5, “eд”: “шт.”}), + (2, {“название”: “принтер”, “цена”: 6000, “количество”: 2, “eд”: “шт.”}), + (3, {“название”: “сканер”, “цена”: 2000, “количество”: 7, “eд”: “шт.”}) +] +Необходимо собрать аналитику о товарах. Реализовать словарь, в котором каждый ключ — характеристика товара, +например название, а значение — список значений-характеристик, например список названий товаров. +Пример: +{ + “название”: [“компьютер”, “принтер”, “сканер”], + “цена”: [20000, 6000, 2000], + “количество”: [5, 2, 7], + “ед”: [“шт.”] +} +""" \ No newline at end of file From b932437c2278c574dbfbb63d6a0046d3d95247f0 Mon Sep 17 00:00:00 2001 From: Andrey Yushkov Date: Tue, 14 Jul 2020 15:51:40 +0300 Subject: [PATCH 13/13] comp task-6 --- task-6.py | 46 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/task-6.py b/task-6.py index d6c3466..793988f 100644 --- a/task-6.py +++ b/task-6.py @@ -19,4 +19,48 @@ “количество”: [5, 2, 7], “ед”: [“шт.”] } -""" \ No newline at end of file +""" + +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