変数とは?データにラベルを付ける方法#
はじめに#
今回は、これまでの記事でも度々登場していた「変数」についてより詳しく理解していきましょう。
変数は、プログラミングの中でも最も基本的かつ重要な概念の一つです。プログラミングを始めたばかりの方には少し抽象的に感じるかもしれませんが、変数をマスターすることで、より柔軟で効率的なプログラムを書けるようになります。
変数とは?#
変数とは、簡単に言えば「データにつけるラベル(名札)」です。プログラムの中で扱うデータ(数値、文字列など)に名前をつけて、その名前を通じてデータを利用できるようにする仕組みです。
例えば、「年齢は30歳」という情報を考えてみましょう。この場合、「30」というデータに「年齢」というラベルを付けることで、後で「年齢」という名前を使って「30」という値を利用できるようになります。
変数は次のような特徴を持っています。
- 名前を持つ: 変数には名前(識別子)がついています
- 値を格納する: 変数には値(データ)が格納されています
- 型を持つ: 変数に格納される値には型(種類)があります
- 変更可能: 変数の値は後から変更することができます
変数の宣言と代入#
Pythonでは、変数を作るときに特別な宣言は必要ありません。「変数名 = 値」という形で、変数に値を代入するだけで変数が作成されます。
Google Colabで以下のコードを実行してみましょう。
# 変数に値を代入する
age = 30
name = "山田太郎"
is_student = True
# 変数の値を表示する
print(age)
print(name)
print(is_student)
実行結果:
30
山田太郎
True
このコードでは、次のように変数を作成しています。
age
という変数に30
(整数)を代入name
という変数に"山田太郎"
(文字列)を代入is_student
という変数にTrue
(真偽値)を代入
それぞれの変数に格納された値をprint()
関数で表示しています。
変数の型#
変数が持つ値には「型(データ型)」があります。前回までの記事で学んだ数値(整数や浮動小数点数)や文字列もデータ型の一種です。
変数の型を確認するには、type()
関数を使用します。
# 変数の型を確認する
age = 30
name = "山田太郎"
height = 175.5
is_student = True
print(f"age の値は {age} で、型は {type(age)}")
print(f"name の値は {name} で、型は {type(name)}")
print(f"height の値は {height} で、型は {type(height)}")
print(f"is_student の値は {is_student} で、型は {type(is_student)}")
実行結果:
age の値は 30 で、型は <class 'int'>
name の値は 山田太郎 で、型は <class 'str'>
height の値は 175.5 で、型は <class 'float'>
is_student の値は True で、型は <class 'bool'>
Pythonでよく使われるデータ型には以下のようなものがあります。
int
: 整数(例:1, 42, -7)float
: 浮動小数点数(例:3.14, -0.5)str
: 文字列(例:"Hello", '山田')bool
: 真偽値(TrueまたはFalse)list
: リスト(例:[1, 2, 3])dict
: 辞書(例:{"name": "山田", "age": 30})NoneType
: None(値が存在しないことを表す特殊な値)
Pythonは変数に代入された値に応じて、自動的に型が決まります。
変数の値の変更#
変数の大きな特徴の一つは、値を後から変更できることです(これが「変数」と呼ばれる理由です)。
# 変数の値を変更する
count = 10
print(f"count の値: {count}")
# 値を変更
count = 20
print(f"count の新しい値: {count}")
# 別の型の値に変更することも可能
count = "たくさん"
print(f"count の新しい値: {count}")
実行結果:
count の値: 10
count の新しい値: 20
count の新しい値: たくさん
このように、変数count
の値を10
から20
に変更し、さらに文字列"たくさん"
に変更しています。Pythonでは、同じ変数に異なる型の値を代入することもできます。ただし、このような使い方は混乱を招くため、基本的には避けるべきでしょう。
変数を使った計算#
変数は計算の中で使うことができます。これにより、複雑な計算や繰り返し使用する値を簡潔に表現できます。
# 変数を使った計算
width = 5
height = 3
area = width * height # 面積を計算
print(f"幅: {width}")
print(f"高さ: {height}")
print(f"面積: {area}")
# 変数の値を更新して再計算
width = 10
area = width * height # 面積を再計算
print(f"新しい幅: {width}")
print(f"新しい面積: {area}")
実行結果:
幅: 5
高さ: 3
面積: 15
新しい幅: 10
新しい面積: 30
このコードでは、長方形の幅と高さを変数に格納し、面積を計算しています。その後、幅の値を変更して面積を再計算しています。このように、変数を使うことで、値が変わった時に簡単に再計算できます。
複数の変数に同時に値を代入#
Pythonでは、複数の変数に一度に値を代入することができます。
# 複数の変数に同時に代入
x, y, z = 1, 2, 3
print(f"x = {x}")
print(f"y = {y}")
print(f"z = {z}")
実行結果:
x = 1
y = 2
z = 3
変数の命名規則#
変数の名前(識別子)には、いくつかのルールがあります。
- 使える文字:
- アルファベット(A-Z, a-z)
- 数字(0-9)
- アンダースコア(_)
- 日本語の文字も使用可能(ただし、英語で書くことが一般的なので英語を使う癖をつけましょう)
- 制約:
- 数字で始めることはできない
- スペースや特殊記号(@, #, $など)は使用できない
- Pythonの予約語(
int
,if
,for
,class
などのようにPythonの文法で特別な意味を持つ単語)は変数名として使えない
- 大文字と小文字の区別:
name
とName
は異なる変数として扱われる
# 正しい変数名の例
name = "太郎"
age_1 = 30
_private = "非公開"
camelCase = "キャメルケース"
snake_case = "スネークケース"
名前 = "山田" # 日本語も使えるが一般的ではない
# 間違った変数名の例(実行するとエラーになるためコメントアウト)
# 1name = "不正" # 数字で始まっている
# user-name = "不正" # ハイフンは使えない
# for = "不正" # 予約語は使えない
命名規則(命名規約)#
プログラミングでは、変数の名前の付け方に関する慣習(命名規則・命名規約)があります。以下はPythonでよく使われる命名規則です。
- 変数名:
- 小文字のスネークケース(単語をアンダースコアでつなぐ)が一般的
- 例:
user_name
,item_count
,first_name
- 定数:
- すべて大文字のスネークケース
- 例:
MAX_VALUE
,PI
,DEFAULT_TIMEOUT
- クラス名:
- パスカルケース(各単語の先頭を大文字に)
- 例:
Person
,BankAccount
,FileManager
良い変数名は、その変数が何を表しているかを明確に示します。略語や抽象的な名前よりも、具体的な名前を使うことをおすすめします。
# 良い変数名の例
user_name = "山田太郎"
items_count = 42
is_active = True
# 避けるべき変数名の例
n = "山田太郎" # 何を表しているか不明瞭
x = 42 # 意味が不明
temp = True # 一時的な値のように見えるが目的が不明
定数#
Pythonには、他の言語のような真の「定数」(変更できない変数)の概念はありませんが、慣習として、変更するべきでない値はアルファベット大文字のスネークケースで表記します。この書き方にすることで、他の開発者に「この値は変更しないでください」という意図を伝えることができます。
# 定数の例(慣習的な表記)
PI = 3.14159
MAX_USERS = 100
DEFAULT_LANGUAGE = "日本語"
まとめ#
この記事では、プログラミングの基本概念である「変数」について学びました。
- 変数は「データにつけるラベル(名札)」である
- Pythonでは「変数名 = 値」で変数を作成・代入できる
- 変数には型(データ型)があり、
type()
関数で確認できる - 変数の値は後から変更することができる
- 変数を使うことで、値の再利用や変更時の再計算が容易になる
- 変数の命名には規則と慣習がある
変数は、これからのプログラミング学習において常に使う概念です。変数をうまく活用することで、より効率的で分かりやすいプログラムを書くことができるようになります。