在 Python 中检查字符串是否为整数

Muhammad Waiz Khan 2023年1月30日 2021年2月7日
  1. 在 Python 中使用 str.isdigit() 方法检查一个字符串是否为整数
  2. 在 Python 中使用 try ... except 异常处理检查字符串是否为整数
  3. 在 Python 中使用正则表达式检查一个字符串是否为整数
在 Python 中检查字符串是否为整数

本教程将解释如何在 Python 中检查一个字符串是否是整数,也就是说一个字符串是否代表一个整数。所谓字符串是整数,是指字符串中存储的值代表一个整数。可以有多种方法来检查,我们将在本教程中通过代码示例讨论这些方法。

在 Python 中使用 str.isdigit() 方法检查一个字符串是否为整数

在 Python 中检查一个字符串是否是整数的最有效方法是使用 str.isdigit() 方法,因为它的执行时间最少。

str.isdigit() 方法如果字符串代表一个整数,则返回 True,否则返回 False。下面的代码示例展示了我们如何使用它。

def if_integer(string):
  
    if string[0] == ('-', '+'):
        return string[1:].isdigit()

    else:
        return string.isdigit()

string1 = '132'
string2 = '-132'
string3 = 'abc'

print(if_integer(string1))
print(if_integer(string2))
print(if_integer(string3))

输出:

True
True
False

上面的例子也照顾到字符串中是否存在整数的符号,+-。如果第一个字符串是+-,它就会检查字符串的其他部分是否是整数。

在 Python 中使用 try ... except 异常处理检查字符串是否为整数

另一种方法是在 int() 函数上使用 try ... except 异常处理。如果字符串是一个整数,它将返回 True,否则返回 False。下面的代码示例展示了我们如何实现这个方法。

def if_integer(string):
    try: 
        int(string)
        return True
    except ValueError:
        return False

string1 = '132'
string2 = '-132'
string3 = 'abc'

print(if_integer(string1))
print(if_integer(string2))
print(if_integer(string3))

输出:

True
True
False

在 Python 中使用正则表达式检查一个字符串是否为整数

我们可以使用的另一种有趣的方法是正则表达式。表示一个整数的正则表达式将是 [+-]?\d+$,其中 [+-]? 表示+- 符号是可选的,\d+ 表示字符串中应该有一个或多个数字,$ 是字符串的结尾。

示例代码。

import re

def if_integer(string):

    reg_exp = "[-+]?\d+$"
    return re.match(reg_exp, string) is not None

string1 = '132'
string2 = '-132'
string3 = 'abc'

print(if_integer(string1))
print(if_integer(string2))
print(if_integer(string3)) 

输出:

True
True
False

相关文章 - Python String

相关文章 - Python Integer