メインコンテンツへスキップ
Lesson1 / 9

変数の基本

目次

このレッスンで学ぶこと

  • 変数とは何か、なぜ必要なのか
  • 変数の作り方と使い方
  • 変数の命名ルール
  • 変数を使った計算の基本

変数とは

変数は、プログラムの中でデータを保存するための「箱」のようなものです。

Pythonでプログラムを書くとき、数値や文字列などのデータを扱います。このデータに名前を付けて保存する仕組みが変数です。

変数のイメージ

変数は、現実世界の「ラベル付きの容器」に例えられます:

┌─────────────┐
│  name       │ ← ラベル(変数名)
├─────────────┤
│  "太郎"     │ ← 中身(データ)
└─────────────┘
  • 変数名: データを識別するための名前(例: name, age, score
  • : 変数に保存されているデータ(例: "太郎", 25, 85.5

料理に例えるなら、調味料入れのようなものです。「砂糖」「塩」とラベルを貼った容器に入れておけば、必要なときにすぐ取り出せます。

💡 豆知識: 変数は英語で「Variable」といい、「変わる」という意味があります。プログラムの実行中に中身を変えられることから、この名前が付きました。


なぜ変数が必要なのか?

プログラムで計算や処理を行うとき、データを一時的に記憶しておく場所が必要です。

変数がないと困る例

Python
# ❌ 変数を使わない場合
print("太郎さんの年齢は25歳です")
print("太郎さんは東京に住んでいます")
print("太郎さんの趣味はプログラミングです")
# 名前を変更したい場合、すべて書き換える必要がある
Python
# ✅ 変数を使う場合
name = "太郎"
print(f"{name}さんの年齢は25歳です")
print(f"{name}さんは東京に住んでいます")
print(f"{name}さんの趣味はプログラミングです")
# 変数を変更するだけで、すべての場所が更新される

変数を使うメリット

  1. 再利用: 同じデータを何度も使える
  2. 変更が容易: 値を変更すると、使っている場所すべてに反映される
  3. わかりやすさ: データに意味のある名前を付けられる
  4. 計算結果の保存: 複雑な計算の途中結果を保存できる

変数の基本的な使い方

変数の作成(代入)

Pythonでは = を使って、変数にデータを入れます。

Python
name = "太郎"
age = 25

読み方:

  • name = "太郎" → 「nameという変数に『太郎』を代入する」
  • age = 25 → 「ageという変数に25を代入する」

注意: = は「等しい」ではなく「右の値を左の変数に入れる」という意味です。


変数の使用

一度作った変数は、名前を書くだけで中身を取り出せます。

Python
name = "太郎"
print(name)  # 太郎

変数の上書き

変数は何度でも新しい値を入れ直せます。

Python
count = 10
print(count)  # 10

count = 20
print(count)  # 20

古い値(10)は消えて、新しい値(20)になります。


具体例

例1: 簡単な計算

Python
# 商品の価格
price = 1000

# 消費税込みの金額を計算
total = price * 1.1

print(total)  # 1100.0

例2: 複数の変数を使う

Python
# 点数を変数に保存
math = 80
english = 75
science = 90

# 合計を計算
total = math + english + science

# 平均を計算
average = total / 3

print(f"合計: {total}点")      # 合計: 245点
print(f"平均: {average}点")    # 平均: 81.66666666666667点

例3: 変数を使った文字列

Python
name = "太郎"
age = 25

# 変数を使って文章を作る
message = f"{name}さんは{age}歳です"
print(message)  # 太郎さんは25歳です

f"{変数}" という書き方で、文字列の中に変数の値を埋め込めます。


例4: 変数同士の計算

Python
a = 10
b = 5

sum_result = a + b      # 足し算
diff = a - b            # 引き算
product = a * b         # 掛け算
quotient = a / b        # 割り算

print(sum_result)   # 15
print(diff)         # 5
print(product)      # 50
print(quotient)     # 2.0

例5: 変数の値を更新

Python
score = 0
print(f"現在のスコア: {score}")  # 現在のスコア: 0

# 10点追加
score = score + 10
print(f"現在のスコア: {score}")  # 現在のスコア: 10

# さらに5点追加
score = score + 5
print(f"現在のスコア: {score}")  # 現在のスコア: 15

score = score + 10 は「今のscoreに10を足した結果を、新しいscoreにする」という意味です。


例6: 変数名は意味のある名前に

Python
# 悪い例(何の変数か分からない)
a = 1000
b = 0.1
c = a * b
print(c)

# 良い例(変数名から意味が分かる)
price = 1000
tax_rate = 0.1
tax = price * tax_rate
print(tax)  # 100.0

変数の命名ルール

必ず守るべきルール

  1. 使える文字:

    • 英字(a-z, A-Z)
    • 数字(0-9)※ただし先頭には使えない
    • アンダースコア(_)
  2. 使えない文字:

    • 記号(!、@、#など)
    • スペース
    • 日本語(技術的には可能だが推奨されない)
  3. 予約語は使えない:

    • Pythonが特別な意味で使っている単語(if、for、whileなど)

正しい例:

Python
name = "太郎"
user_age = 25
score1 = 100
_private = "secret"

間違った例:

Python
1name = "太郎"          # 数字で始まっている
user-age = 25          # ハイフンは使えない
my score = 100         # スペースは使えない
if = 10                # 予約語は使えない

推奨される命名スタイル

snake_case(スネークケース): 単語を小文字で書き、複数の単語を _ でつなぐ。Pythonでは、このスタイルが推奨されます。

Python
user_name = "太郎"
total_price = 5000
max_score = 100

分かりやすい名前を付ける:

Python
# 悪い例
x = 1000
y = 0.1
z = x * y

# 良い例
price = 1000
tax_rate = 0.1
tax_amount = price * tax_rate

よくある間違い

間違い1: 変数を作る前に使う

Python
print(score)  # NameError: name 'score' is not defined
score = 100

原因: 変数は使う前に必ず作成(代入)する必要があります。

正しい書き方:

Python
score = 100
print(score)  # 100

間違い2: === の混同

Python
# 間違い
x = 10
if x = 10:  # SyntaxError
    print("xは10です")

原因:

  • = は代入(値を入れる)
  • == は比較(等しいか確認)

正しい書き方:

Python
x = 10
if x == 10:
    print("xは10です")

間違い3: 変数名のタイポ

Python
user_name = "太郎"
print(user_namme)  # NameError: name 'user_namme' is not defined

原因: user_nameuser_namme と打ち間違えています。

解決策: 変数名は正確に入力しましょう。コピー&ペーストも有効です。


間違い4: 文字列のクォーテーション忘れ

Python
name = 太郎  # NameError: name '太郎' is not defined

原因: 文字列は " " または ' ' で囲む必要があります。

正しい書き方:

Python
name = "太郎"

間違い5: 予約語を変数名に使う

Python
if = 10  # SyntaxError: invalid syntax
for = 20  # SyntaxError: invalid syntax

原因: iffor などはPythonが特別な用途で使う単語です。

正しい書き方:

Python
condition = 10
loop_count = 20

練習問題

問題1(基礎)⭐☆☆

以下のプログラムを完成させてください。「name」に自分の名前、「age」に自分の年齢を入れて、「〇〇さんは△△歳です」と表示してください。

Python
name = # ここに名前を入れる
age = # ここに年齢を入れる

print(f"{name}さんは{age}歳です")
💡 ヒント

文字列は " " で囲み、数字はそのまま書きます。

✅ 解答例
Python
name = "太郎"
age = 25

print(f"{name}さんは{age}歳です")

実行結果:

太郎さんは25歳です

解説: 文字列型の値は必ずクォーテーションで囲みます。数値型はそのまま書きます。f"{変数}" という書き方で、文字列の中に変数の値を埋め込めます。


問題2(基礎)⭐☆☆

りんごの値段が150円、みかんの値段が100円です。それぞれ3個ずつ買ったときの合計金額を計算して表示してください。

💡 ヒント
  1. りんごとみかんの値段を変数に保存
  2. それぞれ3個分の金額を計算
  3. 合計を計算して表示
✅ 解答例
Python
apple_price = 150
orange_price = 100

# 3個ずつの金額
apple_total = apple_price * 3
orange_total = orange_price * 3

# 合計
total = apple_total + orange_total

print(f"合計金額: {total}円")

実行結果:

合計金額: 750円

解説: 変数を使うことで、計算の途中結果を保存できます。後で値段が変わっても、最初の2行を変更するだけで対応できます。


問題3(応用)⭐⭐☆

ある商品の定価が5000円です。20%割引したときの価格と、割引額を計算して表示してください。

💡 ヒント
  • 20%割引 = 元の価格の80%(0.8倍)
  • 割引額 = 定価 - 割引後の価格
✅ 解答例
Python
# 定価
original_price = 5000

# 割引率(20%割引 = 0.8倍)
discount_rate = 0.8

# 割引後の価格
discounted_price = original_price * discount_rate

# 割引額
discount_amount = original_price - discounted_price

print(f"定価: {original_price}円")
print(f"割引後: {discounted_price}円")
print(f"割引額: {discount_amount}円")

実行結果:

定価: 5000円
割引後: 4000.0円
割引額: 1000.0円

解説: 変数を使うことで、複雑な計算も段階的に分かりやすく書けます。また、割引率を変更したい場合も discount_rate の値を変えるだけで済みます。


まとめ

このレッスンでは、変数の基本と命名ルールを学びました。

  • 変数は値を保存して、後で再利用するための仕組みです。
  • 変数名 = 値 の形で代入し、変数名を使って値を参照できます。
  • 値を更新するときも同じ代入構文を使って上書きできます。
  • 意味が分かる変数名を使うことで、コードの可読性が上がります。
  • 命名では snake_case を基本にし、予約語や先頭数字を避けることが重要です。