4K・HD動画 変換スタジオ 7 | 変換スタジオ7 シリーズ | ボックス版 | Win対応
¥3,264 (2025-06-24 23:21 GMT +09:00 時点 - 詳細はこちら価格および発送可能時期は表示された日付/時刻の時点のものであり、変更される場合があります。本商品の購入においては、購入の時点で当該の Amazon サイトに表示されている価格および発送可能時期の情報が適用されます。)マカフィー リブセーフ 3年用 [パッケージ版] Win/Mac/iOS/Android対応
¥5,450 (2025-06-24 23:22 GMT +09:00 時点 - 詳細はこちら価格および発送可能時期は表示された日付/時刻の時点のものであり、変更される場合があります。本商品の購入においては、購入の時点で当該の Amazon サイトに表示されている価格および発送可能時期の情報が適用されます。)義妹生活14【電子特典付き】 (MF文庫J)
¥733 (2025-06-24 23:21 GMT +09:00 時点 - 詳細はこちら価格および発送可能時期は表示された日付/時刻の時点のものであり、変更される場合があります。本商品の購入においては、購入の時点で当該の Amazon サイトに表示されている価格および発送可能時期の情報が適用されます。)目次
Python文法の基礎:変数・条件分岐・ループを実例で学ぶ
こんにちは、ぽんたぬきです🦝
「Pythonの基本文法を理解したい」「変数やif文、for文の使い方を実例で学びたい」という方に向けて、私が実際に学習した順序で、Python文法の基礎を解説します。
この記事では、理論よりも実際に動くコードを重視し、「なぜこう書くのか」「実際にはどう使うのか」を中心に説明します。40代からプログラミングを始めた私の視点で、分かりやすく解説していきます。
Python文法学習の心構え
なぜ文法を覚える必要があるのか?
私が最初に疑問に思ったのは「なんでこんなにルールがあるの?」ということでした。しかし、文法はコンピュータとのコミュニケーションのルールなのです。
日本語の例:
- 「私は りんごを 食べる」→ 文法正しい
- 「私は 食べる りんごを」→ 意味は分かるが不自然
Pythonの例:
print("Hello")
→ 正しい文法("Hello")print
→ エラー
学習のコツ
- 小さなコードから始める
- 実際に手を動かして試す
- エラーを恐れない
- なぜそう書くのかを理解する
1. 変数:データを保存する箱
変数とは何か?
変数はデータを保存する箱のようなものです。箱に名前をつけて、後で中身を取り出せます。
# 変数の基本的な使い方
name = "ぽんたぬき"
age = 45
height = 170.5
print(name) # ぽんたぬき
print(age) # 45
print(height) # 170.5
私が最初に悩んだポイント
「なぜ型を指定しなくていいの?」
他の言語(C言語など)では:
int age = 45; // int(整数)と明示
char name[] = "..."; // char(文字)と明示
Pythonでは:
age = 45 # Pythonが自動で整数と判断
name = "ぽんたぬき" # Pythonが自動で文字列と判断
これを動的型付けといい、Pythonの大きな特徴です。
変数の命名ルール
ルール(これは守らないとエラー):
# ✅ 正しい変数名
my_name = "ぽんたぬき"
age2 = 45
total_price = 1000
# ❌ エラーになる変数名
2age = 45 # 数字から始まってはダメ
my-name = "..." # ハイフンは使えない
class = "A" # Pythonの予約語は使えない
慣習(読みやすくするため):
# ✅ 推奨される書き方
user_name = "ぽんたぬき" # スネークケース
total_amount = 1000
is_valid = True
# ❌ 読みにくい書き方
x = "ぽんたぬき" # 意味が分からない
userName = "ぽんたぬき" # キャメルケース(他言語の慣習)
TOTAL = 1000 # 大文字(定数用)
主なデータ型
# 文字列(string)
message = "こんにちは"
print(type(message)) # <class 'str'>
# 整数(integer)
age = 45
print(type(age)) # <class 'int'>
# 浮動小数点数(float)
height = 170.5
print(type(height)) # <class 'float'>
# 真偽値(boolean)
is_student = False
print(type(is_student)) # <class 'bool'>
実践例:家計簿プログラム
# 家計簿の基本情報
family_name = "田中家"
monthly_income = 350000
food_expense = 80000
utility_expense = 25000
rent = 100000
# 支出の合計
total_expense = food_expense + utility_expense + rent
# 残額の計算
remaining = monthly_income - total_expense
print(f"{family_name}の家計簿")
print(f"収入: {monthly_income:,}円")
print(f"支出合計: {total_expense:,}円")
print(f"残額: {remaining:,}円")
出力:
田中家の家計簿
収入: 350,000円
支出合計: 205,000円
残額: 145,000円
2. 条件分岐:状況に応じて処理を変える
if文の基本構造
if 条件:
条件が真の時の処理
else:
条件が偽の時の処理
実例で理解する条件分岐
年齢による判定:
age = 45
if age >= 20:
print("成人です")
else:
print("未成年です")
複数条件の判定:
score = 85
if score >= 90:
grade = "A"
elif score >= 80:
grade = "B"
elif score >= 70:
grade = "C"
elif score >= 60:
grade = "D"
else:
grade = "F"
print(f"点数: {score}, 評価: {grade}")
比較演算子
x = 10
y = 5
print(x == y) # False (等しい)
print(x != y) # True (等しくない)
print(x > y) # True (より大きい)
print(x < y) # False (より小さい)
print(x >= y) # True (以上)
print(x <= y) # False (以下)
論理演算子
age = 25
has_license = True
# and: 両方が真の時に真
if age >= 18 and has_license:
print("運転できます")
# or: どちらかが真の時に真
weather = "雨"
has_umbrella = False
if weather == "晴れ" or has_umbrella:
print("外出できます")
else:
print("外出は控えましょう")
# not: 真偽を反転
is_weekend = False
if not is_weekend:
print("平日です")
実践例:仮想通貨投資判断プログラム
# 仮想通貨投資の判断プログラム
bitcoin_price = 4500000 # ビットコインの価格(円)
available_money = 100000 # 利用可能な資金
risk_tolerance = "低" # リスク許容度
print("=== 仮想通貨投資判断システム ===")
print(f"ビットコイン価格: {bitcoin_price:,}円")
print(f"利用可能資金: {available_money:,}円")
print(f"リスク許容度: {risk_tolerance}")
print()
# 投資可能性の判断
if available_money < 10000:
print("❌ 投資には最低1万円必要です")
elif bitcoin_price > 5000000 and risk_tolerance == "低":
print("⚠️ 価格が高すぎます。下落を待ちましょう")
elif bitcoin_price < 3000000 and available_money >= 50000:
print("✅ 絶好の買い時です!")
elif available_money >= bitcoin_price * 0.1: # 10%以上の資金がある
print("✅ 少額から始めてみましょう")
else:
print("⚠️ もう少し資金を貯めてからにしましょう")
# リスク警告
if risk_tolerance == "低":
print("n⚠️ 投資は余剰資金で行い、リスクを十分理解してください")
私がよく間違えたポイント
1. 代入(=)と比較(==)の混同:
# ❌ よくある間違い
age = 20
if age = 20: # SyntaxError
print("20歳です")
# ✅ 正しい書き方
if age == 20:
print("20歳です")
2. インデント忘れ:
# ❌ エラーになる
if age >= 20:
print("成人です") # IndentationError
# ✅ 正しい書き方
if age >= 20:
print("成人です") # 4つのスペースでインデント
3. ループ:同じ処理を繰り返す
for文:決まった回数繰り返す
基本的なfor文:
# 1から5まで表示
for i in range(1, 6):
print(f"{i}回目の処理")
出力:
1回目の処理
2回目の処理
3回目の処理
4回目の処理
5回目の処理
range()関数の使い方:
# range(終了) - 0から終了-1まで
for i in range(5):
print(i) # 0, 1, 2, 3, 4
# range(開始, 終了) - 開始から終了-1まで
for i in range(2, 6):
print(i) # 2, 3, 4, 5
# range(開始, 終了, ステップ) - 指定した間隔で
for i in range(0, 10, 2):
print(i) # 0, 2, 4, 6, 8
リストを使ったfor文
# リストの要素を順番に処理
fruits = ["りんご", "みかん", "ばなな", "ぶどう"]
for fruit in fruits:
print(f"好きな果物: {fruit}")
出力:
好きな果物: りんご
好きな果物: みかん
好きな果物: ばなな
好きな果物: ぶどう
while文:条件が満たされる間繰り返す
# カウントダウンプログラム
count = 5
while count > 0:
print(f"残り{count}秒")
count = count - 1 # count -= 1 と同じ
print("時間切れ!")
出力:
残り5秒
残り4秒
残り3秒
残り2秒
残り1秒
時間切れ!
実践例:複利計算プログラム
# 複利計算プログラム
initial_amount = 1000000 # 初期投資額(100万円)
annual_rate = 0.05 # 年利5%
years = 10 # 投資期間
print("=== 複利計算シミュレーション ===")
print(f"初期投資額: {initial_amount:,}円")
print(f"年利: {annual_rate*100}%")
print(f"投資期間: {years}年")
print()
current_amount = initial_amount
for year in range(1, years + 1):
# 前年の金額に利息を加える
current_amount = current_amount * (1 + annual_rate)
# 年ごとの結果を表示
profit = current_amount - initial_amount
print(f"{year:2d}年後: {current_amount:,.0f}円 (利益: {profit:,.0f}円)")
print()
print(f"最終的な利益: {profit:,.0f}円")
print(f"利益率: {(profit/initial_amount)*100:.1f}%")
出力:
=== 複利計算シミュレーション ===
初期投資額: 1,000,000円
年利: 5.0%
投資期間: 10年
1年後: 1,050,000円 (利益: 50,000円)
2年後: 1,102,500円 (利益: 102,500円)
3年後: 1,157,625円 (利益: 157,625円)
...
10年後: 1,628,895円 (利益: 628,895円)
最終的な利益: 628,895円
利益率: 62.9%
ループ制御:break と continue
break:ループを途中で抜ける:
# 特定の条件でループを終了
for i in range(1, 11):
if i == 6:
print("6に到達したので終了")
break
print(i)
continue:次の繰り返しにスキップ:
# 偶数だけスキップ
for i in range(1, 11):
if i % 2 == 0: # 偶数の場合
continue # 以下の処理をスキップ
print(f"奇数: {i}")
実践例:仮想通貨価格監視プログラム
# 仮想通貨価格監視シミュレーション
# (実際のAPIではなく、シミュレーション用の価格変動)
import random
target_price = 4200000 # 目標価格(420万円)
current_price = 4500000 # 現在価格(450万円)
check_count = 0
max_checks = 20 # 最大チェック回数
print("=== ビットコイン価格監視 ===")
print(f"目標価格: {target_price:,}円")
print(f"現在価格: {current_price:,}円")
print()
while check_count < max_checks:
check_count += 1
# 価格変動をシミュレーション(実際は取引所APIから取得)
change_rate = random.uniform(-0.05, 0.05) # -5%から+5%の変動
current_price = int(current_price * (1 + change_rate))
print(f"{check_count:2d}回目: {current_price:,}円", end="")
# 目標価格に到達したかチェック
if current_price <= target_price:
print(" ✅ 目標価格に到達!")
print("買い注文を実行します")
break
elif current_price > 5000000:
print(" ⚠️ 価格が高すぎます")
else:
print(" 📊 監視継続中...")
# 監視間隔(実際は時間間隔)
import time
time.sleep(1) # 1秒待機
if check_count >= max_checks:
print(f"n⏰ {max_checks}回チェックしましたが、目標価格に到達しませんでした")
4. 文字列操作:テキストデータの処理
文字列の基本操作
# 文字列の結合
first_name = "太郎"
last_name = "田中"
full_name = last_name + first_name
print(full_name) # 田中太郎
# f-string(推奨)
age = 25
message = f"私の名前は{full_name}で、{age}歳です"
print(message)
文字列メソッド
text = " Python Programming "
print(text.upper()) # 大文字変換: " PYTHON PROGRAMMING "
print(text.lower()) # 小文字変換: " python programming "
print(text.strip()) # 前後の空白削除: "Python Programming"
print(text.replace("Python", "Java")) # 置換: " Java Programming "
# 文字列の分割
email = "user@example.com"
parts = email.split("@")
print(parts) # ['user', 'example.com']
実践例:ユーザー入力の処理
# ユーザー情報の入力と処理
print("=== ユーザー登録システム ===")
# 入力受付(実際のプログラムではinput()を使用)
user_input = " TANAKA TARO " # シミュレーション用
# データのクリーニング
cleaned_name = user_input.strip().title() # 前後空白削除 + タイトルケース
print(f"処理後の名前: {cleaned_name}")
# 名前の検証
if len(cleaned_name) < 2:
print("❌ 名前が短すぎます")
elif len(cleaned_name) > 20:
print("❌ 名前が長すぎます")
elif cleaned_name.isalpha() or " " in cleaned_name:
print("✅ 有効な名前です")
else:
print("❌ 無効な文字が含まれています")
# メールアドレスの簡単な検証
email = "user@example.com"
if "@" in email and "." in email:
username = email.split("@")[0]
domain = email.split("@")[1]
print(f"ユーザー名: {username}")
print(f"ドメイン: {domain}")
else:
print("❌ 無効なメールアドレスです")
5. リスト操作:複数のデータを管理
リストの基本操作
# リストの作成
prices = [100, 200, 300, 400, 500]
fruits = ["りんご", "みかん", "ばなな"]
# 要素の追加
fruits.append("ぶどう")
print(fruits) # ['りんご', 'みかん', 'ばなな', 'ぶどう']
# 要素の挿入
fruits.insert(1, "いちご") # 1番目の位置に挿入
print(fruits) # ['りんご', 'いちご', 'みかん', 'ばなな', 'ぶどう']
# 要素の削除
fruits.remove("みかん") # 値で削除
deleted = fruits.pop(0) # インデックスで削除(戻り値あり)
print(f"削除された要素: {deleted}")
print(fruits)
リスト内包表記
# 従来の書き方
numbers = []
for i in range(1, 6):
numbers.append(i * 2)
print(numbers) # [2, 4, 6, 8, 10]
# リスト内包表記(Pythonらしい書き方)
numbers = [i * 2 for i in range(1, 6)]
print(numbers) # [2, 4, 6, 8, 10]
# 条件付きリスト内包表記
even_numbers = [i for i in range(1, 11) if i % 2 == 0]
print(even_numbers) # [2, 4, 6, 8, 10]
実践例:投資ポートフォリオ管理
# 投資ポートフォリオ管理システム
stocks = [
{"name": "トヨタ", "quantity": 100, "price": 2500},
{"name": "ソフトバンク", "quantity": 200, "price": 1400},
{"name": "ソニー", "quantity": 50, "price": 12000}
]
print("=== 投資ポートフォリオ ===")
total_value = 0
for stock in stocks:
value = stock["quantity"] * stock["price"]
total_value += value
print(f"{stock['name']:8s}: {stock['quantity']:3d}株 × {stock['price']:,}円 = {value:,}円")
print(f"n合計評価額: {total_value:,}円")
# 各銘柄の構成比率
print("n=== 構成比率 ===")
for stock in stocks:
value = stock["quantity"] * stock["price"]
ratio = (value / total_value) * 100
print(f"{stock['name']:8s}: {ratio:5.1f}%")
出力:
=== 投資ポートフォリオ ===
トヨタ : 100株 × 2,500円 = 250,000円
ソフトバンク : 200株 × 1,400円 = 280,000円
ソニー : 50株 × 12,000円 = 600,000円
合計評価額: 1,130,000円
=== 構成比率 ===
トヨタ : 22.1%
ソフトバンク : 24.8%
ソニー : 53.1%
まとめ:Python文法の基礎をマスターしよう
今回学んだ内容
- 変数:データを保存する箱
- 条件分岐:状況に応じて処理を変える
- ループ:同じ処理を繰り返す
- 文字列操作:テキストデータの処理
- リスト操作:複数のデータを管理
私からのアドバイス
文法学習で大切なこと:
-
理論より実践:
- 理解できなくても、まず動かしてみる
- 動くコードから学ぶ方が早い
-
小さく始める:
- 大きなプログラムを作ろうとしない
- 今日学んだことを使った小さなプログラムを作る
-
エラーを恐れない:
- エラーは学習の機会
- エラーメッセージをよく読む
-
反復練習:
- 同じパターンを何度も書く
- 慣れるまで繰り返す
次のステップ
この記事で紹介した基本文法を使って、ぜひ小さなプログラムを作ってみてください:
練習課題のアイデア:
- 家計簿計算プログラム
- 成績管理システム
- じゃんけんゲーム
- 数当てゲーム
- 買い物リスト管理
「基礎を固めることが、応用への近道です」 🦝
一緒に頑張りましょう!
関連記事:
- Pythonを始める前に知っておきたい5つのこと:中年初心者の失敗談付き
- Python エラー解決ガイド:初心者がよくハマる問題と対処法
- Pythonの環境構築
- 関数とモジュール:コードを整理して再利用する方法 (近日公開)