2014-04-04 48 views
0

我有一個名爲name_dict的字典,其中包含字符串和數字。這裏是。Python:與包含字符串和數字的詞典有關的問題

name_dict={'first': 324/1080*100,'second':484/1823*100,'third':931/2765*100} 

我應該讓用戶輸入一個範圍,如果在name_dict中的一個號碼不在範圍內,那麼它應該是打印數量與它相關的值一起。這是我的整個程序:

print('Enter the tolerance range for valid values') 
tr=input('ex. If your range is 20-40%, please type as 20 40') 
tr_split=tr.split() 
tr_int= [int(i) for i in tr_split] 
if tr_int[0]<0: 
    print('Error. Lower tolerance cannot be less than 0.') 
elif tr_int[1]>100: 
    print('Error. Higher tolerance cannot be greater than 100.') 
elif tr_int[0]>tr_int[1]: 
    print('Error. Lower tolerance cannot be greater than higher tolerance.') 
name_dict={'first': 324/1080*100,'second':484/1823*100,'third':931/2765*100} 
for i in name_dict: 
    if i<tr_int[0] or i>tr_int[1]: 
     print(name_dict) 

當我做到這一點我收到此錯誤:

TypeError: unorderable types: str() < int() 

我怎樣才能得到它打印出的號碼和名字,而不是一個錯誤?

回答

2

更換

for i in name_dict: 
    if i<tr_int[0] or i>tr_int[1]: 
     print(name_dict) 

for key,value in name_dict.items(): 
    if not (tr_int[0] < value < tr_int[1]): 
     print(key, value) 
+0

當我做到這一點,多次印刷name_dict在年底,而不是隻值。 – bw61293

+0

@ bw61293我更新了答案。試試吧,是否解決了這個問題? –

+0

是的,但我怎樣才能讓它打印與該值相關聯的名稱?而不是打印'26.549',它會打印'第二個26.549' – bw61293

相關問題