在 Python 中检查用户输入是否为数字
Check if user input is a Number in Python
使用try/except
语句检查用户输入是否为数字。如果输入值为数字,则该try
块完成运行,否则将
ValueError
引发一个可以在except
块中处理的a。
# ✅ Check if user input is number (try/except statement) num = input('Enter your favorite number: ') try: num = float(num) print(num) except ValueError: print('The provided value is not a number') # ----------------------------------------- # ✅ Keep prompting the user until they enter a number (while loop) num = 0 while True: try: num = int(input("Enter your favorite integer: ")) except ValueError: print("Please enter a valid integer") continue else: print(f'You entered: {num}') break
第一个示例使用try/except
语句检查输入值是否为有效数字。
使用不是有效数字的值调用float()
或类会引发.int()
ValueError
num = input('Enter your favorite number: ') try: num = float(num) print(num) except ValueError: print('The provided value is not a number')
如果用户输入一个数字,该try
块将完成并且该except
块不会运行。
如果提供的值不是有效数字,则except
块运行。
如果您只需要检查用户输入是否为有效整数,请使用int()
该类进行转换。
num = input('Enter your favorite integer: ') try: num = int(num) print(num) except ValueError: print('The provided value is not an integer')
或者,您可以使用该str.isdigit()
方法。
使用 str.isdigit() 检查用户输入是否为数字
使用该str.isdigit()
方法检查用户输入是否为数字,例如
if num.isdigit():
。该isdigit()
方法将返回True
所有正整数值和False
所有非数字、浮点数或负数。
num = input('Enter your favorite number: ') if num.isdigit(): print('Provided value is a valid number') num = int(num) print(num) else: print('Provided value is not a number, is a negative number or a float')
str.isdigit
方法返回如果字符串True
中的所有字符都是数字并且至少有 1 个字符,否则False
返回。
print('567'.isdigit()) # 👉️ True print('3.14'.isdigit()) # 👉️ False print('-5'.isdigit()) # 👉️ False
请注意,该str.isdigit()
方法返回False
浮点数(它们包含句点)和负数(它们包含减号)。
您应该只使用这种方法来检查用户输入是否为有效整数。
while
如果您需要一直提示用户直到他们输入有效数字,您可以使用循环。
不断询问用户输入,直到输入数字为止
该示例使用while True
循环来不断迭代,直到用户输入有效数字。
num = 0 while True: try: num = int(input("Enter your favorite integer: ")) except ValueError: print("Please enter a valid integer") continue else: print(f'You entered: {num}') break
如果块中的代码try
引发 a ValueError
,则except
块运行,我们使用该continue
语句继续下一次迭代。
如果用户输入了一个有效的数字,try
块成功完成,然后else
块运行,我们使用break
语句退出
while
循环。
该continue
语句继续循环的下一次迭代。
break
语句跳出最内层的封闭或
for
循环while
。