Pythonの変数・データ型をやさしく解説
PythonをコマンドプロンプトやPowerShellでPC上で動かすには、Pythonをダウンロードしてインストールする必要があります。
まだの方はPythonのインストールと開発環境の構築の記事を参考にして、Pythonをインストールしてください。
はじめに:プログラミングの第一歩は「変数」と「データ型」から
Webサイト制作の世界に足を踏み入れた皆さん、こんにちは!HTMLやCSSで見た目を作るのに慣れてきたら、次はいよいよ「動き」や「データ処理」を加えるステップ、プログラミングの世界が待っています。その中でも、特にPythonはシンプルで学びやすいことから、多くのWebクリエーターに選ばれています。
プログラミングを学ぶ上で、誰もが最初に出会うのが「変数(へんすう)」と「データ型(でーたがた)」です。これらは、プログラムがデータを扱うための最も基本的な仕組みであり、いわばプログラミングの骨格とも言える部分です。
「なんだか難しそう…」と感じるかもしれませんが、心配はいりません!この記事では、Pythonの変数とデータ型について、身近な例え話を交えながら、とことん優しく解説していきます。紹介するコードはすべて、コピー&ペーストするだけであなたのパソコンですぐに動かせます。「読んで理解する」だけでなく、「動かして体験する」ことを通じて、プログラミングの楽しさを感じていただけたら嬉しいです。
さあ、一緒にPythonの世界を探検し、あなたのWeb制作スキルを次のレベルへと引き上げましょう!
第1章: 変数ってなんだろう?データをしまっておく魔法の箱
プログラミングにおける変数とは、一言でいうと「データを入れておくための箱」のようなものです。この箱には好きな名前(ラベル)をつけることができ、中に数値や文字などのデータを入れて、後から自由に取り出したり、中身を入れ替えたりすることができます。
例えば、自己紹介文を作るとしましょう。「私の名前は山田太郎です。年齢は30歳です。」という文章があったとします。もし名前や年齢が変わるたびに、文章のあちこちを修正するのは大変ですよね。そこで変数の出番です。
1-1. 変数の作り方(代入)
変数という「箱」にデータを入れることを、プログラミングの世界では「代入(だいにゅう)」と呼びます。Pythonでは、=(イコール)を使って書きます。
変数名 = データ のように書くだけで、簡単に変数を作成できます。実際にやってみましょう。
以下のコードは、nameという名前の変数に「山田太郎」という文字列を、ageという変数に30という数値を入れています。
# nameという変数に「山田太郎」という文字列を代入
name = "山田太郎"
# ageという変数に30という数値を代入
age = 30
1-2. 変数の中身を見てみよう(出力)
変数にデータを入れただけでは、何も起こりません。中身をちゃんと確認したいですよね。そんな時に使うのがprint()関数です。print()のカッコの中に変数名を入れると、その変数に格納されているデータが表示(出力)されます。
name = "山田太郎"
age = 30
# name変数の中身を出力
print(name)
# age変数の中身を出力
print(age)
1-3. 変数の中身は入れ替え可能
変数の便利なところは、一度データを入れた後でも、新しいデータで上書きできる点です。箱の中身を入れ替えるイメージですね。
下の例では、最初に"Webデザイナー"を入れたjobという変数の中身を、後から"Webディレクター"に書き換えています。print()で出力すると、ちゃんと中身が変わっているのが確認できます。
job = "Webデザイナー"
print(job) # この時点では "Webデザイナー" が表示される
# 同じ変数に新しいデータを代入(上書き)
job = "Webディレクター"
print(job) # "Webディレクター" が表示される
第2章: データ型ってなんだろう?箱に入れるモノの種類
変数という「箱」には、色々な種類のデータを入れられると説明しました。この「データの種類」のことをデータ型と呼びます。
なぜデータ型が重要なのでしょうか?例えば、「100」というデータがあったとき、これは数値の100でしょうか、それとも「100」という文字でしょうか?人間なら文脈で判断できますが、コンピュータには明確に区別を教えてあげる必要があります。数値なら足し算や引き算ができますが、文字ならできませんよね。
Pythonには様々なデータ型が用意されていますが、まずはWeb制作でも特によく使う基本的なものを覚えましょう。
2-1. 文字列 (string) - テキストを表す
文章や単語など、文字の並びを扱うのが文字列型です。Pythonではstrと表現されます。文字列をプログラムで扱うには、" "(ダブルクォーテーション)か' '(シングルクォーテーション)で囲むのがルールです。
# ダブルクォーテーションを使った文字列
greeting = "こんにちは、世界!"
print(greeting)
# シングルクォーテーションを使った文字列
site_name = 'Web Creator Box'
print(site_name)
2-2. 数値 (number) - 計算はおまかせ
その名の通り、数値を扱うデータ型です。Pythonでは主に2種類を使い分けます。
- 整数 (integer):
1, 100, -50のような、小数点のつかない数値です。intと表現されます。
- 浮動小数点数 (float):
1.5, 3.14, -0.01のような、小数点以下の部分を持つ数値です。floatと表現されます。
数値は" "などで囲まず、そのまま書きます。囲んでしまうと、それは数値ではなく文字列になってしまうので注意してください。
# 整数型 (int)
user_count = 150
print(user_count)
# 浮動小数点数型 (float)
tax_rate = 1.10
print(tax_rate)
# 数値同士の計算もできる
total_price = 5000 * tax_rate
print(total_price)
2-3. ブーリアン (boolean) - Yes/Noの二択
ブーリアン型(または論理型)は、True(真・はい)とFalse(偽・いいえ)の2つの値しか持たない、非常にシンプルなデータ型です。boolと表現されます。
「ユーザーはログインしているか?」「公開設定はオンになっているか?」といった、Yes/Noで答えられる状態を管理するのに非常に便利です。Webサイトの機能実装で頻繁に使われます。
# ユーザーがログインしている状態を True で表す
is_logged_in = True
print(is_logged_in)
# 記事が公開されていない状態を False で表す
is_published = False
print(is_published)
2-4. リスト (list) - 複数のデータを順番に格納
複数のデータを、順番を保ったまま一つの変数にまとめて格納したい場合に使うのがリスト型です。[ ](角括弧)で全体を囲み、各データを,(カンマ)で区切ります。
Webサイトの「お知らせ一覧」や「商品カテゴリー一覧」など、複数の項目をまとめて扱いたいときに役立ちます。中に入れるデータ型はバラバラでも構いません。
# 趣味をリストで管理する
hobbies = ["読書", "映画鑑賞", "プログラミング", "散歩"]
print(hobbies)
# 0から始まる番号(インデックス)でデータを取り出す
print(hobbies[0]) # 最初の要素 "読書" が表示される
print(hobbies[2]) # 3番目の要素 "プログラミング" が表示される
2-5. 辞書 (dictionary) - キーと値のペアで管理
辞書型は、リストと同じように複数のデータを格納できますが、大きな違いがあります。リストが「順番」でデータを管理するのに対し、辞書は「キー」と「値(バリュー)」をペアにして管理します。
{ }(波括弧)で全体を囲み、"キー": 値 という形式でデータを記述します。
人のプロフィール情報のように、「名前」が「山田太郎」、「年齢」が「30」といった、各データに意味のあるラベルを付けたい場合に最適です。
# ユーザープロフィールを辞書で管理する
user_profile = {
"name": "鈴木一郎",
"age": 25,
"job": "Webエンジニア",
"is_student": False
}
print(user_profile)
# キーを指定してデータを取り出す
print(user_profile["name"]) # "鈴木一郎" が表示される
print(user_profile["job"]) # "Webエンジニア" が表示される
2-6. データ型を確認する `type()` 関数
「この変数には、今どんなデータ型のデータが入っているんだろう?」と確認したくなったときに便利なのがtype()関数です。カッコの中に変数名を入れると、そのデータ型を教えてくれます。
text = "こんにちは"
number = 123
pi = 3.14
is_active = True
items = [1, 2, 3]
profile = {"name": "佐藤"}
print( type(text) ) # と表示される
print( type(number) ) # と表示される
print( type(pi) ) # と表示される
print( type(is_active) ) # と表示される
print( type(items) ) # と表示される
print( type(profile) ) # と表示される
第3章: データ型の応用的な使い方
基本的なデータ型を覚えたら、次はそれらを組み合わせたり、変換したりする方法を見ていきましょう。これができると、表現の幅がぐっと広がります。
3-1. 文字列の結合
+記号を使うと、文字列同士を連結することができます。
last_name = "田中"
first_name = "圭"
full_name = last_name + first_name
print(full_name) # "田中圭" と表示される
3-2. 文字列と変数の組み合わせ (f-string)
「あなたのポイントは 100 点です」のように、文章の中に変数の値を埋め込みたいことは頻繁にあります。そんな時に非常に便利なのが「f-string(フォーマット済み文字列リテラル)」です。
文字列を囲むクォーテーションの前にfを付け、文章中の変数を{ }で囲むだけで、簡単に文字列と変数を組み合わせることができます。これは現代的なPythonの書き方で、非常によく使われます。
user_name = "ゲスト"
points = 120
# f-string を使って文字列を作成
message = f"{user_name}さんの現在のポイントは {points} 点です。"
print(message)
3-3. データ型の変換(キャスト)
プログラムを書いていると、「数値を文字列として扱いたい」あるいはその逆の「文字列の数字を、計算できる数値として扱いたい」という場面が出てきます。このように、あるデータ型を別のデータ型に変換することをキャストと呼びます。
str(データ): データを文字列に変換します。
int(データ): データを整数に変換します。
float(データ): データを浮動小数点数に変換します。
下の例では、文字列の"100"と"50"を、そのまま+でつなぐと文字として連結されて"10050"になってしまいます。そこでint()を使って数値に変換してから足し算をすることで、正しく150という計算結果を得ています。
# ユーザーから入力されたデータは、たとえ数字でも最初は文字列として扱われる
input_str_num1 = "100"
input_str_num2 = "50"
# 文字列のまま連結
print(input_str_num1 + input_str_num2) # "10050" になってしまう
# int() で数値に変換してから計算
num1 = int(input_str_num1)
num2 = int(input_str_num2)
print(num1 + num2) # 正しく 150 と表示される
第4章: Web制作で活かす!PythonでHTMLを生成してみよう
さて、ここまで学んだ変数とデータ型を使って、Webクリエーターの皆さんに身近な実践例をやってみましょう。Pythonプログラムを使って、動的にHTMLファイルそのものを生成する、という応用例です。
例えば、Webサイトのスタッフ紹介ページを想像してみてください。新しいスタッフが入るたびに手作業でHTMLを更新するのは大変です。しかし、Pythonを使えば、スタッフのデータ(辞書型で管理)を元に、自動でプロフィールページのHTMLを生成することができます。
【完全な実行例】PythonでプロフィールページHTMLを生成する
以下のPythonコードは、profile_dataという辞書に格納されたプロフィール情報を元に、profile.htmlという名前のHTMLファイルを書き出すプログラムです。
このコードをコピーしてprofile_generator.pyのような名前で保存し、実行してみてください。同じフォルダにprofile.htmlというファイルが生成されるはずです。
# profile_generator.py
# 辞書型でプロフィールデータを管理
profile_data = {
"name": "佐藤花子",
"job": "Webデザイナー",
"skills": ["HTML", "CSS", "JavaScript", "Python"],
"introduction": "見た目もコードも美しいデザインを心がけています。最近はPythonを使った業務効率化にハマっています!"
}
# f-stringを使ってHTMLの骨格を作成
# 辞書のデータやリストのデータを埋め込んでいる
html_content = f"""
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{profile_data['name']}のプロフィール</title>
<style>
body {{ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; line-height: 1.7; color: #333; background-color: #fdfdfd; max-width: 800px; margin: 2rem auto; padding: 0 1.5rem; }}
.profile-card {{ background: #fff; border: 1px solid #e0e0e0; border-radius: 12px; padding: 2.5rem; box-shadow: 0 6px 12px rgba(0,0,0,0.08); }}
h1 {{ color: #2c3e50; font-size: 2.5rem; margin-bottom: 0.5rem; }}
h2 {{ color: #34495e; border-bottom: 2px solid #3498db; padding-bottom: 0.5rem; margin-top: 2rem; }}
p {{ margin: 1rem 0; }}
.job-title {{ color: #7f8c8d; font-size: 1.2rem; font-weight: bold; margin-bottom: 2rem; }}
.skills-list {{ list-style: none; padding: 0; margin-top: 1rem; }}
.skills-list li {{ background: #3498db; color: white; padding: 0.3rem 1rem; border-radius: 16px; display: inline-block; margin: 0.3rem; font-size: 0.9rem; }}
</style>
</head>
<body>
<div class="profile-card">
<h1>{profile_data['name']}</h1>
<p class="job-title">{profile_data['job']}</p>
<h2>自己紹介</h2>
<p>{profile_data['introduction']}</p>
<h2>スキル</h2>
<ul class="skills-list">
{''.join([f'<li>{skill}</li>' for skill in profile_data['skills']])}
</ul>
</div>
</body>
</html>
"""
# ファイルを書き込みモードで開き、中身を書き出す
try:
with open("profile.html", "w", encoding="utf-8") as f:
f.write(html_content)
print("✅ 成功: profile.html を生成しました。ファイルを開いて確認してみてください。")
except IOError as e:
print(f"❌ エラー: ファイルの書き込みに失敗しました。 {e}")
生成されるHTMLファイルの完全なコード
上のPythonスクリプトを実行すると、中身が以下のようになっているprofile.htmlファイルが作られます。ブラウザで開くと、簡単なスタイルが適用されたプロフィールページが表示されるはずです。
このように、Pythonの変数やデータ型(特に辞書やリスト)をうまく使うことで、単なる静的なWebサイトから一歩進んだ、データに基づいたコンテンツ生成が可能になるのです。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>佐藤花子のプロフィール</title>
<style>
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; line-height: 1.7; color: #333; background-color: #fdfdfd; max-width: 800px; margin: 2rem auto; padding: 0 1.5rem; }
.profile-card { background: #fff; border: 1px solid #e0e0e0; border-radius: 12px; padding: 2.5rem; box-shadow: 0 6px 12px rgba(0,0,0,0.08); }
h1 { color: #2c3e50; font-size: 2.5rem; margin-bottom: 0.5rem; }
h2 { color: #34495e; border-bottom: 2px solid #3498db; padding-bottom: 0.5rem; margin-top: 2rem; }
p { margin: 1rem 0; }
.job-title { color: #7f8c8d; font-size: 1.2rem; font-weight: bold; margin-bottom: 2rem; }
.skills-list { list-style: none; padding: 0; margin-top: 1rem; }
.skills-list li { background: #3498db; color: white; padding: 0.3rem 1rem; border-radius: 16px; display: inline-block; margin: 0.3rem; font-size: 0.9rem; }
</style>
</head>
<body>
<div class="profile-card">
<h1>佐藤花子</h1>
<p class="job-title">Webデザイナー</p>
<h2>自己紹介</h2>
<p>見た目もコードも美しいデザインを心がけています。最近はPythonを使った業務効率化にハマっています!</p>
<h2>スキル</h2>
<ul class="skills-list">
<li>HTML</li><li>CSS</li><li>JavaScript</li><li>Python</li>
</ul>
</div>
</body>
</html>
第5章: 変数とデータ型で気をつけるべき点
最後に、変数やデータ型を扱う上で初心者がつまずきやすいポイントや、知っておくと良いルールをいくつか紹介します。
-
命名規則を守ろう
変数名は何でも良いわけではありません。Pythonでは、英小文字と数字、アンダースコア(_)を組み合わせて使います。単語間はアンダースコアでつなぐ「スネークケース」(例: user_name, total_price)が推奨されています。分かりやすく、かつ一貫性のある名前をつけましょう。
-
予約語は使えない
Pythonの文法として特別な意味を持つ単語(if, for, class, printなど)は、変数名として使えません。これらを「予約語」と呼びます。
-
大文字と小文字は区別される
nameという変数とNameという変数は、全く別のものとして扱われます。意図しないエラーの原因になるので注意しましょう。
-
動的型付け言語であることを理解する
Pythonは、変数に入れるデータによって型が自動的に決まる「動的型付け言語」です。これは書きやすさにつながる一方、最初は数値が入っていた変数に、後から文字列を代入することもできてしまいます。意図せず型が変わっていないか、type()関数などで時々確認する癖をつけると良いでしょう。
まとめ:プログラミングの基礎を固めて、次のステップへ!
この記事では、Pythonプログラミングの根幹をなす「変数」と「データ型」について、基本的な使い方からWeb制作での応用例までを解説しました。
- 変数はデータを入れておく「名前付きの箱」。
- データ型は箱に入れるデータの種類で、文字列(str)や数値(int, float)、リスト(list)、辞書(dict)などがある。
- これらを組み合わせることで、データを効率的に管理し、Webページの生成などを自動化できる。
変数とデータ型は、これから学ぶであろう条件分岐(if文)や繰り返し(for文)、関数といった、あらゆるPython基本構文の土台となります。ここでしっかりと基礎を固めておくことが、今後の学習をスムーズに進めるための鍵となります。
ぜひ、この記事のコードを何度も動かしてみて、「自分で書いたコードが動く」楽しさを存分に味わってください。その小さな成功体験の積み重ねが、あなたをより優れたクリエーターへと導いてくれるはずです。
次は、今回学んだブーリアン型(True/False)が活躍する「条件分岐」の世界に進んでみましょう!
次の記事へ:Pythonのif文で条件分岐をマスターしよう