我是Python语言的初学者。 python中是否有一个“try and except”函数来检查输入是否是一个字母或多个字母。如果不是,请再次输入? (我做了一个,你必须输入一个整数)
def validation(i):
try:
result = int(i)
return(result)
except ValueError:
print("Please enter a number")
def start():
x = input("Enter Number: ")
z = validation(x)
if z != None:
#Rest of function code
print("Success")
else:
start()
start()
当执行上面的代码并输入一个整数时,您会得到:
Enter Number: 1
Success
如果输入了无效值,例如字母或 float ,您会得到以下结果:
Enter Number: Hello
Please enter a number
Enter Number: 4.6
Please enter a number
Enter Number:
如您所见,它将继续循环,直到输入有效的 NUMBER 值。那么是否可以使用“try and except”函数不断循环,直到输入字母?为了使其更清楚,我将用模糊的结构化英语进行解释,而不是伪代码,只是为了帮助使其更清晰:
print ("Hello this will calculate your lucky number")
# Note this isn't the whole program, its just the validation section.
input (lucky number)
# English on what I want the code to do:
x = input (luckynumber)
所以我想要的是,如果变量“x”不是一个字母或多个字母,它应该重复此输入(x),直到用户输入有效的字母或多个>字母。换句话说,如果未输入字母,程序将不会继续,直到输入是字母。我希望这能让它更清楚。
最佳答案
您可以在 try/except 子句中再次调用相同的函数 - 为此,您必须稍微调整您的逻辑:
def validate_integer():
x = input('Please enter a number: ')
try:
int(x)
except ValueError:
print('Sorry, {} is not a valid number'.format(x))
return validate_integer()
return x
def start():
x = validate_integer()
if x:
print('Success!')
关于python - "Try and Except"区分字符串和整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34004510/