📅  最后修改于: 2023-12-03 15:24:52.759000             🧑  作者: Mango
在Python中,有多种方法可以判断一个字符串是否为数字。下面介绍其中的几种方式。
Python内置的字符串方法 isdigit()
可以用于判断一个字符串是否只包含数字字符。例如:
s = '123'
print(s.isdigit()) # True
s = 'a123'
print(s.isdigit()) # False
需要注意的是,isdigit()
方法只能判断整数。
与 isdigit()
方法类似,isnumeric()
方法也可以用于判断一个字符串是否只包含数字字符,但是它可以识别更多类型的数字字符。例如:
s = '123'
print(s.isnumeric()) # True
s = '½'
print(s.isnumeric()) # True
需要注意的是,isnumeric()
方法同样只能判断整数。
与 isdigit()
和 isnumeric()
不同,isdecimal()
方法只能用于判断一个字符串是否只包含十进制数字字符。例如:
s = '123'
print(s.isdecimal()) # True
s = '½'
print(s.isdecimal()) # False
需要注意的是,isdecimal()
方法同样只能判断整数。
如果需要判断字符串是否为整数或浮点数,并得到其具体的值,可以使用 try...except...
块。例如:
s = '123'
try:
i = int(s)
print(i) # 123
except ValueError:
pass
s = '1.23'
try:
f = float(s)
print(f) # 1.23
except ValueError:
pass
s = 'a123'
try:
i = int(s)
print(i)
except ValueError:
pass
需要注意的是,如果字符串不能转换为对应的数字类型,会抛出 ValueError
异常。
以上就是几种判断字符串是否为数字的方法,根据情况选择适合自己的方法即可。