TechBlog

Python入門完全ガイド:ゼロからはじめるプログラミング【2026年版】

by あくえり
#Python #プログラミング #入門 #初心者 #環境構築
Python入門完全ガイド
目次

Pythonとは何か

Pythonは1991年にグイド・ヴァン・ロッサムが開発したプログラミング言語です。「読みやすく、書きやすい」を設計思想の中核に置いており、2026年現在もTIOBEインデックスで1位を争い続けています。

Pythonが選ばれる主な理由は3つです。

  • シンプルな文法: 英語に近い記法で、コードの意図が一目でわかる
  • 豊富なライブラリ: Web開発・データ分析・AI・自動化など、あらゆる分野のライブラリが揃っている
  • 広い用途: Instagram、YouTube、Dropboxなど世界規模のサービスが本番環境で使用している

環境構築

pyenvでPythonをインストールする(推奨)

複数バージョンのPythonを管理できるpyenvを使う方法が現場では一般的です。

macOS / Linux:

# pyenvをインストール
curl https://pyenv.run | bash

# シェル設定に追記(~/.bashrc または ~/.zshrc)
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

# シェルを再起動してから最新のPython 3.13をインストール
pyenv install 3.13.2
pyenv global 3.13.2

# バージョン確認
python --version
# Python 3.13.2

Windows:

WindowsではPython公式サイト(python.org)からインストーラーをダウンロードする方法が簡単です。インストール時に「Add Python to PATH」にチェックを入れることを忘れないでください。

動作確認

# Pythonインタープリタを起動
python

>>> print("Hello, Python!")
Hello, Python!
>>> exit()

コードをファイルで実行する

# hello.pyというファイルを作成して実行
python hello.py

基本文法

変数と型

Pythonは型宣言が不要な動的型付け言語です。変数に値を代入するだけで使えます。

# 整数(int)
age = 25

# 浮動小数点数(float)
height = 170.5

# 文字列(str)
name = "山田太郎"

# ブール値(bool)
is_student = True

# 型を確認する
print(type(age))     # <class 'int'>
print(type(name))    # <class 'str'>

# f-string(文字列の中に変数を埋め込む)
print(f"名前: {name}, 年齢: {age}歳")
# 名前: 山田太郎, 年齢: 25歳

条件分岐(if / elif / else)

Pythonはインデント(通常スペース4個)でブロックを表します。波括弧{}は使いません。

score = 75

if score >= 90:
    print("優")
elif score >= 70:
    print("良")
elif score >= 50:
    print("可")
else:
    print("不可")

# 出力: 良

ループ(for / while)

# forループ:リストの要素を順番に処理
fruits = ["りんご", "バナナ", "みかん"]
for fruit in fruits:
    print(fruit)
# りんご
# バナナ
# みかん

# range()で数値のループ
for i in range(5):
    print(i)
# 0 1 2 3 4

# whileループ:条件が真の間繰り返す
count = 0
while count < 3:
    print(f"カウント: {count}")
    count += 1
# カウント: 0
# カウント: 1
# カウント: 2

関数(def)

# 基本的な関数定義
def greet(name):
    return f"こんにちは、{name}さん!"

print(greet("田中"))  # こんにちは、田中さん!

# デフォルト引数
def power(base, exponent=2):
    return base ** exponent

print(power(3))    # 9(3の2乗)
print(power(2, 8)) # 256(2の8乗)

# 複数の戻り値
def min_max(numbers):
    return min(numbers), max(numbers)

low, high = min_max([5, 2, 8, 1, 9])
print(f"最小: {low}, 最大: {high}")  # 最小: 1, 最大: 9

リスト(list)

順序付きの可変なコレクションです。

# リストの作成
numbers = [10, 20, 30, 40, 50]

# インデックスでアクセス(0始まり)
print(numbers[0])   # 10
print(numbers[-1])  # 50(末尾)

# スライス
print(numbers[1:3])  # [20, 30]

# 追加・削除
numbers.append(60)  # 末尾に追加 → [10, 20, 30, 40, 50, 60]
numbers.pop(0)      # 先頭を削除 → [20, 30, 40, 50, 60]

# リスト内包表記(Pythonらしい書き方)
squares = [x**2 for x in range(1, 6)]
print(squares)  # [1, 4, 9, 16, 25]

# 条件付きリスト内包表記
evens = [x for x in range(1, 11) if x % 2 == 0]
print(evens)  # [2, 4, 6, 8, 10]

辞書(dict)

キーと値のペアで管理するコレクションです。

# 辞書の作成
person = {
    "name": "佐藤花子",
    "age": 30,
    "city": "東京"
}

