如何在 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.

更新于: 2023年8月10日

6K+ 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告