コース1:Python基礎

変数・リスト・ループ・条件分岐・関数といったPythonの基本構文を、業務シーンを題材にして学びます。プログラミング未経験の方でも、一人で読み進められる構成にしました。

レッスン 1

Pythonとは?何ができるのか

Pythonは、文章に近い書き方ができるプログラミング言語です。英語の語順をそのまま書いていくような感覚に近く、他の言語と比べて「読みやすい」「書きやすい」と言われます。学習を始めるうえで、この読みやすさは大きな助けになります。

Pythonを学ぶ3つの価値

  1. 毎日の手作業を減らせる。 Excelの転記・コピー&ペースト・並べ替えといった作業を自動化できます。
  2. ミスが減る。 人が手で繰り返す作業をプログラムに任せると、桁ズレや見落としが激減します。
  3. 「自分で考えて自動化できる人」になれる。 業務改善の提案ができるようになり、評価につながります。
準備するものは、何もありません

本コースのコード例と演習は、ブラウザの中でそのまま実行できます。各コード例の右上にある 実行」ボタン を押すと、コードがその場で動作し、出力が下に表示されます。Pythonをインストールする必要はありません。

※ コース1の範囲(変数・計算・if/for・関数・リスト・辞書・f文字列)をサポートします。コース2以降で使う openpyxl / pandas などの外部ライブラリは、手元のPython環境または Google Colab でご確認ください。

手元でもコードを動かしたい方は、環境構築ガイドで Python と VS Code の導入手順をご確認ください。

はじめてのコード

まずはお決まりの「Hello, World!」を書いてみましょう。 hello.py という名前のファイルを作って、以下を保存してください。

python
# はじめての Python プログラム
print("こんにちは、Pythonの世界へようこそ。")
print("これから業務自動化を一緒に学んでいきましょう。")

ターミナル(コマンドプロンプト)で python hello.py と実行し、メッセージが表示されれば準備完了です。

学習のポイント

Pythonは「読めば意味がわかる」言語です。新しい構文に出会ったら、まず英文として声に出して読んでみると理解が早くなります。

レッスン 2

変数とデータ型 — 数値・文字列・真偽値

業務シーン

「請求書1枚あたりの金額と消費税率から、税込金額を計算したい」。電卓を叩く代わりに、変数に値を入れて計算式を書きます。

変数とは「名前付きの箱」

変数とは、値に名前をつけて保存しておく仕組みです。= は「右の値を左の名前に入れる」という意味で、数学のイコールとは少し違います。

python
# 数値型(int / float)
price = 12800           # 整数 (int)
tax_rate = 0.10         # 小数 (float)

# 文字列型(str)
customer = "株式会社サクラ商事"

# 真偽値(bool) — TrueかFalseの2値
is_paid = False

# 計算してみる
total = price * (1 + tax_rate)
print(f"{customer} 様 ご請求額: {total:,.0f}円")
# → 株式会社サクラ商事 様 ご請求額: 14,080円

主なデータ型

業務での用途
int12800金額、数量、件数
float0.10税率、為替レート、割引率
str"サクラ商事"取引先名、商品名、メールアドレス
boolTrue / False入金済みか、承認済みか

f文字列 — 値を文中に埋め込む

文字列の先頭に f を付けると、波カッコ { } の中に変数を埋め込めます。Excelの文字列結合と同じ感覚ですが、はるかに読みやすく書けます。

python
name = "田中"
amount = 1250000
print(f"{name}様への支払額は {amount:,} 円です。")
# → 田中様への支払額は 1,250,000 円です。
学習のポイント

{amount:,} のようにコロン以降で書式を指定できます。:, で3桁区切り、:.0f で小数なし、:.2f で小数2桁です。金額の表示で頻出します。

演習 ・ コード判定対応

商品単価×数量から税込金額を計算してみよう

単価1,580円・数量12個・消費税率10%として、税込合計金額を3桁区切りで表示するコードを書いてください。

python
unit_price = 1580
quantity = 12
tax_rate = 0.10

total = unit_price * quantity * (1 + tax_rate)
print(f"税込金額: {total:,.0f} 円")
# → 税込金額: 20,856 円
レッスン 3

リストと辞書 — 帳票データを扱う基本

業務シーン

「取引先一覧」「商品マスタ」「月別売上」など、複数の値をまとめて扱う場面は事務業務に頻繁に登場します。Pythonでは リスト辞書 が中心的な役割を果たします。

リスト:順序付きの一覧

角カッコ [ ] でくくり、カンマで区切ります。Excelの1列をそのまま持ってきたイメージです。

python
# 取引先リスト
clients = ["サクラ商事", "あおぞら工業", "みどり物産", "つばさ電機"]

# 1つ目を取り出す(添字は0から始まる)
print(clients[0])   # → サクラ商事

