在 Python 中检查变量是否为字符串

Manav Narula 2023年1月30日
  1. 使用 type() 函数检查变量是否为字符串
  2. 使用 isinstance() 函数检查变量是否为字符串
在 Python 中检查变量是否为字符串

字符串数据类型用于表示字符的集合。本教程将讨论如何检查变量是否为字符串类型。

使用 type() 函数检查变量是否为字符串

type() 函数返回传递给函数的变量的类型。以下代码显示了如何使用此函数检查变量是否为字符串。

value = "Yes String"
if type(value) == str:
    print("True")
else:
    print("False")

输出:

True

但是,值得注意的是,通常不建议使用此方法,在 Python 中将其称为 unidiomatic。其背后的原因是因为 == 运算符仅比较字符串类的变量,并将为其所有子类返回 False

使用 isinstance() 函数检查变量是否为字符串

因此,建议在传统的 type() 上使用 isinstance() 函数。isinstance() 函数检查对象是否属于指定的子类。以下代码段将说明我们如何使用它来检查字符串对象。

value = "Yes String"
if isinstance(value, str):
    print("True")
else:
    print("False")

输出:

True

在 Python 2 中,我们可以使用 basestring 类(它是 strunicode 的抽象类)来测试对象是 str 还是 unicode 的实例。例如,

value = "Yes String"
if isinstance(value, basestring):
    print("True")
else:
    print("False")

输出:

True

为了在 Python 3 中使用上述方法,我们可以使用 six 模块。该模块具有允许我们编写与 Python 2 和 3 兼容的代码的功能。

string_types() 函数返回字符串数据的所有可能的类型。例如,

import six

value = "Yes String"
if isinstance(value, six.string_types):
    print("True")
else:
    print("False")

输出:

True
作者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

相关文章 - Python String