【问题标题】:Pythom programming how can I exclude the values for if statement from the dictionary list with loopPython编程如何从带有循环的字典列表中排除if语句的值
【发布时间】:2021-10-24 11:48:10
【问题描述】:

如何通过python编写带有循环、字典和if语句的订单 如果我想要字典列表的输出结果并为其他输入打印一个句子 这是我的程序,有人可以找到错误的解决方案

def phone_guide():

    guide_number = input("Enter a number:")
    
    numbers = {"Amal": 1111111111, "Mohammed": 2222222222, "Khadijah": 3333333333, "Abdullah": 4444444444}
    
    While guide_number == 1111111111:
        print("Amal")
    
    elif guide_number == 2222222222:
        print("Mohammed")
    
    elif guide_number == 3333333333:
        print("khadijah")
    
    elif guide_number == 4444444444:
        print("Abdullah")
    
    elif guide_number != numbers:
        print("Sorry, the number is not found")
    
    #This mean the number has to be from the dictionary list
    
    else:
    print("This is invalid number")
    
    #This mean if the number less or more than 10 number or different value or string 
phone_guide()

【问题讨论】:

    标签: python xcode loops dictionary if-statement


    【解决方案1】:

    您需要解决多个问题。缩进错误,循环有问题。您需要遍历字典并检查值是否存在。

    def phone_guide():
    
        print "Enter a number:"
        guide_number = input()
    
        numbers = {"Amal": 1111111111, "Mohammed": 2222222222, "Khadijah": 3333333333, "Abdullah": 4444444444}
    
        for key,value in numbers.items():
            if guide_number == value:
                print(key)
                return
        print("Sorry, the number is not found")
    
    phone_guide()
    

    【讨论】:

      【解决方案2】:

      首先,如果您想检查号码,存储name: number 会不必要地复杂。是否可以像number: name 一样反转它? numbers = {1111111111: "Amal", 2222222222: "Mohammed", ...}

      其次,您不需要所有这些 if/elif/else 语句。您可以检查项目是否在字典键或值中。 1111111111 in numbers.keys()1111111111 in numbers.values()

      要匹配您的电话号码的有效性,您可以使用这样的正则表达式并检查是否typeof(phone_number) == int

      import re
      invalid = 1234568
      valid = 0123456789
      re.match(r'\d+{10}', valid)
      >>> True
      re.match(r'\d+{10}', invalid)
      >>> False
      

      鉴于所有这些信息,您应该能够找到解决方案。

      【讨论】:

        【解决方案3】:

        您的代码中有多个错误。再过一遍python的基础知识。

        def phone_guide():
        
          guide_number = int(input("Enter a number:"))
        
          numbers = {"Amal": 1111111111, "Mohammed": 2222222222, "Khadijah": 3333333333, "Abdullah": 4444444444}
        
          for key, value in numbers.items():
            if guide_number == value:
              return key
        
          return "This is invalid number"
        

        【讨论】:

          【解决方案4】:
          def phone_guide():
              guide_number = input("Enter a number:")
              numbers = {"Amal": 1111111111, "Mohammed": 2222222222, "Khadijah": 3333333333, "Abdullah": 4444444444}
              if guide_number == 1111111111:
                  print("Amal")
              elif guide_number == 2222222222:
                  print("Mohammed")
              elif guide_number == 3333333333:
                  print("khadijah")
              elif guide_number == 4444444444:
                  print("Abdullah")
              elif guide_number != numbers:
                  print("Sorry, the number is not found")
              else:
                  print("This is invalid number")
          

          如上编写您的代码。在python中,你只能在if之后使用elif。

          【讨论】:

          • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
          猜你喜欢
          • 2021-11-18
          • 2013-01-14
          • 1970-01-01
          • 1970-01-01
          • 2021-12-23
          • 2014-07-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多