【第3回】変数とデータ型:コーヒーと釣りの記録を「データ」にする

Python入門

第1回では、「なぜ celestial biome でPythonなのか?」という世界観の話をしました。
第2回では、実際にPythonを動かす環境を用意して、coffee.py というファイルに「今日のコーヒー」を出力するところまで進みました。

第3回の今回は、いよいよ 「データとして扱う」ための最初の概念 に入っていきます。

  • 変数(へんすう)
  • データ型(数値・文字列・真偽値)

と聞くと、少しだけ数学の授業っぽく感じるかもしれませんが、ここではもっと生活寄りに考えます。

例えば、ノートに

  • 「2025/05/01 中禅寺湖 ブラウン 52cm 南西の風」
  • 「今日のコーヒー:エチオピア浅煎り フルーティー」

と書き留めるように、Pythonの中にも

  • 日付
  • 場所
  • 魚の種類
  • サイズ
  • コーヒーの名前
  • ひとことメモ

を置いていくイメージです。

今回のゴールは、

釣りとコーヒーの「1件分のログ」を、変数を使って表現できるようになること。

難しいことはまだやりません。
まずは、「箱に名前をつけてデータを入れる」感覚をつかんでいきましょう。


この回のゴールとやること

この第3回でできるようになってほしいことは、次の4つです。

  • 「変数とは何か」を、自分の言葉で説明できる
  • 代表的なデータ型(数値・文字列・真偽値)のイメージが持てる
  • コーヒー1杯分、釣り1回分のログを変数で表現できる
  • print() で、変数の中身を組み合わせて表示できる

これができれば、次のステップで扱う

  • 複数件をまとめる「リスト」
  • 項目ごとに管理する「辞書(dict)」

へスムーズに進めます。

変数とは?ノートの「項目名」のようなもの

まずは、変数(variable)という言葉のイメージから。

変数は、「値に名前をつけるためのラベル」 だと思ってください。

ノートにこう書くとします。

  • 日付:2025/05/01
  • 場所:中禅寺湖
  • 魚の種類:ブラウントラウト
  • サイズ:52cm

「日付」「場所」「魚の種類」「サイズ」という ラベル の横に、具体的な値を書いていますよね。

Pythonでも同じで、

date = "2025/05/01"
lake = "中禅寺湖"
fish_type = "ブラウントラウト"
fish_length_cm = 52

のように書くことで、

  • date という名前の「箱」に "2025/05/01" という文字列を入れる
  • fish_length_cm という箱に 52 という数値を入れる

ということをやっています。

変数の書き方の基本

変数の書き方はシンプルです。

名前 = 値

例えば:

coffee_name = "エチオピア浅煎り"
coffee_memo = "少しフルーティーで、朝の湖に合う味。"
cups = 2

= は「等しい」という意味ではなく、「右側の値を左側の名前に入れる」 という矢印のようなイメージで捉えておくと分かりやすいです。

代表的なデータ型たち 数値・文字列・真偽値

次は、変数の中身である「データの種類」について見ていきます。
Pythonでは、よく使うデータの種類(型)はいくつかありますが、まずはこの3つからで十分です。

  1. 数値(int / float)
  2. 文字列(str)
  3. 真偽値(bool)

数値(int / float)

  • int:整数(例:0, 1, -3, 52)
  • float:小数(例:0.5, 3.14, -2.7)

釣りやコーヒーでいうと:

fish_length_cm = 52        # 整数(int)
water_temp = 12.3          # 小数(float)
coffee_grams = 15          # 豆のグラム数
brew_time_minutes = 3.5    # 抽出時間(分)

文字列(str)

テキストのデータは、文字列(string) として扱います。

lake = "中禅寺湖"
fish_type = "ブラウントラウト"
coffee_name = "エチオピア浅煎り"
mood = "夕方の風が気持ちいい"

"..."'...' も、どちらも文字列として使えます。

真偽値(bool)

真偽値は、

  • True(真)
  • False(偽)

の2種類だけです。

例えば:

is_released = True          # キャッチ&リリースしたか?
is_raining = False          # 雨が降っていたか?
is_morning_coffee = True    # 朝のコーヒーか?

あとで条件分岐(if文)を学ぶときに、この真偽値が生きてきます。

コーヒーログを変数で表現してみる

では、第2回でつくった coffee.py を少しだけ育ててみましょう。
「今日のコーヒー」を、個別の変数に分けて書いてみます。

coffee_name = "エチオピア浅煎り"
coffee_roast = "浅煎り"
coffee_memo = "少しフルーティーで、朝の湖に合う香り。"
coffee_score = 4.5          # 5点満点中の自己評価
is_morning_coffee = True    # 朝に飲んだかどうか

