Python中可以使用内置的函数以及模块来判断字符串类型。
内置函数
1. type()
type()
函数可以用来查看一个对象的类型,包括字符串类型。当传入一个字符串类型的变量时,type()
函数会返回 <class 'str'>
。
s = "Hello World"
print(type(s)) # <class 'str'>
但是,该方法只能用来粗略地判断变量类型,无法细分字符串类型。
2. isinstance()
isinstance()
函数可以用来判断变量是否为某个类型的实例。对于字符串来说,isinstance()
函数也可以用来判断字符串是否为 str
类型。
s = "Hello World"
print(isinstance(s, str)) # True
这个方法可用于粗略的类型判断,同样无法细分字符串类型。
模块
1. re
模块
使用正则表达式可以很方便地判断字符串类型。Python提供了 re
模块,我们可以使用其 match()
函数来进行判断。
以下是一个判断是否为纯数字的示例:
import re
def is_digit(s):
pattern = r'^\d+$'
return True if re.match(pattern, s) else False
print(is_digit("123456")) # True
print(is_digit("abc123")) # False
上述代码中,定义了一个函数 is_digit(s)
,传入一个字符串参数 s
。函数中定义一个正则表达式,^\d+$
表示从字符串开头 ^
到结尾 $
的中间全部是数字 \d+
。然后使用 re.match(pattern, s)
函数匹配,如果匹配成功则返回 True,否则返回 False。
2. json
模块
使用 json.loads()
函数可以将一个字符串转换成 Python 对象。如果转换成功,则字符串就是 JSON 类型的。
以下是一个判断是否为 JSON 类型的示例:
import json
def is_json(s):
try:
json.loads(s)
return True
except ValueError:
return False
print(is_json('{"name": "Tom", "age": 18}')) # True
print(is_json('{"name": "Tom", "age": 18, }')) # False
上述代码中,定义了一个函数 is_json(s)
,传入一个字符串参数 s
。利用 json.loads(s)
函数将字符串转换成 Python 对象,如果转换成功则返回 True,如果转换失败,则会进入 except 块,捕获到 ValueError 异常并返回 False。