# 件数を数える
print(len(clients))   # → 4

# 末尾に追加
clients.append("ほしぞら印刷")
print(clients)
# → ['サクラ商事', 'あおぞら工業', 'みどり物産', 'つばさ電機', 'ほしぞら印刷']

# 月別売上(数値のリスト)
monthly_sales = [1200000, 1350000, 980000, 1420000]
print(f"合計: {sum(monthly_sales):,} 円")
print(f"平均: {sum(monthly_sales) / len(monthly_sales):,.0f} 円")

辞書:キーと値のペア

波カッコ { }キー: 値 の形を並べます。1件の取引先情報のように「項目名と中身」をひとまとめにしたいときに使います。

python
# 1社分の情報
client = {
    "name": "サクラ商事",
    "contact": "田中部長",
    "email": "tanaka@sakura.example.com",
    "monthly_amount": 350000,
}

print(client["name"])           # → サクラ商事
print(client["monthly_amount"])  # → 350000

# 値の更新・追加
client["monthly_amount"] = 380000
client["is_active"] = True

リストと辞書を組み合わせる(実務でいちばん多い形)

「複数件の取引先データ」のように、辞書をリストに入れて扱うパターンを覚えておくと、Excelデータを扱う際にそのまま役立ちます。

python
clients = [
    {"name": "サクラ商事",   "amount": 350000},
    {"name": "あおぞら工業", "amount": 820000},
    {"name": "みどり物産",   "amount": 150000},
]

# 全件の合計金額を計算
total = sum(c["amount"] for c in clients)
print(f"今月の請求総額: {total:,} 円")
# → 今月の請求総額: 1,320,000 円
学習のポイント

「列方向に並ぶデータ」はリスト、「1行の中の項目」は辞書、と覚えると整理しやすいです。openpyxlやpandasで読み込んだExcelデータも、内部ではこの組み合わせで表現されています。

レッスン 4

条件分岐 if/elif/else — 業務ルールを表現する

業務シーン

「請求額が10万円以上なら承認者を部長に変更する」「期日を過ぎたら督促マークを付ける」など、業務には必ずルール(条件)があります。それをコードで表現するのが if 文です。

基本の形

python
amount = 125000

if amount >= 100000:
    print("部長承認が必要です。")
else:
    print("課長承認で進められます。")

インデント(行の先頭の半角スペース4つ)が「ifの中に含まれる処理」を示します。Pythonではインデントが文法そのものなので、必ず揃えてください。

複数の条件 — elif と論理演算子

python
amount = 320000
is_new_client = True

if amount >= 500000:
    approver = "取締役"
elif amount >= 100000 or is_new_client:
    approver = "部長"
else:
    approver = "課長"

print(f"承認者: {approver}")
# → 承認者: 部長 (10万円以上 もしくは 新規取引先 だから)

比較演算子と論理演算子の早見表

記号意味
==等しい
!=等しくない
> / >=より大きい / 以上
< / <=より小さい / 以下
andかつ(両方True)
orまたは(どちらかがTrue)
not否定
よくあるつまずき

「等しい」は = ではなく == です。= は値を入れる操作なので、混同するとエラーになります。

演習 ・ コード判定対応

期日と支払状況から「督促区分」を判定するコードを書こう

残日数 days_leftis_paid から、以下の通り表示してください。
① 支払済 → 「OK」
② 未払いで残日数3日以下 → 「至急督促」
③ 未払いで残日数4〜7日 → 「督促予定」
④ それ以外 → 「対応不要」

python
days_left = 2
is_paid = False

if is_paid:
    status = "OK"
elif days_left <= 3:
    status = "至急督促"
elif days_left <= 7:
    status = "督促予定"
else:
    status = "対応不要"

print(status)   # → 至急督促
レッスン 5

ループ for/while — 繰り返し作業を自動化

業務シーン

「取引先全社にメールを送る」「100行のExcelデータを1行ずつチェックする」など、同じ処理を繰り返す場面は数えきれません。Pythonの for 文が、その繰り返しをコード3行で表現します。

for文の基本

python
clients = ["サクラ商事", "あおぞら工業", "みどり物産"]

for name in clients:
    print(f"{name} 様にご案内メールを送信しました。")


# → サクラ商事 様にご案内メールを送信しました。
# → あおぞら工業 様にご案内メールを送信しました。
# → みどり物産 様にご案内メールを送信しました。

range — 「3回繰り返す」を表現する

python
# 1月から12月までループ
for month in range(1, 13):
    print(f"{month}月の処理を実行中...")

range(1, 13) は 1, 2, 3, ..., 12 を順に取り出します。終わりの数字は含まれない点に注意してください。

enumerate — 番号付きで取り出す

python
invoices = ["INV-001", "INV-002", "INV-003"]

