【问题标题】:Loops and how to check if input is a number [duplicate]循环以及如何检查输入是否为数字[重复]
【发布时间】:2018-09-05 15:21:10
【问题描述】:

所以我是 python 和一般编码的新手,我在使用循环方面遇到了一些困难。 这是以下代码(印刷品是法文,但我想不需要翻译)

n = input ("Saissisez le nombre totale de bonnes notes obtenues")
n = int(n)
if n > 0:
    a = n+1
    b = n*a
    c = b/2
    print("Vous avez accumulez au total la somme de :", c, "€")
    print("Bien joué :)")
    input()

else:
    print("Vous n'avez pas rentré de nombre entiers correctes. Veuillez réessayer.")
    n = input ("Saissisez le nombre totale de bonnes notes obtenues")

所以我想做的是为“else”创建一个循环,以便再次询问问题(输入),直到选择了一个优于 0 的数字。 例如,如果在我输入字母而不是数字时它不会“出错”,那也很酷。

提前致谢! (很抱歉这个愚蠢的问题) 顺便说一下“if”中的输入是为了避免窗口立即关闭。

【问题讨论】:

    标签: python python-3.x loops while-loop


    【解决方案1】:

    为了确保用户给你一个大于 0 的整数:

    is_integer = False
    n = ''
    while not is_integer:
        n = input("Saissisez le nombre totale de bonnes notes obtenues")
    
        if type(n) == int and n > 0:
            is_integer = True
        else:
            print('Not an integer greater than 0')
    

    【讨论】:

      【解决方案2】:

      最好的办法是将整个过程定义为一个函数并让它自己调用。

      def myProcedure():
          n = input('Give me a number')
          ...
          if repeat_condition:
              myProcedure()
          else:
              finish up
      

      至于您的号码错误,请使用try

      try:
          float(n)
          ...
      except ValueError:
          myProcedure()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-05-11
        • 2013-03-13
        • 2014-02-12
        • 1970-01-01
        • 2015-05-11
        • 2021-10-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多