基礎から学ぶPython入門 90日コース | Python基礎 - Day 2:変数とデータ型

Python 90日で身につけるPython
スポンサーリンク
スポンサーリンク

Day 2:変数とデータ型 ― 「値に名前をつけて、コンピュータと会話できるようになる」

Day 2では、「変数」と「データ型」という、プログラミングの超基本を扱います。 ここをしっかり押さえておくと、後の条件分岐やループ、関数、クラスなどが一気に理解しやすくなります。 変数は「値に名前をつける仕組み」、データ型は「その値がどんな種類なのかを表すラベル」だと思ってください。

変数 ― 「値にラベルを貼って、あとから何度でも使えるようにする」

変数とは、「値に名前をつけて、あとからその名前で参照できるようにする仕組み」です。 Pythonでは、次のように書きます。

# 変数の基本的な使い方

name = "Python"   # 変数nameに文字列"Python"を入れる
age = 30          # 変数ageに整数30を入れる

# 変数を使ってメッセージを表示する
print("名前:", name)  # nameの中身を表示
print("年齢:", age)    # ageの中身を表示
Python

ここで重要なのは、「= はイコールではなく『代入』」だということです。 数学の「左辺と右辺が等しい」という意味ではなく、「右側の値を左側の変数に入れる」という意味になります。

例えば、次のようなコードを見てください。

x = 10      # xに10を入れる
y = x + 5   # yにx+5の結果(15)を入れる

print(x)    # 10が表示される
print(y)    # 15が表示される
Python

y = x + 5 の時点で、Pythonは「今の x の値(10)を使って計算し、その結果(15)を y に入れる」という処理をしています。 このように、変数は「一度入れた値を、あとから何度でも使えるようにするための箱」と考えると分かりやすいです。

文字列 ― 「文字の並びを扱うためのデータ型」

文字列(string)は、「文字の並び」を表すデータ型です。 Pythonでは、文字列は " " または ' ' で囲んで表現します。

# 文字列の基本

greeting = "こんにちは"      # 日本語の文字列
language = "Python"         # 英語の文字列
sentence = "Pythonは楽しいです"  # 文としての文字列

print(greeting)             # こんにちは
print(language)             # Python
print(sentence)             # Pythonは楽しいです
Python

文字列は、結合したり、部分的に取り出したり、長さを調べたりできます。 まずは「結合」の例を見てみます。

# 文字列の結合

first_name = "Taro"   # 名前
last_name = "Yamada"  # 苗字

# + を使って文字列をつなげる
full_name = last_name + " " + first_name

print(full_name)  # Yamada Taro と表示される
Python

ここで、+ は「足し算」ではなく「文字列の結合」として働いています。 文字列同士をつなげるときに使う記号だと覚えておくと良いです。

セキュリティの観点では、文字列は「ユーザー入力」や「ログメッセージ」を扱うときに非常に重要です。 後々、「危険な文字列をどう扱うか」「ログに何を残すか」といった話につながっていきます。

整数 ― 「小数点のない数値を扱うためのデータ型」

整数(int)は、「小数点のない数値」を表すデータ型です。 Pythonでは、単に数字を書くだけで整数として扱われます。

# 整数の基本

age = 20        # 年齢(整数)
year = 2024     # 年(整数)
count = 5       # 回数(整数)

print(age)      # 20
print(year)     # 2024
print(count)    # 5
Python

整数は、四則演算(足し算、引き算、掛け算、割り算)に使えます。

# 整数の計算

a = 10
b = 3

