2016-11-29 131 views
0

如何迭代字典并在迭代循环期间检查输入值的有效性?这个问题在代码中描述:如何迭代字典并检查输入的有效性?

mydict ={'Kansas': 0, 'Dallas': 0, 'Alabama': 0} 

for key, value in mydict.items(): 
    inp = int(input('Your number for: ' + key)) 

    if inp > 0: 
     value = inp 
    else: 
     print('enter again') #<---how can I jump back to the key 
          # for which the entry was false 
          # and ask again for the entry? 

回答

2
for key, value in mydict.items(): 
    while True: 
     try: 
      inp = int(input('Your number for: ' + key)) 
     except: 
      inp = 0 

     if inp > 0: 
       mydict[keu] = inp 
       break 
     print('enter again') 
+2

我想补充一个try /除用于'ValueError'用户输入一个非数字。 –

1
mydict ={'Kansas': 0, 'Dallas': 0, 'Alabama': 0} 

for key, value in mydict.items(): 
    inp = int(input('Your number for: ' + key)) 
    while inp <= 0: 
     inp = int(input('Enter again for: ' + key)) 
    value = inp 
1

可以interate刚过keys,而是如果items。请尝试以下代码:

my_dict = {'Kansas': 0, 'Dallas': 0, 'Alabama': 0} 

for key in my_dict.keys(): 
    inp = int(input('Your number for: {} '.format(key))) 
    while inp <= 0: 
     inp = int(input('Your number for: {} '.format(key))) 
    my_dict[key] = inp 
0

要完成此任务,只需使用continue关键字即可。 问题是你正在用尽字典。

解决方案:

  1. mydict = { '堪萨斯':0, '达拉斯':0, '阿拉巴马':0}

    为键,在mydict.items值():INP = -1 而(INP = INT(输入( '您的数目:' +键))== 0){通过}

    if inp > 0: 
        value = inp