在 Python 中检查输入是否为整数

在编程的世界中,我们经常与用户的输入打交道。Python 具有可用的 input() 函数,该函数允许用户输入所需的输入。有时我们可能需要特定类型的输入。

但是,此函数在将其输入到程序中之前将用户的输入转换为字符串。因此,使用传统方法通过用户输入来检查特定类型并不简单,并且我们必须检查字符串是否本质上包含数字。

在本教程中,我们将讨论如何检查用户输入的输入是否为整数类型。

使用 int() 函数检查输入是否为 Python 中的整数

int() 函数可以将给定的字符串整数值转换为整数类型。如果所需值不是整数并且无法转换,则会引发错误。我们可以使用此方法检查用户的字符串是否为整数,如下所示。

user_input = input("Enter the input ")

try:
    int(user_input)
    it_is = True
except ValueError:
    it_is = False

print(it_is)

输出:

Enter the input 15
True

注意在此方法中使用 try...except 块。在 Python 中处理异常时,它非常频繁地使用。

使用 isnumeric() 方法检查输入是否为整数

如果字符串的 isnumeric() 方法仅包含数字,则返回 True。但是,值得注意的是,对于负值,它是失败的。这是因为当遇到负整数中的 - 符号时,它会自动返回 False

下面的代码展示了我们如何在 Python 中使用这个函数来检查一个字符串是否包含整数。

user_input = input("Enter the input ")

print(user_input.isnumeric())

输出:

Enter the input 10
True

我们也可以使用 isdigit() 函数代替 isnumeric();它也有与此方法相同的局限性。

Python 中使用正则表达式来检查输入是否为整数

我们还可以使用正则表达式创建一个模式,该模式在遇到字符串中的整数时将返回 True。我们还可以修改模式以确保它适用于负值。例如,

import re

user_input = input("Enter the input ")

num_format = re.compile(r'^-?[1-9][0-9]*$')
it_is = re.match(num_format,user_input)

if it_is: print("True")
else: print("False")

输出:

Enter the input -15
True

以下是正则表达式模式的解释-^-?[1-9][0-9]*$

  • ^是字符串的开头
  • -? 表示此数字可以是负数或正数。
  • [1-9] 是数字的第一位。它必须是 1 到 9 之间的数字,但不能为 0。
  • [0-9]*表示随后的数字。数字的数量可以是任意的,也包括 0。
  • $ 是字符串的结尾。