for i, no in enumerate(invoices, start=1):
    print(f"{i}件目: {no}")
# → 1件目: INV-001
#   2件目: INV-002
#   3件目: INV-003

条件付きで処理を進める

for の中に if を入れると「該当する行だけ処理する」を表現できます。事務業務での「フィルタ + 処理」がそのままコードになります。

python
invoices = [
    {"no": "INV-001", "amount": 80000,  "paid": True},
    {"no": "INV-002", "amount": 320000, "paid": False},
    {"no": "INV-003", "amount": 150000, "paid": False},
]

unpaid_total = 0
for inv in invoices:
    if not inv["paid"]:
        unpaid_total += inv["amount"]
        print(f"未入金: {inv['no']} ({inv['amount']:,} 円)")

print(f"未入金合計: {unpaid_total:,} 円")

# → 未入金: INV-002 (320,000 円)
#   未入金: INV-003 (150,000 円)
#   未入金合計: 470,000 円
学習のポイント

+= は「左の変数に右の値を足して入れ直す」記法です。unpaid_total = unpaid_total + inv["amount"] と同じ意味ですが、短く書けます。

レッスン 6

関数 def — 処理を再利用できる形にまとめる

業務シーン

「税込金額を計算する」処理は、コースを通じて何度も登場します。同じ計算を毎回書き直すのではなく、一度関数として名前を付けておけば、必要なときに呼び出すだけで済みます。

関数の基本

python
def calc_total(price, quantity, tax_rate=0.10):
    """税込金額を計算して返す関数。"""
    subtotal = price * quantity
    total = subtotal * (1 + tax_rate)
    return round(total)

# 呼び出して使う
print(calc_total(1580, 12))           # → 20856
print(calc_total(3000, 5, 0.08))    # → 16200(軽減税率)

ポイントは4つです。

  • def 関数名(引数, ...): で関数を定義する
  • 引数に = デフォルト値 を書くと省略可能になる(tax_rate)
  • return で結果を返す
  • 関数の直下の """ ... """docstringと呼ばれ、関数の説明書として機能する

関数を使うと「業務ロジック」を1か所にまとめられる

python
def decide_approver(amount, is_new_client=False):
    """請求額と新規取引フラグから、承認者の役職を返す。"""
    if amount >= 500000:
        return "取締役"
    if amount >= 100000 or is_new_client:
        return "部長"
    return "課長"

print(decide_approver(320000))                       # → 部長
print(decide_approver(80000, is_new_client=True))    # → 部長
print(decide_approver(80000))                        # → 課長
学習のポイント

「業務ルールが変わったときに、書き換える場所は1つ」 — これが関数化の最大のメリットです。承認権限が変わっても、関数の中身だけ直せば、呼び出している全箇所に自動で反映されます。

レッスン 7

ファイル読み書きと例外処理

業務シーン

業務自動化の第一歩は「ファイルを読み、結果をファイルに書く」です。CSVやテキストファイルを扱うやり方と、想定外のエラーへの備え方を学びます。

ファイルを書き出す

python
# with を使うと、ファイルを自動でクローズしてくれる
with open("report.txt", "w", encoding="utf-8") as f:
    f.write("=== 本日の処理結果 ===\n")
    f.write("処理件数: 128件\n")
    f.write("未払い件数: 7件\n")

ファイルを読み込む

python
with open("report.txt", "r", encoding="utf-8") as f:
    for line in f:
        print(line.rstrip())

例外処理 — エラーで止めない

ファイルが存在しなかったり、想定外の中身だったりすると、プログラムは停止してしまいます。try / except で「もしエラーが起きたら、こう対応する」を書いておきます。

python
try:
    with open("sales.csv", "r", encoding="utf-8") as f:
        data = f.read()
    print("読み込み成功")
except FileNotFoundError:
    print("sales.csv が見つかりませんでした。担当者に確認してください。")
except UnicodeDecodeError:
    print("文字コードが想定と異なります。Shift_JISの可能性があります。")
except Exception as e:
    print(f"想定外のエラー: {e}")
  • コース1 修了チェックリスト
  • 変数の宣言と4つのデータ型(int/float/str/bool)を区別できる
  • リストと辞書の違いを説明でき、組み合わせて使える
  • if/elif/else で複数の業務ルールを表現できる
  • for文で繰り返し処理を書ける(条件付きフィルタも含めて)
  • 自分で関数を定義し、引数とreturnで値を渡せる
  • with open でファイルを読み書きできる
  • try/except で想定外エラーを受け止められる
次のステップ

このコースを完了したら、いよいよ コース2「Excel業務効率化」 で実務へ落とし込みます。基礎で身につけた変数・リスト・関数の知識が、そのままopenpyxl・pandasの操作に役立ちます。