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 では、strunicode の抽象クラスである basestring クラスを使用して、オブジェクトが 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