Python 在发生NameError时分配操作
我试图将输入设置为仅为一个数字,或者返回一条错误消息,并再次要求您输入该数字。 我想使用输入而不是原始输入,如果它返回一个错误,比如输入“h”,我想让它说错误,然后再问这个问题。 但如果它是+ve数或-ve数,则继续。我只在原始输入上使用验证进行了管理,使用Nameerror异常无法实现任何目标。但它不适用于-ve数字Python 在发生NameError时分配操作,python,python-2.x,nameerror,Python,Python 2.x,Nameerror,我试图将输入设置为仅为一个数字,或者返回一条错误消息,并再次要求您输入该数字。 我想使用输入而不是原始输入,如果它返回一个错误,比如输入“h”,我想让它说错误,然后再问这个问题。 但如果它是+ve数或-ve数,则继续。我只在原始输入上使用验证进行了管理,使用Nameerror异常无法实现任何目标。但它不适用于-ve数字 def numbercheck(): Answercheck = False inputanswer = raw_input("What is your num
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()
与其检查输入中的每个字符是否是数字而不是字母字符(特殊字符如何?),不如尝试将数字解析为
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
是正确的选择input
的作用与Python2中的raw\u input
相同。您可以尝试以下操作:
if inputanswer[0]=="+" or inputanswer[0]=="-":
inputanswer = inputanswer[1:]