循环以及如何检查输入是否为数字

时间:2018-09-05 15:21:10

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

所以我是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”中的输入是为了避免窗口立即关闭。

2 个答案:

答案 0 :(得分:0)

为确保用户给您的整数大于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')

答案 1 :(得分:0)

最好的选择是将整个过程定义为一个函数,并对其进行调用。

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

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

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