print(a + b)   # 足し算 → 13
print(a - b)   # 引き算 → 7
print(a * b)   # 掛け算 → 30
print(a / b)   # 割り算 → 3.333...(結果は小数になる)
print(a // b)  # 整数の割り算(切り捨て) → 3
print(a % b)   # 剰余(割ったときの余り) → 1
Python

ここで、/ は「普通の割り算」で結果が小数になります。 // は「整数の割り算」で、小数点以下を切り捨てます。 % は「余り」を求める演算で、例えば「偶数か奇数か」を判定するときに使います。

# 偶数か奇数かを判定する例

number = 7  # 判定したい数

# 2で割った余りが0なら偶数、1なら奇数
if number % 2 == 0:
    print("偶数です")
else:
    print("奇数です")
Python

整数は、カウンタ(回数を数える)、インデックス(位置を表す)、ID(識別子)など、あらゆる場面で使われます。 セキュリティの世界でも、「試行回数」「失敗回数」「ログイン試行の制限」などを整数で管理することが多いです。

小数 ― 「小数点を含む数値を扱うためのデータ型」

小数(float)は、「小数点を含む数値」を表すデータ型です。 Pythonでは、数字に小数点を含めると自動的に float として扱われます。

# 小数の基本

price = 199.99      # 価格(小数)
tax_rate = 0.1      # 税率(10%)
temperature = 36.5  # 体温(小数)

print(price)        # 199.99
print(tax_rate)     # 0.1
print(temperature)  # 36.5
Python

小数は、金額計算や割合、測定値などを扱うときに使います。 ただし、コンピュータ内部では小数の表現に誤差が出ることがあるため、金額計算などでは注意が必要です。

# 小数の計算例

price = 100.0      # 元の価格
tax_rate = 0.1     # 税率10%

tax = price * tax_rate      # 税額を計算
total = price + tax         # 合計金額を計算

print("税額:", tax)        # 10.0
print("合計:", total)      # 110.0
Python

この程度の計算では問題ありませんが、より厳密な金額計算が必要な場合は decimal モジュールを使うこともあります。 Day 2では、「小数は float 型で扱う」という基本だけ押さえておけば十分です。

真偽値 ― 「True / False で条件を表すためのデータ型」

真偽値(bool)は、「真(True)か偽(False)か」を表すデータ型です。 Pythonでは、TrueFalse が真偽値として用意されています。

# 真偽値の基本

is_active = True      # 有効かどうか
is_admin = False      # 管理者かどうか

print(is_active)      # True
print(is_admin)       # False
Python

真偽値は、条件分岐(if文)と組み合わせて使うことが多いです。

# ログイン状態に応じてメッセージを変える例

is_logged_in = True  # ログインしているかどうか

if is_logged_in:
    print("ログイン済みです")
else:
    print("ログインしていません")
Python

また、比較演算の結果も真偽値になります。

# 比較演算の結果はTrueかFalseになる

a = 10
b = 20

print(a < b)   # 10 < 20 → True
print(a > b)   # 10 > 20 → False
print(a == b)  # 10 == 20 → False
print(a != b)  # 10 != 20 → True
Python

セキュリティの観点では、「このユーザーは認証済みか」「この操作は許可されているか」「この入力は安全か」といった判定を、真偽値で表現します。 真偽値は、「条件をコードで表すための言葉」だと思ってください。

type() ― 「この変数のデータ型は何か」を確認するための関数

type() は、「その値がどのデータ型なのか」を教えてくれる関数です。 初心者にとっては、「今自分が扱っているものが何なのか」を確認するための強力なツールになります。

# type()でデータ型を確認する例

name = "Python"   # 文字列
age = 30          # 整数
height = 1.75     # 小数
is_student = True # 真偽値

print(type(name))       # <class 'str'> 文字列型
print(type(age))        # <class 'int'> 整数型
print(type(height))     # <class 'float'> 小数型
print(type(is_student)) # <class 'bool'> 真偽値型
Python

type() の結果は、<class 'str'> のように表示されます。 ここで 'str' は文字列型、'int' は整数型、'float' は小数型、'bool' は真偽値型を表しています。

例えば、次のような場面で役に立ちます。

# ユーザー入力を受け取ったときに、型を確認する例

value = input("何か入力してください: ")  # input()は常に文字列を返す

print("入力された値:", value)
print("データ型:", type(value))  # <class 'str'> と表示される
Python

ここで、「input() は常に文字列を返す」ということが分かります。 数値として扱いたい場合は、int()float() で変換する必要があります。

# 文字列を整数に変換する例

value = input("年齢を入力してください: ")  # 例: "20"

age = int(value)  # 文字列を整数に変換

print("年齢:", age)
print("データ型:", type(age))  # <class 'int'> と表示される
Python

type() は、「今扱っているものが何なのか」を確認するための安全装置です。 特に、外部からの入力やAPIのレスポンスなどを扱うときに、型を確認しておくことはセキュリティ的にも重要です。

変数の命名規則 ― 「意味が伝わる名前を、ルールに沿ってつける」

変数の名前(変数名)は、「その変数が何を表しているか」を示す重要な情報です。 Pythonにはいくつかの命名規則がありますが、初心者向けに押さえておきたいポイントは次の通りです。

英数字とアンダースコア(_)が使える 先頭に数字は使えない(1name はNG、name1 はOK) 大文字と小文字は区別される(nameName は別物) 予約語(if, for, while, class など)は使えない

具体例を見てみましょう。

# 良い変数名の例

user_name = "Taro"      # ユーザー名
user_age = 20           # ユーザーの年齢
is_admin = False        # 管理者かどうか
max_retry_count = 3     # 最大リトライ回数

# 悪い変数名の例(意味が分かりにくい)

a = "Taro"              # 何を表しているか分からない
b = 20                  # 何の20なのか分からない
flag = True             # 何のフラグなのか分からない
Python

良い変数名は、「その変数が何を表しているか」が一目で分かります。 悪い変数名は、「コードを書いた本人しか分からない」状態になりがちです。

セキュリティの観点でも、変数名は重要です。 例えば、

is_authenticated = True   # 認証済みかどうか
has_permission = False    # 権限があるかどうか
failed_login_count = 2    # 失敗したログイン回数
Python

のように、「何を判定しているのか」「何を数えているのか」が分かる名前をつけておくと、 後から「この条件は本当に正しいか」「この制限は十分か」を検証しやすくなります。

Day 2のまとめと次へのつながり

Day 2では、

変数とは何か 文字列(str) 整数(int) 小数(float) 真偽値(bool) type() で型を確認する方法 変数の命名規則

を学びました。

ここまで理解できると、「値に名前をつけて、種類を意識しながら扱う」という、プログラミングの基礎がかなり固まります。 次のステップでは、これらのデータ型を使って「条件分岐(if)」や「繰り返し(for / while)」を組み立てていきます。

Day 2で特に重要なのは、「変数は値の箱」「データ型はその箱の中身の種類」「type() で中身の種類を確認できる」という3点です。 この感覚が身につくと、エラーが出たときにも「型が違うのでは?」と冷静に考えられるようになり、セキュリティ的にも安全なコードを書きやすくなっていきます。


Day 2:変数とデータ型で「自己紹介プログラム」を作る

Day 2では、「自己紹介プログラム」を題材にして、変数と基本的なデータ型を体験していきます。 名前・年齢・身長・プログラミング経験の有無などを変数に入れながら、文字列・整数・小数・真偽値、そして type() の意味を、 実際のコードと一緒に理解していく流れで説明します。

変数とは何かを「自己紹介」でイメージする

まず、「変数とは何か」を自己紹介に結びつけて考えます。

  • 名前
  • 年齢
  • 身長
  • プログラミング経験があるかどうか

これらは、どれも「値」です。 Pythonでは、こうした値を「変数」という箱に入れて扱います。

# 自己紹介に使う変数を定義します

name = "太郎"          # 文字列(str)
age = 25               # 整数(int)
height = 170.5         # 小数(float)
is_programmer = True   # 真偽値(bool)

print(name)
print(age)
print(height)
print(is_programmer)
Python

ここでのポイントは、

  • nameageheightis_programmer が「変数名」
  • "太郎"25170.5True が「変数に入っている値」
  • 変数は「あとから中身を変えられるラベル付きの箱」のようなもの

というイメージです。

データ型の基本:文字列・整数・小数・真偽値

Pythonにはさまざまなデータ型がありますが、 自己紹介プログラムでは、まず次の4つを押さえると十分です。

文字列(str)

文字列は「テキスト」を表すデータ型です。

name = "太郎"      # ダブルクォーテーション
nickname = 'タロ'  # シングルクォーテーションでもOK

print(name)
print(nickname)
Python

自己紹介では、「名前」「出身地」「趣味」などを文字列で表現します。

整数(int)

整数は「小数点を含まない数」を表すデータ型です。

age = 25   # 年齢
year = 2026  # 年

print(age)
print(year)
Python

年齢や年数、回数など、「数えられるもの」を整数で表現します。

小数(float)

小数は「小数点を含む数」を表すデータ型です。

height = 170.5  # 身長(cm)
weight = 65.2   # 体重(kg)

print(height)
print(weight)
Python

身長や体重、割合など、「細かい値」を表現するときに使います。

真偽値(bool)

真偽値は「True(真)」か「False(偽)」のどちらかだけを取るデータ型です。

is_programmer = True      # プログラミング経験がある
likes_python = False      # Pythonが好きかどうか(例)

print(is_programmer)
print(likes_python)
Python

自己紹介では、「プログラミング経験があるか」「学生かどうか」「運転免許を持っているか」などを真偽値で表現できます。

type() で「変数の型」を確認する

type() は、「その値がどんなデータ型か」を教えてくれる関数です。 初心者の方にとっては、「今扱っているものが文字列なのか数値なのか」を確認するのにとても役立ちます。

name = "太郎"
age = 25
height = 170.5
is_programmer = True

print(type(name))         # <class 'str'>
print(type(age))          # <class 'int'>
print(type(height))       # <class 'float'>
print(type(is_programmer))# <class 'bool'>
Python

自己紹介プログラムを作るときにも、「この変数は文字列だったかな?」「これは数値かな?」と迷ったら、 type() で確認する癖をつけておくと安心です。

変数の命名規則と「読みやすさ」の大事さ

変数名には、いくつかのルールとおすすめの書き方があります。

基本ルール

  • 英字(a〜z、A〜Z)、数字(0〜9)、アンダースコア(_)が使えます
  • 先頭に数字は使えません(1name はNG)
  • スペースは使えません(user name はNG)
  • 記号(@-! など)は使えません
user_name = "太郎"   # OK
user1 = "花子"       # OK
_name = "匿名"       # OK(先頭のアンダースコアは特別な意味を持つこともあります)

# 1user = "NG"      # NG(先頭が数字)
# user-name = "NG"  # NG(ハイフンは使えない)
# user name = "NG"  # NG(スペースは使えない)
Python

読みやすい命名のコツ(自己紹介編)

自己紹介プログラムでは、次のような名前にすると読みやすくなります。

name = "太郎"                 # 名前
age = 25                      # 年齢
height_cm = 170.5             # 身長(cm)
is_student = False            # 学生かどうか
favorite_language = "Python"  # 好きなプログラミング言語
Python
  • 意味が分かる名前にする(xy ではなく、ageheight_cm
  • 単語をつなぐときはアンダースコアで区切る(favorite_language
  • 単位を含めるときは名前に入れておくと親切(height_cm

変数名は、「自分だけでなく他の人が読んだときにも意味が分かるようにする」ことが大事です。 セキュリティの観点でも、「何を表しているか分からない変数」はバグや誤解の原因になりやすいので、 意味のある名前をつける習慣はとても重要です。

自己紹介プログラムの基本形を作る

ここまでの内容を使って、シンプルな自己紹介プログラムを書いてみます。

# 自己紹介プログラム(基本版)

# 変数に自分の情報を入れます
name = "太郎"                 # 名前(文字列)
age = 25                      # 年齢(整数)
height_cm = 170.5             # 身長(小数)
is_student = False            # 学生かどうか(真偽値)
favorite_language = "Python"  # 好きなプログラミング言語(文字列)

# type()でデータ型を確認してみます
print("各変数のデータ型:")
print("name:", type(name))
print("age:", type(age))
print("height_cm:", type(height_cm))
print("is_student:", type(is_student))
print("favorite_language:", type(favorite_language))
print("-" * 20)

# 自己紹介メッセージを表示します(f文字列を使うと読みやすいです)
print(f"こんにちは、{name}です。")
print(f"年齢は{age}歳、身長は{height_cm}cmです。")
print(f"学生かどうか: {is_student}")
print(f"好きなプログラミング言語は{favorite_language}です。")
Python

このプログラムでは、

  • 変数に自分の情報を入れる
  • type() でデータ型を確認する
  • f文字列で自己紹介メッセージを表示する

という流れを体験できます。

ユーザー入力を使った「インタラクティブ自己紹介」

次に、ユーザー自身に入力してもらう形の自己紹介プログラムにしてみます。 ここでは、文字列として入力された値を、必要に応じて整数や小数に変換します。

# ユーザー入力を使った自己紹介プログラム

# ユーザーに情報を入力してもらいます
name = input("あなたの名前を入力してください: ")
age_text = input("あなたの年齢を入力してください(数字): ")
height_text = input("あなたの身長を入力してください(cm、数字): ")
is_student_text = input("あなたは学生ですか? (y/n): ")
favorite_language = input("好きなプログラミング言語を入力してください: ")

# 年齢と身長は数値に変換します
# 入力チェックを簡単に入れておくと安全です
if age_text.isdigit():
    age = int(age_text)  # 整数に変換
else:
    age = None
    print("年齢は数字で入力されませんでした。")

try:
    height_cm = float(height_text)  # 小数に変換
except ValueError:
    height_cm = None
    print("身長は数値として解釈できませんでした。")

# 学生かどうかを真偽値に変換します
is_student = (is_student_text.lower() == "y")

# type()で確認してみます
print("-" * 20)
print("各変数のデータ型:")
print("name:", type(name))
print("age:", type(age))
print("height_cm:", type(height_cm))
print("is_student:", type(is_student))
print("favorite_language:", type(favorite_language))
print("-" * 20)

# 自己紹介メッセージを表示します
print("自己紹介:")
print(f"こんにちは、{name}さん。")

if age is not None:
    print(f"年齢は{age}歳ですね。")
else:
    print("年齢は不明です。")

if height_cm is not None:
    print(f"身長は{height_cm}cmですね。")
else:
    print("身長は不明です。")

print(f"学生かどうか: {is_student}")
print(f"好きなプログラミング言語は{favorite_language}ですね。")
Python

このプログラムでは、

  • input() でユーザーから文字列として情報を受け取る
  • int()float() で数値に変換する
  • is_student_text.lower() == "y" で真偽値に変換する
  • type() でデータ型を確認する
  • 変換に失敗した場合は None を入れて「不明」として扱う

という流れを体験できます。

ここで「入力チェック」を入れているのは、 セキュリティや安全性の観点から「想定外の入力でプログラムが止まらないようにする」ためです。 Day 2の段階でも、「入力は必ずしもきれいな値とは限らない」という意識を少し持っておくと、 後の学習がぐっとスムーズになります。

Day 2(制作編)のまとめ

Day 2の制作編では、「自己紹介プログラム」を通して、

  • 変数に「名前・年齢・身長・状態」を入れて扱う感覚
  • 文字列(str)・整数(int)・小数(float)・真偽値(bool)の基本的な違い
  • type() で「今扱っている値の型」を確認する方法
  • 読みやすく・意味のある変数名をつける命名規則とコツ
  • ユーザー入力を数値や真偽値に変換して使う流れ

を体験していただきました。

ここまで来ると、「変数はただの箱ではなく、“意味のある情報を安全に扱うためのラベル付きの器”」として見えてくるはずです。 この感覚を土台に、今後は演算子・条件分岐・ループ・関数と組み合わせて、 より豊かな自己紹介やプロフィール管理、ユーザー情報の扱いへと自然に進んでいくことができます。

タイトルとURLをコピーしました