如何检查字符串是否只包含十进制数字?
一个字符串是一组字符,可以用来表示单个单词或整个语句。在Python中,字符串很容易使用,因为它们不需要显式声明,并且可以使用或不使用指定符号定义。
在Python中,字符串由名为字符串的类表示,该类提供了几种内置方法来操作和访问字符串。
在本文中,我们将重点介绍如何在Python中检查字符串是否只包含十进制数字。
阅读更多:Python 教程
使用isdigit()函数
一种实现这一点的方法是使用内置的字符串函数 isdigit() 。该函数将输入作为字符串,并且如果字符串中存在的所有字符都是数字,则返回true,否则返回false。该函数的主要缺点是,如果存在任何十进制数字或任何负数,则返回False。
示例1
在下面给出的程序中,我们输入2个字符串并检查它们是否只包含十进制数字,使用 isdigit() 方法。
str1 = "12345"
str2 = "1234@#"
print("检查字符串 '",str1," 是否只包含十进制数字")
print(str1.isdigit())
print("检查字符串 '",str2," 是否只包含十进制数字")
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("检查字符串 '",str1," 是否只包含十进制数字")
print(str1.isdigit())
print("检查字符串 '",str2," 是否只包含十进制数字")
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("检查字符串是否只包含十进制数字:'",str1,"')
print(isfloat(str1))
print("检查字符串是否只包含十进制数字:'",str2,"')
print(isfloat(str2))
输出结果
上面示例的输出结果如下:
("检查字符串是否只包含十进制数字:'", '123.45', "'")
True
("检查字符串是否只包含十进制数字:'", ' 12345', "'")
True
使用正则表达式
另一种实现方法是使用正则表达式。正则表达式“ ^\d+?\.\d+?$ ”用于检查是否只包含数字。使用正则表达式函数match进行检查。
示例
在下面的示例中,我们使用正则表达式判断给定字符串是否只包含十进制数字。
import re
str1 = "123.45"
str2 = "123@45"
print("检查字符串是否只包含十进制数字:'",str1,"')
print(bool(re.match("^\d+?\.\d+?", str1)))
print("检查字符串是否只包含十进制数字:'",str2,"')
print(bool(re.match("^\d+?\.\d+?", str2)))
输出结果
上面示例的输出结果如下:
("检查字符串是否只包含十进制数字:'", '123.45', "'")
True
("检查字符串是否只包含十进制数字:'", '123@45', "'")
False
好的,接下来继续输出翻译的内容。
总结
本文中,我们介绍了两种方法来检查一个字符串是否只包含十进制字符。第一种方法是使用普通的Python代码来检查,第二种方法是使用正则表达式来检查。在大多数情况下,使用普通代码就足够解决问题,但在某些情况下可能会更喜欢使用正则表达式,因为它们提供了更强大的匹配和搜索功能。
极客教程