# 値へのアクセス
print(person["name"])          # 佐藤花子
print(person.get("email", "未設定"))  # 未設定(キーがない場合のデフォルト値)

# 追加・更新・削除
person["email"] = "hanako@example.com"  # 追加
person["age"] = 31                       # 更新
del person["city"]                       # 削除

# キーと値のループ
for key, value in person.items():
    print(f"{key}: {value}")
# name: 佐藤花子
# age: 31
# email: hanako@example.com

実践:簡単な家計簿プログラム

これまでの知識を組み合わせて、シンプルな家計簿を作ってみましょう。

def household_budget():
    expenses = []

    while True:
        print("\n--- 家計簿 ---")
        print("1: 支出を追加")
        print("2: 集計を表示")
        print("3: 終了")

        choice = input("選択してください: ")

        if choice == "1":
            category = input("カテゴリ(食費/交通費/娯楽費): ")
            amount = int(input("金額(円): "))
            expenses.append({"category": category, "amount": amount})
            print(f"追加しました: {category} {amount}円")

        elif choice == "2":
            if not expenses:
                print("データがありません")
                continue

            total = sum(item["amount"] for item in expenses)
            print(f"\n合計: {total}円")

            # カテゴリ別集計
            summary = {}
            for item in expenses:
                cat = item["category"]
                summary[cat] = summary.get(cat, 0) + item["amount"]

            for cat, amount in summary.items():
                print(f"  {cat}: {amount}円")

        elif choice == "3":
            print("終了します")
            break

        else:
            print("1〜3を入力してください")

household_budget()

Pythonの主な用途

Web開発

Django(フルスタック)とFastAPI(API特化)が2大フレームワークです。

# FastAPIの最小構成例
from fastapi import FastAPI

app = FastAPI()

@app.get("/hello/{name}")
def hello(name: str):
    return {"message": f"こんにちは、{name}さん!"}

FastAPIはPythonの型ヒントを活用して、自動的にAPIドキュメント(Swagger UI)を生成します。起動はuvicorn main:app --reloadで完了です。

データ分析・機械学習

NumPy(数値計算)、Pandas(データ加工)、Matplotlib(可視化)、scikit-learn(機械学習)が定番の組み合わせです。

import pandas as pd

# CSVファイルを読み込んで基本統計量を表示
df = pd.read_csv("sales_data.csv")
print(df.describe())
# count、mean、std、min、25%、50%、75%、maxが一発で出る

自動化・スクリプト

ファイル操作、Webスクレイピング、定期実行など、繰り返し作業の自動化に非常に向いています。

import os
import shutil
from datetime import datetime

# デスクトップのファイルを日付別フォルダに整理する例
desktop = os.path.expanduser("~/Desktop")
today = datetime.now().strftime("%Y-%m-%d")
target_dir = os.path.join(desktop, today)

os.makedirs(target_dir, exist_ok=True)

for filename in os.listdir(desktop):
    if os.path.isfile(os.path.join(desktop, filename)):
        src = os.path.join(desktop, filename)
        dst = os.path.join(target_dir, filename)
        shutil.move(src, dst)
        print(f"移動: {filename}")

次のステップ

基本文法を身につけたら、以下の順序で学習を進めることをおすすめします。

  1. クラスとオブジェクト指向: classを使って、関連するデータと処理をひとまとめにする
  2. 例外処理: try / exceptでエラーを適切に処理する
  3. ファイル操作: open()でCSVやテキストファイルを読み書きする
  4. 外部ライブラリ: pip install requestsなどで機能を拡張する
  5. 仮想環境: python -m venv .venvでプロジェクトごとに依存関係を分離する

Pythonクラッシュコース 第3版

プロジェクトベースでPythonを学べる世界的ベストセラー。ゲーム・データ可視化・WebアプリをPythonで作りながら実践的に身につけられます。

※ アフィリエイトリンクを含みます

独学プログラマー Python言語の基本から仕事のやり方まで

プログラミングの技術だけでなく、ソフトウェアエンジニアとして仕事をする方法まで解説。Python初心者がエンジニアになるためのロードマップとして最適。

※ アフィリエイトリンクを含みます

まとめ

Pythonは初心者にとって最も入りやすいプログラミング言語の一つですが、同時にプロフェッショナルが本番環境で使い続ける言語でもあります。

  • 環境構築: pyenvを使ってバージョン管理する
  • 基本文法: インデントでブロックを表す、型宣言不要
  • コレクション: リスト(順序あり・可変)と辞書(キー・値のペア)が基本
  • 用途: Web・データ分析・AI・自動化と幅広く活躍

まずはprint("Hello, Python!")を実行し、次に自分のやりたいことに近い小さなスクリプトを書いてみることが、上達への一番の近道です。

共有: