python - "Try and Except"区分字符串和整数?

标签 python function

我是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/

相关文章:

python twilio flask : index out of range

python - 具有随机幂律分布权重的网络

python - 如何将整数转换为以 256 为基数的表示形式?

python - collection.abc.* 模块中的抽象类是如何实现的?

javascript - 如何将变量从 JavaScript 函数发送到文本框?

c - 不了解C中static int的功能

javascript - 回调函数

MySQL 创建函数语法

c# - 函数不会返回任何内容

python - 将两个列表压缩到文本文件中