2017-07-25 96 views
0

在检查用户输入是否在字典中有问题。Python:如果(user_input)在字典中

程序的基础是有一个商店的库存。这些项目被存储在具有相应值的字典中,例如, {'kettle': 3,.....}

然后我希望用户写他们想要的东西。因此,如果用户输入'水壶',我想从商店库存中移除商品并放入用户库存。

现在的主要问题是一起得到一个if语句。这是我想要的:

user_choice = input('What would you like to buy? ') 
if user_choice in shop_inventory: 
    print('Complete') 
else: 
    print('Fail') 

我怎样才能让程序打印“完整”?

+4

这段代码有什么问题?如果字典中包含'壶',并且用户输入该值,则这将打印'完成'。 –

+0

此代码的工作原理 –

+1

在py2下,您必须使用'raw_input',而不是'input',因为'input'会将输入的数据评估为python代码。所以你必须用单引号输入“水壶”。 – MatsLindh

回答

-4

代替input(),使用raw_input

user_choice = raw_input('What would you like to buy? ') 
if user_choice in shop_inventory: 
    print('Complete') 
else: 
    print('Fail') 

说明:的Python 2raw_input()返回字符串,和input()试图运行输入作为Python表达式。

Python 3只有raw_input()。它已更名为input()。你

As statet here

+0

什么是逗号? – Kevin

+0

报价。编辑它.. @凯文 – BrutalGames

0

部分的问题是问如果在字典中,你想从清单中移除。我相信你可以使用“删除”

user_choice = input('What would you like to buy? ') 
if user_choice in shop_inventory: 
    del shop_inventory[user_choice] 
    print(shop_inventory) 
    print('complete') 
else: 
    print('Fail') 
0

您可以使用pop()shop_inventory删除该项目。

shop_inventory = {'kettle': 3} 
user_choice = input('What would you like to buy? ') 
if user_choice in shop_inventory: 
    shop_inventory.pop(user_choice) 
    print(shop_inventory) 
    print('Complete') 
else: 
    print('Fail')