如何检查字符串是否仅包含十进制字符?


字符串是一组字符,可用于表示单个单词或整个句子。字符串在 Python 中易于使用,因为它们不需要显式声明,并且可以使用或不使用指定符来定义。

在 Python 中,字符串由名为 string 的类表示,并且此类提供了几种内置方法来操作和访问字符串。

在本文中,我们将重点介绍如何在 Python 中检查字符串是否仅包含十进制字符。

使用 isdigit() 函数

实现此目的的一种方法是使用内置字符串函数 **isdigit()**。该函数将输入作为字符串,如果字符串中存在的所有字符都是数字,则返回 true,否则返回 false。此函数的主要缺点是,如果存在任何十进制字符或任何负数,它将返回 False。

示例 1

在下面给出的程序中,我们以 2 个字符串作为输入,并使用 **isdigit()** 方法检查它们是否仅包含十进制字符。

str1 = "12345" str2 = "1234@#" print("Checking if the string '",str1,"' has only decimal characters") print(str1.isdigit()) print("Checking if the string '",str2,"' has only decimal characters") print(str2.isdigit())

输出

以上示例的输出为:

("Checking if the string '", '12345', "' has only decimal characters")
True
("Checking if the string '", '1234@#', "' has only decimal characters")
False

示例 2

在下面给出的示例中,我们以 2 个字符串作为输入,并且我们使用小数点和负号作为输入,并使用 **isdigit()** 方法检查它们是否为十进制字符。

str1 = "123.45" str2 = " 12345" print("Checking if the string '",str1,"' has only decimal characters") print(str1.isdigit()) print("Checking if the string '",str2,"' has only decimal characters") print(str2.isdigit())

输出

以上示例的输出为:

("Checking if the string '", '123.45', "' has only decimal characters")
False
("Checking if the string '", ' 12345', "' has only decimal characters")
False

上述缺点的解决方案

为了解决上述方法的缺点,让我们创建一个用户定义函数来克服 **isdigit()** 造成的缺点。为了克服十进制数的缺点,当我们有“.”时,我们将分割字符串。使用 split 函数。为了克服负数的缺点,我们将使用 strip 函数去除“ ”字符。

示例

在下面给出的示例中,我们正在编写一个内置函数,并使用 **strip()** 和 **split()** 函数消除“.”和“ ”,并检查字符串是否仅包含十进制字符。

def isfloat(str): s1 = str.lstrip(' ') s2 = s1.split('.') return all(n.isdigit() for n in s2) and len(s2) <= 2 str1 = "123.45" str2 = " 12345" print("Checking if the string '",str1,"' has only decimal characters") print(isfloat(str1)) print("Checking if the string '",str2,"' has only decimal characters") print(isfloat(str2))

输出

以上示例的输出为:

("Checking if the string '", '123.45', "' has only decimal characters")
True
("Checking if the string '", ' 12345', "' has only decimal characters")
True

使用正则表达式

实现此目的的另一种方法是使用正则表达式。“**^\d+?\.\d+?$**”正则表达式用于检查是否存在仅数字。正则表达式函数 match 用于检查。

示例

在下面给出的示例中,我们使用正则表达式并找出给定字符串是否仅包含十进制字符。

import re str1 = "123.45" str2 = "123@45" print("Checking if the string '",str1,"' has only decimal characters") print(bool(re.match("^\d+?\.\d+?$", str1))) print("Checking if the string '",str2,"' has only decimal characters") print(bool(re.match("^\d+?\.\d+?$", str2)))

输出

以上示例的输出为:

("Checking if the string '", '123.45', "' has only decimal characters")
True
("Checking if the string '", '123@45', "' has only decimal characters")
False

更新于:2022年10月19日

5K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告