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ヶ月プランがおすすめです。