Pythonで変数が文字列型(str)かどうかを判定する方法
Pythonでデータ操作を行う際には、扱っている変数のデータ型を確認したい場面がよくあります。変数の型を事前に把握しておくことで、その型に適したメソッドや関数を正確に適用でき、予期しないエラーを防ぐことにもつながります。本記事では、変数が文字列型(str)であるかどうかを判定する2つの方法を、サンプルコードとともにわかりやすく解説します。
type() 関数を使った判定方法
type() 関数は、引数に渡されたオブジェクトのデータ型を返します。判定したい変数を直接 type() に渡し、その戻り値が str と等しいかどうかを比較することで、変数が文字列型かどうかを確認できます。
サンプルコード
var1 = "Hello"
var2 = 123
var3 = "123"
# type() を使用
res_var1 = type(var1) == str
res_var2 = type(var2) == str
res_var3 = type(var3) == str
# 結果を出力
print("Is variable a string ? : " + str(res_var1))
print("Is variable a string ? : " + str(res_var2))
print("Is variable a string ? : " + str(res_var3))実行結果
上記のコードを実行すると、次のような結果が出力されます。
Is variable a string ? : True Is variable a string ? : False Is variable a string ? : True
var1 と var3 は文字列リテラルなので True、var2 は整数型のため False と判定されています。なお、「123」のように数字だけで構成された値でも、引用符で囲まれていれば str 型として扱われる点に注意してください。
isinstance() 関数を使った判定方法
もうひとつの方法として、isinstance() 関数を使用することもできます。こちらは第1引数に判定したい変数、第2引数に str を指定することで、その変数が文字列型かどうかをチェックします。
サンプルコード
var1 = "Hello"
var2 = 123
var3 = "123"
# isinstance() を使用
res_var1 = isinstance(var1, str)
res_var2 = isinstance(var2, str)
res_var3 = isinstance(var3, str)
# 結果を出力
print("Is variable a string ? : " + str(res_var1))
print("Is variable a string ? : " + str(res_var2))
print("Is variable a string ? : " + str(res_var3))実行結果
上記のコードを実行すると、次のような結果が出力されます。
Is variable a string ? : True Is variable a string ? : False Is variable a string ? : True
type() と isinstance() の違い
どちらの方法でも同じ結果が得られますが、一般的には isinstance() の使用が推奨されています。その理由は、isinstance() が str を継承したサブクラスのインスタンスも True と判定する一方、type() による厳密な比較では False となるためです。継承関係を考慮した柔軟な型チェックを行いたい場合は、isinstance() を選ぶとよいでしょう。
-
Pythonで文字列が英数字のみかどうかを判定する方法【isalnum()と正規表現】
Pythonでは、文字列が英数字(アルファベットと数字)のみで構成されているかどうかを簡単に判定できます。主な方法は2つあります。文字列クラスに組み込まれている isalnum() メソッドを使う方法と、正規表現を使う方法です。 isalnum()メソッドを使う方法 Pythonの文字列クラスには isalnum() というメソッドが用意されています。このメソッドを文字列に対して呼び出すと、文字列が英数字のみで構成されている場合に True を、記号などが含まれる場合には False を返します。 >>> 123abc.isalnum() True >>>
-
Pythonで変数の存在を確認する方法|locals()・globals()・hasattr()の使い方
Pythonでは、変数が存在するかどうかを確認するために、組み込み関数の locals()、globals()、そして hasattr() を活用します。それぞれの役割と具体的な使い方を、サンプルコードと実行結果をもとに解説します。 変数の存在確認に使える3つの方法 locals():現在のローカルスコープ(関数やメソッド内)で定義されている変数を辞書形式で返します。 globals():モジュール全体(グローバルスコープ)で定義されている変数を辞書形式で返します。 hasattr():オブジェクトが指定した名前の属性を持っているかどうかを真偽値で判定します。 サンプルコード x = 10