提示用户在字典中输入密钥以输出其值

时间:2018-04-03 22:48:39

标签: python python-3.x

我一直试图找出让用户输入指定键以输出其相应值的方法。事情是我不太确定我是否正确设置了我的字典。我必须定义一个带有附加文本文件的字典,在该文本文件中,每一行都有一个国家名称,空格和收入,看起来类似于这样的东西 - "卡塔尔$ 129,700"。

我的问题是,如何将其输入到我可以输入国家/地区名称的位置并让它输出正确的收入值?

当前代码:

import string
import re
import fileinput


infile = open("C:\\Users\\mrbal\\Desktop\\Homework 
Assignments\\percapita.txt", "r")

dict1 = {}
for line in infile:
    x = line.split(" ")
    countryName = x[0]
    income = x[1]
    print(countryName, income)

print("##############################")

#country = input("Please enter the desired country: ")

首先,我是否正确设置了字典?

其次,在当前的设置中,当我运行程序时,它输出我的文件的内容,这是好的,但我仍然需要用户从字典输入一个国家,然后让它输出其值。我该怎么做呢?

1 个答案:

答案 0 :(得分:1)

您可以在代码中改进一些内容:

  1. 您没有使用值初始化dict,请执行此操作。

  2. 您可以使用符合PEP的变量名称,例如country_name而不是countryName

  3. 您打开文件但不要关闭它。使用with来避免这种情况。

  4. 因此,代码变为:

    import string
    import re
    import fileinput
    
    
    with open("C:\\Users\\mrbal\\Desktop\\Homework Assignments\\percapita.txt", "r") as infile:
    
        incomes = {}
        for line in infile:
            x = line.split(" ")
            country_name, income = x[0], x[1]
            print(country_name, income)
            incomes[country_name] = income
    
    print("##############################")
    
    country = input("Please enter the desired country: ")
    print(incomes.get(country, "No information found for country %s" % country))
    

    如果您想向用户提供国家/地区列表,只需添加其他打印声明:

    print("Options for country are: %s" % incomes.keys())