Pythonの変数には文字型や数値型といった様々なデータ型が存在する
Pythonの変数には文字型や数値型といった様々なデータ型が存在する。C言語などでは、値を代入する前にデータ型を事前に定義する必要があるが、Pythonでは自動的にデータ型が決定される。この自動的にデータ型が決定される仕組みを「動的型付け」と呼ぶ。動的型付けの仕組みとして、次の式で変数"d1" は数値型に。変数"d2" は文字型として扱われることになる。
a = 1
b =
"Hallo world"
print(a,
b)
実行結果
1 Hallo
world
つまり、Pythonが動的型付け言語であるため、初期値「1」と「Hallow」という値をPython自身が何型であるかを判断することになる。次のサンプルコードの結果は51となる。
a = 1
b = 50
print(a+b)
実行結果
51
一方で、次のように記述すると、Pythonは変数"a"と変数"b"を文字列とみなし、加算ではなく「結合」することで、結果は「150」となる。
a = "1"
b =
"50"
print(a+b)
実行結果
150
しかし、次のコードのように数値型と文字型では、データの型が異なるので、演算も結合もできずにエラーとなる。
a =
1 # 数値型
b =
"2" # 文字型
print(a+b)
実行結果
TypeError:
unsupported operand type(s) for +: 'int' and 'str'
変数内のデータを削除するには、次のコードのように「del」を使用するが、変数内データの削除を行うことで、メモリが解放され、ptint()で表示させようとすると型が不明であることからエラーとなる。
dat = 10
del dat
print(dat)
実行結果
NameError:
name 'dat' is not defined