【问题标题】:Python: If (user_input) in dictionaryPython:如果(user_input)在字典中
【发布时间】:2017-07-25 13:39:20
【问题描述】:

检查用户输入是否在字典中时遇到问题。

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

然后我希望用户写他们想要的。因此,如果用户输入了“水壶”,我想从商店库存中删除该商品并放入用户库存中。

现在的主要问题只是将 if 语句放在一起。这就是我正在尝试的:

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

如何让程序打印“完成”?

【问题讨论】:

  • 这段代码有什么问题?如果字典包含“kettle”,并且用户输入了该值,则会打印“Complete”。
  • 此代码有效
  • 在 py2 下,您必须使用 raw_input,而不是 input,因为 input 将输入的数据评估为 python 代码。所以你必须用单引号输入'kettle'

标签: python dictionary if-statement


【解决方案1】:

您可以使用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')

【讨论】:

    【解决方案2】:

    raw_input代替input()

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

    解释:Python 2 中,raw_input() 返回一个字符串,input() 尝试将输入作为 Python 表达式运行。

    Python 3 中只有 raw_input()。它被重命名为input()

    As statet here

    【讨论】:

    • 什么是高逗号?
    • 报价。编辑它.. @Kevin
    • @Kevin 我编辑了它。你能删除你的反对票吗?
    • 没有什么可以删除的,因为我从一开始就对你投了反对票 :-)
    • @Kevin 我不想刻薄,但我因去年写的答案而受到惩罚,再次活跃的唯一方法是删除反对票。也许 StackOverflow 已经没有改变的空间了..
    猜你喜欢
    • 2012-12-13
    • 2022-01-24
    • 1970-01-01
    • 2021-08-19
    • 1970-01-01
    • 1970-01-01
    • 2010-12-14
    • 2017-09-08
    • 2013-11-12
    相关资源
    最近更新 更多