0

我正在尝试在 Python 中向我的应用程序添加验证。

基本上我想确保他们的输入是一个数字,如果不是,它应该一直问他们输入的问题,直到他们得到它。

这就是我得到的,它只适用于 2 次尝试,我相信它是因为它检查它是否不为空。

我知道这是很多代码。不确定另一种方法可以做到这一点,有什么想法吗?

while amount != "":
    try:
        val = int(amount)
        while counter < int(amount):
            counter = counter + 1
            ran = ran + 1
            num3 = input(str(ran) + ". Input: ")
            try:
               val = int(num3)
            except ValueError:
               num3 = input(str(ran) + ". Input: ")
            numbers.append(num3)
        print("")
        home()
    except ValueError:
        amount=input("How many numbers are in your list? ")
        while counter < int(amount):
            counter = counter + 1
            ran = ran + 1
            num3 = input(str(ran) + ". Input: ")
            try:
               val = int(num3)
            except ValueError:
               num3 = input(str(ran) + ". Input: ")
            numbers.append(num3)
        print("")
        home()
4

1 回答 1

1

怎么样

def get_int_input(txt):
    x = raw_input(txt)
    while not x.isdigit():
        x = raw_input("Invalid Input. %s"%txt)
    return int(x)

numbers = [get_int_input("%s input:"%i) for i in range(get_int_input("Enter Number Of values:"))]

请注意,这是基于我对您要做什么的最佳猜测,我可能不理解您要做什么

于 2013-10-28T16:50:34.787 回答