python判断字符串类型的函数

  • Post category:Python

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。