Python入門者向けに変数の種類・代入方法についてまとめました。
変数と定数の違い
変数・定数は異なるデータに同じ計算処理する場合に使用するものです。
- 変数(Variable)
- 変化する値を格納
- 定数(Constant)
- 変化しない値を格納
例えば、消費税の計算をするとき、「消費税 = 商品価格 × 0.1」という計算式を使います、
計算式自体は変化しませんが、商品の価格は変化します。つまり、「商品価格が変数」となります。
一方、変化しない値である「0.1が定数」となります。
動画解説
本記事の内容は以下動画でも解説しています。
変数のデータ型
データ型とは、変数に入れる「データの種類」のことです。
例えば、「テストの点数」といった数値で表されるデータもあれば、「人の名前」といった文字で表されるデータもあります。
Pythonでは、変数を扱う際に主に以下のデータ型が使われています。
(※これ以外にもデータ型はあります)
型名 | データの種類 | 例 |
---|---|---|
int型 | 整数(数値) | 3 |
float型 | 小数点(数値) | 1.23 |
str型 | 文字列 | “エクスカリバー” または ‘エクスカリバー’ |
bool型 | 真偽値 | True、False |
list型 | リスト | [1, 2, 3] |
tuple型 | タプル | (1, 2, 3) |
dict型 | 辞書 | {“one”:1, “two”:2, “three”:3} |
【変数名】付け方のルール
変数はプログラムの中で複数同時に使用できます。
そのため、それぞれの変数を区別するために名前をつけます。これを変数名といいます。
変数には好き勝手に名前を付けれるわけではなく以下のルールが定められています。
変数名のルール
- 1文字目は英文字もしくはアンダーバー(_)
- 2文字目以降は英数文字もしくはアンダーバー
- 予約語は使用できない(and、del、for、is、raise、assert、elif、from、lambda、return、break、else、global、not、try、class、except、if、or、while、continue、exec、import、pass、yield、def、finally、in、print)
- 大文字と小文字は区別される
変数に値を代入
Pythonでは「変数宣言」「型宣言」はありません。
「変数名 = 値」と記述するだけで、変数が作成されて値が入ります(代入)。
変数の型は代入された値によって自動的に決まります。(動的型付け)
また、変数の値(代入されたデータ)は、print関数で確認できます。
# 整数(数値) num1 = 2 print(num1) # 2 # 小数点(数値) num2 = 1.23 print(num2) # 1.23 # 文字列 sarvant = "savar" print(sarvant) # savar
補足
Pythonに導入されている動的型付けの利点と欠点は以下のとおりです。
- 利点
- 動的型付けによりどのような型の値でも変数に代入できるため、「記述量が短くなる」「プログラムの変更に強い」などの利点があります。
- 欠点
- 「実行時に型の不整合を検出できない」というデメリットもあります。例えば数値計算時に誤ったデータ型で処理されてもエラーにならないため、実行時に結果のデータがおかしくなり、その原因を探すのに苦労したりするので注意が必要です。数値計算の場合は、実行結果がおかしいとアルゴリズムの記述ミスばかりに目がいくため、データ型の不整合を見落としがちになります。
変数のデータ型を確認(type関数)
Pythonでは、type関数で変数のデータ型をチェックできます。
# 整数(数値) num1 = 2 print(type(num1)) # <class 'int'> # 小数点(数値) num2 = 1.23 print(type(num2)) # <class 'float'> # 文字列 sarvant = "savar" # シングルクォーテーション(')で囲ってもOK print(type(sarvant)) # <class 'str'>
各データ型の使い方の詳細は下記ページで紹介しています。
定数の代入
Pythonには、定数を定義する機能はありません。
ただし、命名規則(PEP8)では、定数として扱う変数を定義するときは変数名をすべて大文字(+アンダースコア)で構成すると記載されています。
つまり、定数として扱っていることをわかりやすくします。
# 定数として扱う変数 MAX_NUM = 100 print(MAX_NUM) # 100
コメント