代码之家  ›  专栏  ›  技术社区  ›  raposo

如何在接收到意外输出时不崩溃?

  •  0
  • raposo  · 技术社区  · 3 年前

    我正在学习python,我创建小程序的敌人,我经常发现的一个错误是无法将答案限制为数字输入。当回答我的需求中的一个数字时,它工作得很好,但当输入的输出除了数字之外没有其他东西时,当我打算再次询问时,它会崩溃。

    #EXAMPLE
    
    def ask(x):
    
        return int(float(input(x)))
    
    def main():
    
        x = ask("NUMBER FROM 0 TO 5: ")
    
        while x > 5 or x < 0 :
    
            x = ask("PLEASE INPUT A NUMBER FROM 0 TO 5")
    
        print(x)
    
    main()
    

    #如果x输入的输出是一个0到5之间的数字,它可以正常工作,如果一个数字超出了这个限制,它可以工作并再次询问,但当输出为空或str时,它崩溃了,我如何使它正常工作并再次问?

    1 回复  |  直到 3 年前
        1
  •  0
  •   Muhammad Ikhwan Perwira    3 年前

    您可以对此关键字使用错误处理 try 和 except .

    def ask(x):
      return int(float(input(x)))
    
    def main():
      while 1:
        try:
          x = ask("NUMBER FROM 0 TO 5: ")
          while x > 5 or x < 0 :
            x = ask("PLEASE INPUT A NUMBER FROM 0 TO 5")
          break
        except:
          print("Please input valid input such as integer or float!")
    
      print(x)
    
    if __name__ == '__main__':
      main()
    

    注意, while 1: 循环将以结束 break 关键字if代码在 尝试 块工作时没有命中的错误 打破 线如果发生任何错误,那么 catch 将执行向用户打印警告消息以输入有效输入的块。

    推荐文章