Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 14.11.2019
Сообщений: 30

Добавить словарь и поиск в коде

09.02.2020, 10:08. Показов 2356. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
toys = [] #Список где хранятся товары
 
choice = None #Пункт меню
while choice != "0": #Пока выбор не равен "0"
 
    print(
    """
    Магазин игрушек
    
    0 - Выход
    1 - Список товаров
    2 - Добавить товар
    3 - Поиск товара
    """
    )
    
    choice = input("Ваш выбор: ")
    print()
 
    # Выход
    if choice == "0":
        print("До свидания.")
 
    # Вывод списка товаров
    elif choice == "1":
        print("Список товаров:\n")
        print("Код:\tНаименование:\tФирма-производитель:\tВозр.ограничение:\tЦена:")
        for entry in toys:
            code, name, firm, age, price = entry
            print(code, "|", name,"|", firm,"|", age,"|", price, "\t")
 
    # Добавление товара
    elif choice == "2":
        name = input("Введите наименование товара: ") #Наименование
        code = int(input("Введите код товара: "))
        firm = input("Введите фирму-производитель: ")
        age = int(input("Введите возраст.ограничение: "))
        price = int(input("Введите стоимость товара: "))
        entry = (code, name, firm, age, price)
        toys.append(entry) #Добавление к концу строки
        toys.sort(reverse=True) #Сортировка по убыванию
 
    #Поиск товара
    elif choice =="3":
        ????????????????????
        
    # В случае другого выбора
    else:
        print("Извните, но", choice, "не является корректным пунктом.")
Доброго времени суток! Сделал вот такой код с добавлением товара, но необходимо добавить сюда словари и добавить поиск по следующим параметрам:
1) Поиск по названию товара
2) Поиск по фирме-производителю
3) Поиск по минимальной и максимальной цене.

Никак не могу разобраться с этим! Буду безмерно благодарен, если кто поможет!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.02.2020, 10:08
Ответы с готовыми решениями:

Как лучше добавить в словарь другой словарь?
Добрый день! Как лучше добавить вложенный словарь new_dict в stat_obj? data = {'stat_obj':''} data = {'E-1':{'name':'E-1'}} ...

Алфавитно-частотный словарь - исправить ошибки в коде
Столкнулся с проблемой, взял код из учебника, а он в упрямую не работает, я и понять не могу в чем дело(. Объясните, пожалуйста. ...

Добавить операции в словарь
Дан словарь как добавить возможность (без преобразования словаря обратно в список): 1)Увеличить возраст конкретного студента на 1. Поиск...

6
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,307
09.02.2020, 10:45
Strixez, а классом не вариант? можно и словарем где ключ название товара а значение список параметров
0
0 / 0 / 0
Регистрация: 14.11.2019
Сообщений: 30
09.02.2020, 11:09  [ТС]
Semen-Semenich, Но как оформить сам код для словаря? Я новичок, поэтому не разобрался ещё в этом. Ключ - название товара, но изначально у меня нет товара. Как мне сделать так, чтобы человек добавил 3 товара и вместе с этим словарь заполнился?
0
243 / 178 / 73
Регистрация: 17.10.2018
Сообщений: 749
09.02.2020, 11:18
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# структура описания товара
tmp_characteristic = {'название': None, 'цена': None, 'количество': None, 'ед.изм.': None}
# база данных товаров
product_database = [
    (1, {'название': 'компьютер', 'цена': 20000, 'количество': 5, 'ед.изм.': 'шт.'}),
    (2, {'название': 'принтер', 'цена': 6000, 'количество': 2, 'ед.изм.': 'шт.'}),
    (3, {'название': 'сканер', 'цена': 2000, 'количество': 7, 'ед.изм.': 'шт.'})
]
 
# цикл ввода нового товара
while True:
    if input('Для перехода к аналитике введите "0", для ввода нового товара - нажмите Enter ') == '0':
        break
    else:
        tmp_characteristic['название'] = input('Введите название товара: ')
        tmp_characteristic['цена'] = int(input('Введите стоимость товара: '))
        tmp_characteristic['количество'] = int(input('Введите количество товара: '))
        tmp_characteristic['ед.изм.'] = input('Введите единицу измерения товара: ')
        tmp_as_tuple = len(product_database) + 1, tmp_characteristic
        product_database.append(tmp_as_tuple)
