Skip to content

Adamson-Kamila/PythonHomeWork3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Task2:

Блок else относится не к самому циклу, а к оператору break.

Task3:

Несмотря на то, что задача относится к категории "без звездочки", она заставила меня поломать голову, как к ней подступиться. Очень хотелось "забуриться" в неведомые глубины, но к сожалению не хватило опыта. Возможно, есть более оптимизированный вариант написания этой программы, буду рада ознакомиться с ним.

И так:

Условие: Реализовать структуру данных «Товары». Она должна представлять собой список кортежей. Каждый кортеж хранит информацию об отдельном товаре. В кортеже должно быть два элемента — номер товара и словарь с параметрами (характеристиками товара: название, цена, количество, единица измерения). Структуру нужно сформировать программно, т.е. запрашивать все данные у пользователя.

Пример готовой структуры: [ (1, {“название”: “компьютер”, “цена”: 20000, “количество”: 5, “eд”: “шт.”}), (2, {“название”: “принтер”, “цена”: 6000, “количество”: 2, “eд”: “шт.”}), (3, {“название”: “сканер”, “цена”: 2000, “количество”: 7, “eд”: “шт.”}) ] Далее необходимо собрать аналитику о товарах. Реализовать словарь, в котором каждый ключ — характеристика товара, например название, а значение — список значений-характеристик, например список названий товаров. Пример: { “названия”: [“компьютер”, “принтер”, “сканер”], “цены”: [20000, 6000, 2000], “количества”: [5, 2, 7], “ед”: [“шт.”] }

Написание кода для этого условия похоже на создание артефакта из сказки про Кощея бессмертного, где в сундуке заяц, в зайце утка, в утке яйцо, а в яйце игла. Для начала я создала пустой массив - dns [], в который необходимо будет поместить кортеж - key (), а в него словарь - store {}. Потом попросила пользователя ввести количество запросов - count - необходимых нам данных, то есть сколько раз будем запрашивать у пользователя "наименование, цена, количество, единица". Полученные данные от пользователя помещаю в словарь store{}, в свою очередь словарь помещается в кортеж. Так как в кортеже элементы имеют индексы, и индексация начинается с нуля, и при выводе будет "видимый "0, а нам нужна нумерация с цифры 1, то мы в условии key() пишем i+1. Список dns заполнен.

Следующий шаг - собрать и объединить значения под ключами - "название, цена, количество, единица" Создаем новый пустой словарь - new_store, в нем заранее размещаем наши ключи - "название, цена, количество, единица" По итогу у нас 4 ключа. Каждый из этих ключей имеет значения. Чтобы их извлечь, значения, для них мы создаем пустые 4 массива - arr_name[], arr_price[], arr_quantity[], arr_measure[]. Запускаем цикл for, где i будет совершать итерации по массиву dns, вынимая нужные нам значения и размещая их в созданные массивы. Ниже будут расписаны пошаговые действия, потом я их сократила. Показываю их для наглядности своего решения.

Запускаю цикл for

for i in range(count):

1 - ый шаг:

Извлекаем из массива кортеж со словарем. Для этого создаем временную переменную temp1. Присваиваем ей значение находящийся в массиве: кортеж со словарем.

temp1 = dns[i]

print(temp1)

2 - ой шаг:

Извлекаем словарь из кортежа. Для этого создаем переменную temp2, которой присвоим значение кортежа под индексом 1. Под индексом 1 у нас находится словарь.

temp2 = temp1[1]

print(temp2)

3 - ий шаг:

Выводим значения, ключей которых мы укажем, например 'название'. Создаем переменную temp3 и присваиваем ей значения, находящиеся под ключом 'название'. dns[i][1]['название'] - список dns [], i - изменяемый показатель (1,2,3), собирает данные с кортежа (в кортеже три словаря), 1 - элемент кортежа, находящийся под индексом 1, соответственно ['название'] - обращаемся к значениям, находящихся под этим ключом.

temp3 = dns[i][1]['название']

print(temp3)

Все вышеописанные шаги сокращаю до двух строчек кода, но для одного ключа. То есть, будет четыре повтора (по количеству ключей).

В созданные пустые списки (arr_name[], arr_price[], arr_quantity[], arr_measure[]) я буду добавлять необходимые значения, а второй строкой кода эти списки будут размещаться в словаре new_store{}.

arr.append(dns[i][1]['название'])

new_store['название'] = arr

print(new_store)

Task 20*:

Очень понравилась эта задача, скорее всего из-за своей простоты. Решение реализовала через словарь.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages