【2026年版】Python完全入門ガイド|初心者から上級者まで使えるコード例・ライブラリ・案件獲得まで徹底解説

Pythonとは?なぜ今これほど人気なのか

Pythonは1991年にGuido van Rossum氏が開発したプログラミング言語で、現在では世界で最も使われるプログラミング言語のひとつです。2026年現在、TIOBEインデックスでも常にトップ3に位置し、AI・機械学習・Web開発・自動化・データ分析など幅広い分野で活用されています。

Pythonが人気な理由は以下の通りです:

  • シンプルな文法:読みやすく書きやすいコードが書ける
  • 豊富なライブラリ:PyPIには500,000以上のパッケージが登録
  • コミュニティが巨大:困ったときの情報が豊富
  • AI/MLの標準言語:TensorFlow、PyTorch、scikit-learnなどがPython製
  • 年収が高い:Pythonエンジニアの平均年収は700〜1200万円

Pythonの基本文法:コード例で徹底解説

変数とデータ型

# 基本的なデータ型
name = "Tech Athletes"   # 文字列(str)
age = 25                 # 整数(int)
height = 175.5           # 浮動小数点(float)
is_engineer = True       # 真偽値(bool)

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

# f文字列(Python 3.6+)
print(f"名前: {name}, 年齢: {age}")  # 名前: Tech Athletes, 年齢: 25

リスト・辞書・タプル・セット

# リスト(変更可能な順序付きコレクション)
languages = ["Python", "JavaScript", "Rust", "Go"]
languages.append("TypeScript")
print(languages[0])   # Python
print(languages[-1])  # TypeScript

# 辞書(キーと値のペア)
engineer = {
    "name": "田中太郎",
    "skill": "Python",
    "salary": 800,
    "remote": True
}
print(engineer["name"])  # 田中太郎
print(engineer.get("age", "不明"))  # 不明

# タプル(変更不可能なリスト)
coordinates = (35.6762, 139.6503)  # 東京の緯度経度

# セット(重複なし)
unique_skills = {"Python", "SQL", "Docker", "Python"}
print(unique_skills)  # {'Docker', 'SQL', 'Python'}

関数・クラス・デコレーター

import time
from functools import wraps

# 関数定義
def calculate_bmi(weight: float, height: float) -> float:
    """BMIを計算する関数
    
    Args:
        weight: 体重(kg)
        height: 身長(m)
    
    Returns:
        BMI値
    """
    return weight / (height ** 2)

bmi = calculate_bmi(70, 1.75)
print(f"BMI: {bmi:.2f}")  # BMI: 22.86

# デコレーター(実行時間を計測)
def timer(func):
    @wraps(func)
    def wrapper(*args, **kwargs):
        start = time.time()
        result = func(*args, **kwargs)
        end = time.time()
        print(f"{func.__name__}: {end - start:.4f}秒")
        return result
    return wrapper

@timer
def heavy_calculation(n):
    return sum(range(n))

result = heavy_calculation(1_000_000)

# クラス定義
class Engineer:
    total_count = 0  # クラス変数
    
    def __init__(self, name: str, skill: str, level: int):
        self.name = name
        self.skill = skill
        self.level = level
        Engineer.total_count += 1
    
    def get_salary_estimate(self) -> int:
        base = 400 + (self.level * 100)
        return base * 10_000
    
    @classmethod
    def create_junior(cls, name: str) -> 'Engineer':
        return cls(name, "Python", 1)
    
    def __repr__(self) -> str:
        return f"Engineer(name={self.name}, skill={self.skill})"

engineer = Engineer("田中", "Python", 5)
print(engineer.get_salary_estimate())  # 9000000
print(Engineer.total_count)  # 1

Python主要ライブラリ完全ガイド

データ分析:pandas・NumPy

import pandas as pd
import numpy as np

# DataFrameの作成
df = pd.DataFrame({
    'name': ['田中', '鈴木', '佐藤', '高橋'],
    'skill': ['Python', 'JavaScript', 'Python', 'Go'],
    'salary': [800, 600, 900, 750],
    'experience': [5, 3, 7, 4]
})

# 基本的な集計
print(df.describe())
print(df.groupby('skill')['salary'].mean())

# NumPyで数値計算
arr = np.array([1, 2, 3, 4, 5])
print(np.mean(arr))   # 3.0
print(np.std(arr))    # 1.4142...

# 行列演算
matrix_a = np.random.rand(3, 3)
matrix_b = np.random.rand(3, 3)
result = np.dot(matrix_a, matrix_b)  # 行列積

機械学習:scikit-learn

from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report, accuracy_score
from sklearn.preprocessing import StandardScaler

# データ準備
X = df[['salary', 'experience']].values
y = (df['skill'] == 'Python').astype(int)  # Python使用者か否か

# 訓練・テスト分割
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)

# 特徴量のスケーリング
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

# モデル訓練
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train_scaled, y_train)

# 予測・評価
y_pred = model.predict(X_test_scaled)
print(f"精度: {accuracy_score(y_test, y_pred):.4f}")
print(classification_report(y_test, y_pred))

Web開発:FastAPI(最新フレームワーク)

from fastapi import FastAPI, HTTPException, Depends
from pydantic import BaseModel
from typing import Optional, List
import uvicorn

app = FastAPI(
    title="Tech Athletes API",
    description="エンジニア向けAPI",
    version="2.0.0"
)

# Pydanticモデル
class Engineer(BaseModel):
    id: Optional[int] = None
    name: str
    skill: str
    salary: int
    remote: bool = False

# インメモリDB(デモ用)
engineers_db: List[Engineer] = []

@app.get("/engineers", response_model=List[Engineer])
async def get_engineers(skip: int = 0, limit: int = 10):
    return engineers_db[skip:skip + limit]

@app.post("/engineers", response_model=Engineer, status_code=201)
async def create_engineer(engineer: Engineer):
    engineer.id = len(engineers_db) + 1
    engineers_db.append(engineer)
    return engineer

@app.get("/engineers/{engineer_id}", response_model=Engineer)
async def get_engineer(engineer_id: int):
    for eng in engineers_db:
        if eng.id == engineer_id:
            return eng
    raise HTTPException(status_code=404, detail="Engineer not found")

if __name__ == "__main__":
    uvicorn.run(app, host="0.0.0.0", port=8000)

Pythonで副業・フリーランス収入を得る方法

Pythonスキルを活かして収入を得る方法は複数あります。2026年現在、以下のプラットフォームが主流です。

クラウドソーシングプラットフォーム

  • クラウドワークス:日本最大のクラウドソーシング。Python案件多数
  • ランサーズ:中〜大規模案件が多い。単価高め
  • Upwork:英語が読める人向け。世界中のクライアントと取引可能
  • Toptal:トップ3%のエンジニア向け。高単価案件多数

Pythonエンジニアの市場単価(2026年版)

スキルレベル月単価相場時給相場
初心者(1〜2年)30〜50万円2,000〜3,500円
中級(3〜5年)60〜90万円4,000〜6,000円
上級(5年以上)100〜150万円7,000〜12,000円
AI/MLスペシャリスト120〜200万円8,000〜15,000円

おすすめPython学習リソース(2026年版)

  • 書籍:「Pythonチュートリアル」(公式)、「独学プログラマー」、「リーダブルコード」
  • オンライン学習:Udemy、PyQ、paiza学習、RUNTEQ
  • YouTube:「とみーのプログラミング」「現役シリコンバレーエンジニア」
  • 実践練習:LeetCode、AtCoder、Kaggle

まとめ:Pythonマスターへの最短ルート

Pythonは学習コストが低く、応用範囲が極めて広い最強のプログラミング言語です。本記事で紹介したコード例を実際に手を動かして試し、データ分析→Web開発→AI/MLと段階的にスキルアップしていきましょう。

副業・フリーランスとして月収30万円を目指すなら、まずは基礎固め(3ヶ月)→ポートフォリオ作成(2ヶ月)→案件獲得(1ヶ月)という6ヶ月プランがおすすめです。

投稿者 kasata

IT企業でエンジニアとして勤務後、テクノロジー情報メディア「Tech Athletes(テック・アスリート)」を運営。プログラミング、クラウドインフラ(AWS/GCP/Azure)、AI活用、Webサービス開発を専門とする。エンジニア・ビジネスパーソン向けに、実際に使ってみた経験をもとに信頼できる技術情報を発信中。資格:AWS認定ソリューションアーキテクト、Python 3 エンジニア認定試験合格。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です