你如何在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():
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中检查一个字符串是否只包含数字?的主要内容,如果未能解决你的问题,请参考以下文章