判断字符串是否为数字:python函数判断字符串是否为数字
发布时间:2023-06-11 01:43:10
Python 提供了一些方法来判断字符串是否为数字,下面介绍几个常用的方法。
方法一:使用 isdigit() 方法
isdigit() 方法可以检查字符串是否只包含数字字符。如果字符串中只包含数字字符,则返回 True,否则返回 False。
示例代码:
str_num = "1234" str_not_num = "12a4" print(str_num.isdigit()) # True print(str_not_num.isdigit()) # False
方法二:使用 isnumeric() 方法
isnumeric() 方法也可以检查字符串是否只包含数字字符。该方法不仅可以识别 0-9 的数字,还可以识别其他数字字符,例如中文数字字符。
示例代码:
str_num = "1234" str_not_num = "12a4" str_cn_num = "三百二十一" print(str_num.isnumeric()) # True print(str_not_num.isnumeric()) # False print(str_cn_num.isnumeric()) # True
方法三:使用 isdecimal() 方法
isdecimal() 方法只能检查字符串是否只包含十进制数字字符。如果字符串中包含其他字符,则返回 False。
示例代码:
str_num = "1234" str_not_num = "12a4" print(str_num.isdecimal()) # True print(str_not_num.isdecimal()) # False
方法四:使用 try-except 块
在 Python 中,可以将字符串转换为数字类型,例如 int、float 等。如果将非数字类型的字符串转换为数字,则会引发 ValueError 异常。因此,可以使用 try-except 块来判断字符串是否为数字。
示例代码:
def is_number(s):
try:
float(s)
return True
except ValueError:
return False
str_num = "1234"
str_not_num = "12a4"
print(is_number(str_num)) # True
print(is_number(str_not_num)) # False
方法五:使用正则表达式
使用正则表达式可以更强大地判断字符串是否为数字。例如,可以通过正则表达式匹配字符串中只包含 0-9 的数字字符、包含小数点、包含正负号等情况。
示例代码:
import re pattern_num = "^[0-9]+$" pattern_float = "^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$" str_num = "1234" str_float = "-12.34" str_not_num = "12a4" print(re.match(pattern_num, str_num)) # <re.Match object; span=(0, 4), match='1234'> print(re.match(pattern_num, str_not_num)) # None print(re.match(pattern_float, str_float)) # <re.Match object; span=(0, 6), match='-12.34'> print(re.match(pattern_float, str_not_num))# None
综上所述,以上是判断字符串是否为数字的几种常用方法,根据需要选择合适的方法即可。
