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 では、str
と unicode
の抽象クラスである 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 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