Pythonで変数が文字列型(str)かどうかを判定する方法
isinstance()関数を使った文字列型の判定
Pythonでは、組み込み関数 isinstance(var, class) を使うことで、変数 var が指定したクラスのインスタンスであるかどうかを簡単に確認できます。変数が文字列型かどうかを判定したい場合も、この関数を使うのが最も一般的で推奨される方法です。
Python 2.x の場合
Python 2.x では、str(バイト文字列)と unicode の両方の基底クラスとして basestring が定義されています。そのため、basestring を使えば、どちらの文字列型にも対応した判定が可能です。
>>> s = 'A string' >>> isinstance(s, basestring) True >>> isinstance(s, str) True >>> isinstance(10, basestring) False
上記の例では、文字列 s に対しては True が返され、整数 10 に対しては False が返されていることがわかります。
Python 3.x の場合
注意点として、Python 3.x では basestring は廃止され、定義されていません。Python 3系で文字列型を判定する場合は、代わりに str を使用します。
>>> s = 'A string' >>> isinstance(s, str) True >>> isinstance(10, str) False
補足:type()との違い
同様の判定は type(s) == str でも行えますが、isinstance() はサブクラスも True と判定するため、継承を考慮した柔軟なチェックができます。特別な理由がない限り、isinstance() を使うことがベストプラクティスとされています。
-
Pythonで文字列が英数字のみで構成されているか判定する方法【isalnum()と正規表現】
Pythonでは、文字列がアルファベットや数字だけで構成されているかどうかを簡単にチェックできます。主な方法は2つあります。1つは文字列クラスに組み込まれている isalnum() メソッドを使う方法、もう1つは正規表現(regex)を使う方法です。 1. isalnum() メソッドを使う方法 Pythonの文字列クラスには isalnum() というメソッドが用意されています。このメソッドを文字列に対して呼び出すと、その文字列が英数字(アルファベットと数字)のみで構成されている場合に True を、それ以外の場合に False を返します。 使用例:英数字のみの文字列 print(12
-
Pythonで変数の存在を確認する方法|locals()・globals()・hasattr()の使い方
Pythonでは、変数が存在するかどうかを確認するために、組み込み関数の locals()、globals()、そして hasattr() を活用します。それぞれの役割と具体的な使い方を、サンプルコードと実行結果をもとに解説します。 変数の存在確認に使える3つの方法 locals():現在のローカルスコープ(関数やメソッド内)で定義されている変数を辞書形式で返します。 globals():モジュール全体(グローバルスコープ)で定義されている変数を辞書形式で返します。 hasattr():オブジェクトが指定した名前の属性を持っているかどうかを真偽値で判定します。 サンプルコード x = 10