2013-11-28 4 views
0

Я пытаюсь заставить это распечатать значение в словаре из ключа, который вводит пользователь, но ничего не выходит. есть идеи?Почему это не печатает значение в словаре?

u_items=input("Enter 'list' to see a list of items, or 'Book', 'Apple', 'Toy', 'Pumpkin', 'Bowl' or 'Purse' to see the item's price: ") 
u_items=u_items.title() 

inventory={'Book':'18', 'Apple':'3', 'Toy':'7', 'Pumpkin':'9', 'Bowl':'5', 'Purse':'30'} 

if u_items in inventory[u_items] == True: 
    print("A " + u_items + "costs $" + inventory[u_items]) 

elif u_items == 'List': 
    print(items(inventory)) 
+0

Что такое 'title()'? – MxyL

+0

@Keikoku - Строковый метод, который делает строку как заголовок книги. Чтобы убедиться в этом, запустите это в интерпретаторе: '' happy birthday'.title() '. Или, здесь [docs] (http://docs.python.org/2.7/library/stdtypes.html#str.title). – iCodez

+0

@iCodez О, это довольно круто .. Предполагаю. Не похоже на очень умный конвертер, но я думаю, что он выполняет свою работу ... – MxyL

ответ

1

Ваш if-statement построен неправильно. Это должно быть так:

if u_items in inventory: 

Это тесты, если u_items (ключ вводится пользователем) существует в словаре.

Что вы делали перед этим, было видно, что u_items существует в значении, которое возвращается путем индексирования inventory с номером u_items. Итак, если пользователь ввел 'apple', ваш код будет интерпретироваться так:

if 'Apple' in '3' == True: 
+0

спасибо вам много! – rs19

+0

и предметы [инвентарь] не работают. угадать мой синтаксис не так? – rs19

+0

@ rs19 - Ах, да. Я пропустил это. 'item' - это метод' dict', поэтому вы должны сделать это: 'inventory.items()' – iCodez

Смежные вопросы