Pythonでの変数の宣言(定義)と使い方について解説します。変数とはデータに名前を与え、プログラム内で何度も使いまわせるようにしたもので、プログラムのコード量を少なくするとともに管理・修正を効率的にすることができる機能です。
目次
変数とは
プログラムにおける変数はデータを入れておくための名前のついた箱のようなものです。プログラムで扱う文字列や数値といった値(データ)を名前のついた箱に入れておき、呼び出して使うことでデータをわかりやすい名前で何度も使いまわすことができます。
変数は次のように記述します。
変数名 = 変数に入れたい値
変数名には基本的に小文字のアルファベットと数字、アンダーバーを使います。1文字目に数字は使えないので注意しましょう。
文字列を代入
では、実際に変数を宣言して呼び出してみましょう。
name = "オーニシ" print(name)
1行目で「name」という名前の変数を定義し、その値として「オーニシ」という文字列を格納しています。続く2行目ではprint関数を使ってname変数の値を表示しています。
変数を定義する際に使用しているイコール記号は数学のそれとは少々意味合いが異なります。これは代入演算子と呼ばれ、「左辺に右辺を代入しなさい」という意味を持ちます。
数値を代入
数値を代入する場合も基本的には同じですが、数値はシングルクォーテーションやダブルクォーテーションで囲まずそのまま記述します。
i = 12345 print(i)
値の再代入
変数の値は自由に再代入することができます。基本的にPythonのコードは上から順に実行されていくため、プログラムの途中で値を再代入した場合はそれ以降その変数の値は書き換えられます。
例えば次のコードではname変数に値を再代入しています。
name = "オーニシ" print(name) name = "ナカニシ" print(name)
このコードの実行結果は次のようになります。
オーニシ
ナカニシ
2行目と4行目は両方ともname変数の値を表示する処理ですが、その間の3行目でname変数に値を再代入しているため、同じname変数の値を表示する処理をしても結果が異なるわけです。
変数の型
プログラム言語によっては変数を宣言する際に型を指定しなくてはならないものがあります。CやJavaなどがそれにあたり、数の型と一致しない値を代入しようとするとエラーになります。
int i; // 整数型でx変数を定義 i = 10 // x変数に数値の10を代入 i = "オーニシ" // 整数型のi変数に文字列は代入できないのでエラーになる
上記はJavaのコードです。このコードでは変数iは整数型で定義されているため、3行目で文字列を再代入する処理はエラーになってしまいます。このように変数などを宣言した時点であらかじめ型を指定する必要があり、異なる型の代入を受け付けない言語を『静的型付け言語』といいます。
対してPythonは変数の宣言時に型を指定する必要がなく、変数の型は自動的に代入したデータの型となるため、同じ変数に異なる型の値を再代入することができます。このような言語を『動的型付け言語』といいます。
name = "オーニシ" # name変数に文字列を代入 name = 10 # Pythonではエラーにならない
上記のコードはPythonで書かれているためエラーになりません。
Pythonの変数に代入できるもの
Python開発者の言葉として有名なものに「全てはオブジェクトである」というものがあります。Pythonにおいてはリスト、辞書、タプル、関数、メソッド、クラスさえもオブジェクト(インスタンス)です。
そしてPythonの変数にはオブジェクトを代入することができます。つまり、あらゆるデータや構造化されたデータ、インスタンスもPythonでは変数に代入することができます。
x = "オーニシ" x = 12345 x = ["要素1", "要素2", "要素3"] x = {"キー1":"要素1", "キー2":"要素2", "キー3":"要素3"}