print("今日のコーヒー情報")
print("----------------")
print("名前:", coffee_name)
print("焙煎度:", coffee_roast)
print("メモ:", coffee_memo)
print("自己評価:", coffee_score, "/ 5.0")
print("朝のコーヒー?:", is_morning_coffee)

print() のところで、

  • 文字列と変数をカンマで区切って並べる

という書き方をしています。
こうすると、Pythonがいい感じにスペースを挟んで表示してくれます。


釣りの1回分のログも変数で書いてみる

次は、釣りの1回分の記録を変数で持たせてみます。
※あくまで例なので、自由に自分の実際の条件に書き換えてOKです。

date = "2025/05/01"
lake = "中禅寺湖"
fish_type = "ブラウントラウト"
fish_length_cm = 52
weather = "くもり時々晴れ"
wind = "南西の風"
is_released = True

print("今日の釣りログ")
print("----------------")
print("日付:", date)
print("場所:", lake)
print("魚種:", fish_type)
print("サイズ:", fish_length_cm, "cm")
print("天気:", weather)
print("風:", wind)
print("リリースした?:", is_released)

ターミナルで python3 coffee.py を実行すると以下のようにログが出力されます。

ここまで来ると、ノートに書くのと感覚はあまり変わりません。
ただ、Pythonの中に入っていることで、

  • あとで「50cm以上の魚だけ」を抽出したり
  • 「ブラウントラウトだけ」を集計したり

といった、データとしての遊び方 ができるようになります。

型を確認する type() 関数

変数にどんな型のデータが入っているのか、Pythonに聞いてみることもできます。
それが type() という関数です。

coffee_name = "エチオピア浅煎り"
fish_length_cm = 52
is_morning_coffee = True

print(type(coffee_name))
print(type(fish_length_cm))
print(type(is_morning_coffee))

実行すると、例えばこんな風に表示されます。

<class 'str'>
<class 'int'>
<class 'bool'>
  • str → 文字列
  • int → 整数
  • bool → 真偽値

という意味です。

「あれ?この変数って何が入ってたっけ?」と迷ったときは、type() に聞けばOKです。

文字列と数値を一緒に出力するときの注意点

初心者がよくハマるポイントを、ここでひとつだけ触れておきます。

次のようなコードは、エラーになります。

fish_length_cm = 52
print("サイズは " + fish_length_cm + "cm です")

Pythonは、

  • "サイズは " → 文字列
  • fish_length_cm → 整数(int)
  • "cm です" → 文字列

という扱いをしているので、

「文字列と整数を + でくっつけるのは無理!」

となって怒られます。

解決方法はいくつかありますが、今の段階では2つだけ覚えておけば十分です。

1. str() で数値を文字列に変換する

fish_length_cm = 52
print("サイズは " + str(fish_length_cm) + "cm です")

2. f文字列(f-string)を使う

fish_length_cm = 52
print(f"サイズは {fish_length_cm}cm です")

f文字列は、

  • 文字列の前に f をつける
  • 中かっこ {} の中に変数を書く

という書き方です。

今後もたくさん使うので、「こういう書き方があるんだな」と頭の片隅に置いておいてください。

今日のまとめ 「ひとつの釣行・一杯のコーヒー」をデータとして持つ

今回は、

  • 変数:値に名前をつけるラベル
  • データ型:数値(int, float)、文字列(str)、真偽値(bool)
  • コーヒー1杯分のログを変数で表現する
  • 釣り1回分のログを変数で表現する

というところまで進みました。

ここまでできていると、すでにあなたは

「自分の世界観(釣り・コーヒー)を、Pythonの中に持ち込めている状態」

です。

あとは、この「1回分のログ」を

  • 1日分
  • 1シーズン分
  • 1年分

と積み重ねていくだけで、自分だけのデータベース に育っていきます。

次回予告 複数件のログを扱うためのリストと辞書へ

次回からは、いよいよ

  • 複数の値をまとめて扱う「リスト」
  • 項目ごとに情報を持てる「辞書(dict)」

に入っていきます。

例えば、

  • 「今シーズンの釣りログを全部リストにする」
  • 「1件の釣行を辞書で表現する」

といった形で、

「ノート1ページ分の情報」

をPythonで表現できるようにしていきます。

そこまで行くと、

  • 「今シーズンで一番大きかった魚」
  • 「エチオピアのコーヒーだけを抽出」

など、ちょっとした集計や分析 ができるようになってきます。

引き続き、湖とコーヒーと一緒に、ゆっくり進んでいきましょう。

コメント