在指定名称时指定一个操作

2024-04-24 03:44:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将输入设置为仅为一个数字,或者返回一条错误消息,并再次要求您输入该数字。 我想使用输入而不是原始输入,如果它返回一个错误,比如输入“h”,我想让它说错误,然后再问这个问题。 但如果它是+ve数或-ve数,则继续。我只在原始输入上使用验证进行了管理,使用Nameerror异常无法实现任何目标。但它不适用于-ve数字

def numbercheck():
    Answercheck =  False
    inputanswer = raw_input("What is your number?")
    while inputanswer.isdigit() == True and any(c.isalpha() for c in inputanswer) == False:
        print "success"
        return
    else:
        if inputanswer.isdigit() == True and any(c.isalpha() for c in inputanswer) == False:
            print "success"
            return
        else:
            print "INVALID NUMBER- Please try again: "
            numbercheck()

Tags: andinfalsetruefor错误veany
2条回答

您可以尝试以下方法:

if inputanswer[0]=="+" or inputanswer[0]=="-":
    inputanswer = inputanswer[1:]

与其检查输入中的每个字符是否为数字而不是字母字符(特殊字符如何?),不如try将数字解析为int,如果失败,请重试

def numbercheck():
    while True:
        try:
            inputanswer = raw_input("What is your number?")
            as_number = int(inputanswer)
            print "success"
            return as_number
        except ValueError:
            print "INVALID NUMBER- Please try again: "

而且,raw_input是正确的选择^{}会导致非常糟糕的事情。在Python3中,input的作用与Python2中的raw_input相同

相关问题 更多 >