【问题标题】:How to iterate through a dictionary and check validity of inputs?如何遍历字典并检查输入的有效性?
【发布时间】:2017-04-13 18:24:30
【问题描述】:

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

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?

【问题讨论】:

    标签: python loops dictionary python-3.5


    【解决方案1】:
    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')
    

    【讨论】:

    • 如果用户输入非数字,我会添加一个 try/except ValueError
    【解决方案2】:
    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
    

    【讨论】:

      【解决方案3】:

      您可以在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
      

      【讨论】:

        【解决方案4】:

        要做到这一点,只需使用 continue 关键字。 问题是您正在用尽字典。

        解决方案:

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

          对于 mydict.items() 中的键、值:inp = -1 while( inp = int(input('Your number for: ' + key)) == 0){pass}

          if inp > 0:
              value = inp
          

        【讨论】:

          猜你喜欢
          • 2020-04-01
          • 1970-01-01
          • 2015-08-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-08-23
          • 2015-09-27
          • 1970-01-01
          相关资源
          最近更新 更多