如果输入字符而不是数字,如何让程序循环

时间:2015-01-31 01:37:54

标签: python

我和编程一样新。我有个问题。一旦用户选择了选项1-6,他们需要输入他们想要计算的数字,如何阻止用户输入字符而不是数字?

while menu: 
    usersChoice=raw_input("Please make your selection now:")
    if usersChoice=="1":
        print("You have selected AREA (SQUARE)")
        length=input("Input Length?")
        print"Area is:", length**2.0
    if usersChoice=="2":
        print("You have selected AREA (Rectangle)")
        length=input("Input Length?")
        width=input("Input Width?")
        print("Area is:", length*width)
        menu=False

4 个答案:

答案 0 :(得分:1)

Python中的字符串具有isdigit()函数。

您可以使用它来测试:

"123".isdigit() #True

"a123".isdigit() #False

然而,这仅测试正整数。所以:

"12.5".isdigit() #False
"-20".isdigit() #False

答案 1 :(得分:1)

试试这段代码:

def validate_is_number(number):
    try:
        float(number)
        return True
    except ValueError:
        return False

validate_is_number(usersChoice)

您可以使用validate_is_number的结果和if语句进行打印并请求另一个响应。

答案 2 :(得分:1)

你有一些错误  *从第一个IF cond你忘记打开和关闭打印方法的支持
* varable raw_input未定义为程序! *你写真正的循环永远打印这个东西 核心你的错误

答案 3 :(得分:0)

您可以使用str.isalpha()来检测字符。

例如:

usersChoice=raw_input("Please make your selection now:")
    if usersChoice.isalpha() == True:
         print("Sorry, your input must only be numerical. Please try again.")
         menu()