Python 3 如何检查输入是否为整数
在Python 3中,input()函数总是返回一个字符串,即使用户输入的是一个数字。要检查用户输入是否为整数,可以使用try-except块,并尝试使用int()函数将输入字符串转换为整数。以下是一些代码示例,演示在Python 3中检查原始输入是否为整数的不同方式:
使用try-except块
示例
在这个示例中,我们使用try-except块尝试使用int()函数将用户的输入转换为整数。如果用户输入的是一个整数,转换成功,程序将打印”User input is an integer”。如果用户输入的是一个非整数值,int()函数将引发ValueError异常,我们用except块捕获并打印”User input is not an integer”。
try:
user_input = int(input("Enter an integer: "))
print("User input is an integer")
except ValueError:
print("User input is not an integer")
输出
Enter an integer: 45
User input is an integer
使用isdigit()方法
示例
在这个例子中,我们使用isdigit()方法来检查用户输入的每个字符是否都是数字。如果每个字符都是数字,那么输入是一个整数,程序将打印”用户输入是一个整数”。如果输入中至少有一个非数字字符,则输入不是一个整数,程序将打印”用户输入不是一个整数”。
user_input = input("Enter an integer: ")
if user_input.isdigit():
print("User input is an integer")
else:
print("User input is not an integer")
输出
Enter an integer: lorem
User input is not an integer
使用正则表达式
示例
在这个例子中,我们使用re.match()函数将用户的输入与只匹配由一个或多个数字组成的字符串的正则表达式进行匹配。如果用户输入与正则表达式匹配,则输入是一个整数,程序打印“用户输入是一个整数”。如果输入与正则表达式不匹配,则输入不是一个整数,程序打印“用户输入不是一个整数”。
import re
user_input = input("Enter an integer: ")
if re.match(r"^[0-9]+$", user_input):
print("User input is an integer")
else:
print("User input is not an integer")
输出
Enter an integer: 99
User input is an integer
示例
在这个例子中,我们首先使用input()函数提示用户输入。然后,我们使用try-except块尝试使用int()函数将输入转换为整数。如果转换成功,我们打印一条消息,指示输入是一个整数。如果转换引发了ValueError,我们捕获这个错误,并打印一条消息,指示输入不是一个整数。
# Prompt user for input
user_input = input("Enter an integer: ")
# Use try-except block to check if input is an integer
try:
integer = int(user_input)
print("The input is an integer.")
except ValueError:
print("The input is not an integer.")
输出
Enter an integer: Ipsum
The input is not an integer.
示例
在这个例子中,我们首先使用input()函数提示用户输入。然后,我们使用isdigit()方法来检查输入是否为整数。如果该方法返回True,我们打印一条消息表示输入是整数。如果该方法返回False,我们打印一条消息表示输入不是整数。
# Prompt user for input
user_input = input("Enter an integer: ")
# Check if input is an integer using isdigit() method
if user_input.isdigit():
print("The input is an integer.")
else:
print("The input is not an integer.")
输出
Enter an integer: 2023
The input is an integer.
示例
在这个例子中,我们首先使用input()函数提示用户进行输入。然后,我们使用正则表达式来检查输入是否为整数。正则表达式^[0-9]+$匹配只包含数字的任何字符串。如果输入与正则表达式匹配,我们打印一条消息指示输入是一个整数。如果输入与正则表达式不匹配,我们打印一条消息指示输入不是一个整数。
# Prompt user for input
user_input = input("Enter an integer: ")
# Use regular expression to check if input is an integer
import re
if re.match("^[0-9]+$", user_input):
print("The input is an integer.")
else:
print("The input is not an integer.")
输出
Enter an integer: 1221
The input is an integer.