如何在 Python 3 中检查原始输入是否为整数?
在 Python 3 中,`input()` 函数始终返回字符串,即使用户输入的是数字。要检查用户输入是否为整数,可以使用 `try-except` 代码块,并尝试使用 `int()` 函数将输入字符串转换为整数。以下是一些代码示例,演示了在 Python 3 中检查原始输入是否为整数的不同方法。
使用 try-except 代码块
示例
在这个例子中,我们使用 `try-except` 代码块来尝试使用 `int()` 函数将用户的输入转换为整数。如果用户输入整数,转换成功,程序将打印“用户输入是整数”。如果用户输入非整数的值,`int()` 函数将引发 `ValueError` 异常,我们使用 `except` 代码块捕获该异常并打印“用户输入不是整数”。
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.