使用try除了在dict中查找键

时间:2013-05-06 23:18:43

标签: python dictionary try-catch except

我的功能是:

def searchstock():  
dictionary=calcreturn(dictionize(tickers(openfile()),pairslist()))
inp=raw_input("What is the stock ticker? ")
while True:
    try:
        dictionary[inp]
        break
    except KeyError: 
        print("Ticker not found. Please input again ")

print(inp, dictionary[inp])

try / except不起作用。我正在尝试查看用户输入是否在字典键中,然后返回键和相应的值

如果imp不在字典中,为什么这是一个无限循环?

3 个答案:

答案 0 :(得分:2)

inp=raw_input("What is the stock ticker? ")
try:
   dictionary[inp]
   break; #exit loop
except KeyError:
   print "Nope!"

您还需要突破while True循环

如果您使用的是py2x,则需要使用raw_input代替input

答案 1 :(得分:0)

代码中的listkeys是列表而不是字典。在列表中查找元素不会给您一个KeyError。

如果您使用的是列表,

item in list_name

将给出True或False。

同时修改raw_input()的输入,使其将字符串视为字符串而不是对象名称。

尝试使用以下内容:

try:
    dictionary_name[key]
except KeyError:
    #do something
    print "Key Error"

答案 2 :(得分:-1)

也许我在这里误解了一些东西,但要检查一个值是否是字典键,这很简单:

'key' in dictionary

返回TrueFalse

此外,您甚至可以执行以下操作:

mydictionary.get('key', 'Key not in dictionary')

如果密钥不在字典中,您将获得字符串"Key not in dictionary",否则您将获得由'key'标记的实际值。