Примерно так
0
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,307
09.02.2020, 12:43
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
roduct_database = [] #Список где хранятся товары
 
price_list =[] # будем хранить цены товаров что бы потом не преребирать весь список
 
info_data = (
"Введите наименование товара: ",
"Введите код товара: ",
"Введите фирму-производитель: ",
"Введите возраст.ограничение: ",
"Введите стоимость товара: "
)
 
searh_param = (
'Поиск по названию товара -1',
'Поиск по фирме-производителю - 2',
'Поиск по минимальной, максимальной цене - 3',
)
 
class Merchandise:
    def __init__ (self, name, code, manuf, age, price): #
        self.name = name
        self.code = code
        self.manuf = manuf
        self.age = int(age)
        self.price = int(price)
 
    def __str__(self):
        return f'{self.code} |{self.name}|{self.manuf}|{self.age}|{self.price}\t'
 
    def pric(self):
        return self.price
 
    def manuf_(self):
        return self.manuf
        
    def name_(self):
        return self.name
            
 
print('Магазин игрушек\n')
while True:
    choice = input('\
0 - Выход \n\
1 - Список товаров \n\
2 - Добавить товар \n\
3 - Поиск товара \n\
Ваш выбор:  '
                   )
    print()
    if choice == "0":
        print("До свидания.")
        break
    
 
    # Вывод списка товаров
    elif choice == "1":
        print("Список товаров:\n")
        print("Код:\tНаименование:\tФирма-производитель:\tВозр.ограничение:\tЦена:")
        for entry in toys:
            print(entry)
 
    # Добавление товара
    elif choice == "2":
        entry = [input(f'{info}') for info in info_data]
        price_list.append(int(entry[4]))
        product_database.append(Merchandise(*entry))
 
    #Поиск товара
    elif choice =="3":
        print(*searh_param,sep = '\n')
        param = int(input('Ваш выбор:  '))
        if param == 1:
            data = input('Название: ')
            for merch in product_database:
                if name == merch.name_():
                    print(merch)
        elif param == 2:
            data = input('производитель: ')
            for merch in product_database:
                if name == merch.manuf_():
                    print(merch)
        elif param == 3:
            min_price = min(price_list)
            max_price = max(price_list)
            for merch in product_database:
                if min_price == merch.pric():
                    print('минимальная цена', merch)
                elif max_price == merch.pric():
                    print('максимальная цена', merch)
 
        
    # В случае другого выбора
    else:
        print("Извините, но", choice, "не является корректным пунктом.")
не проверял может где что упустил
0
0 / 0 / 0
Регистрация: 14.11.2019
Сообщений: 30
09.02.2020, 12:59  [ТС]
Semen-Semenich, Появляются ошибки следующего типа в поиске по названию:
Python
1
2
if name == merch.name_():
NameError: name 'name' is not defined
При выводе списка :
Python
1
2
for entry in toys:
NameError: name 'toys' is not defined
Также ошибки при поиске по фирме производителю. В поиске по минимальной-максимальной цене есть только минимальная цена((
0
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,307
09.02.2020, 13:10
59 строку изменить с
Python
1
for entry in toys
: на
Python
1
for entry in product_database:
Добавлено через 7 минут
Strixez, 73 строка меняем на
Python
1
 name = input('Название: ')
78 на
Python
1
name = input('производитель: ')
еще сейчас тестил почему то перепутан вывод мин и макс цены. буду посмотреть.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.02.2020, 13:10
Помогаю со студенческими работами здесь

Добавить элементы в словарь
Доброго времени суток, вопрос в следующем, как в конструкторе добавить в KeyValuePair элементы category и probability private class...

Словарь. Ключ 1,2,3 добавить потом
students_list =, , ] print("Исходный словарь: ", students_list) students_dict = {} for i in students_list: ...

Как добавить слово в Словарь (Word)
Вопрос в теме.

Не пойму как добавить элемент в словарь
Вот у меня есть словарь и он состоит из девяти команд у которых есть определённые баллы,и надо добавить 10 команду со своими балами но я не...

Как добавить объекты в словарь из консоли
Возможно ли добавить новые объекты в Dictionary из консоли?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru