你如何在python中检查一个字符串是否只包含数字?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你如何在python中检查一个字符串是否只包含数字?相关的知识,希望对你有一定的参考价值。

如何检查字符串是否只包含数字?

我已经在这里试了一下。我想看看实现这一目标的最简单方法。

import string

def main():
    isbn = input("Enter your 10 digit ISBN number: ")
    if len(isbn) == 10 and string.digits == True:
        print ("Works")
    else:
        print("Error, 10 digit number was not inputted and/or letters were inputted.")
        main()

if __name__ == "__main__":
    main()
    input("Press enter to exit: ")
答案

您将要在isdigit对象上使用str方法:

if len(isbn) == 10 and isbn.isdigit():

来自isdigit documentation:

str.isdigit()

如果字符串中的所有字符都是数字并且至少有一个字符,则返回true,否则返回false。

对于8位字符串,此方法取决于区域设置。

另一答案

使用str.isdigit

>>> "12345".isdigit()
True
>>> "12345a".isdigit()
False
>>>
另一答案

使用字符串isdigit函数:

>>> s = '12345'
>>> s.isdigit()
True
>>> s = '1abc'
>>> s.isdigit()
False
另一答案

你可以在这里使用try catch块:

s="1234"
try:
    num=int(s)
    print "S contains only digits"
except:
    print "S doesn't contain digits ONLY"
另一答案

因为每次遇到检查问题都是因为str有时可以是None,如果str可以是None,只使用str.isdigit()是不够的,因为你会得到一个错误

AttributeError:'NoneType'对象没有属性'isdigit'

然后你需要先验证str是否为无。为了避免使用multi-if分支,一个明确的方法是:

if str and str.isdigit():

希望这有助于人们像我一样有同样的问题。

另一答案

浮点数,负数等等。前面的所有例子都是错误的。

到现在为止,我得到了类似的东西,但我认为它可能会好很多:

'95.95'.replace('.','',1).isdigit()

只有在有'或'的情况下才会返回true。在数字串中。

'9.5.9.5'.replace('.','',1).isdigit()

将返回false

另一答案

你也可以使用正则表达式,

import re

例如:-1)word =“3487954”

re.match('^[0-9]*$',word)

例如:-2)word =“3487.954”

re.match('^[0-9\.]*$',word)

例如:-3)word =“3487.954 328”

re.match('^[0-9\.\ ]*$',word)

你可以看到所有3个例子意味着你的字符串中只有no。因此,您可以按照相应的解决方案进行操作。

以上是关于你如何在python中检查一个字符串是否只包含数字?的主要内容,如果未能解决你的问题,请参考以下文章

在 Python 中,如何检查字符串是不是只包含某些字符?

如何检查一个php字符串是不是只包含英文字母和数字?

检查字符串是否只包含拉丁字符?

Python:如何判断列表中的元素是否包含某个数字?

如何使用Python检查数字是否为32位整数?

Lua:如何检查字符串是不是只包含数字和字母?