Python(パイソン)は、シンプルで読みやすい文法が特徴の人気プログラミング言語です。
AI・データ分析・Web開発など幅広い分野で使われており、プログラミング初心者に最もおすすめされる言語のひとつです。
本カテゴリでは、プログラミングをまったく知らない方でも取り組みやすいように、基礎から応用まで段階的に解説しています。
Pythonを学びながら、プログラミングでできることをどんどん広げていきましょう。
文字列操作
- 文字列と数値の型を変換したい
- 文字列の長さを調べる
- find()とindex()で文字列を検索する
- スライスで文字列の一部を取得する
- 文字列の空白削除 – strip/lstrip/rstrip
- 文字列を分割・結合したい (split, join)
- 区切り文字自体を含めて3つに分割する
- 大文字小文字変換 – upper, lower, capitalize, title
- 文字列が特定の文字で始まる/終わるかを判定
- count()で文字列内の特定の文字数を数える
- replaceで文字列を置換する
- str.translateで複数文字を一括置換する
- 文字列が数字/英字/空白か判定する
- 文字列幅を揃える – 0埋め・左寄せ・右寄せ・中央寄せ
- f-string(f文字列)の使い方
- 文字列フォーマットまとめ – %演算子とformat()
- 文字とバイトの違い – encode/decode)
コーディング効率化・Pythonic
- コーディング規約PEP8の書き方まとめ
- ifの条件で意外とFalseになる値まとめ
- 型ヒントの書き方と使い方
- 三項演算子の使い方 – if文を1行に置き換える
- リスト内包表記でfor文を置き換える
- f-stringで変数名と値を同時出力
- 辞書内包表記/セット内包表記に入門する
- f-string書式指定まとめ
- ジェネレータの基本と使い方
- _の使い方(一時変数/国際化/プライベート)
- ジェネレータのyieldの使い方
- 数値の桁区切りに_を使う – 1_000_000
- ラムダ式の基本的な使い方
- walrus(ウォルラス)演算子:=入門
- 複数リストを同時ループする – zip()
- *と**を使った様々なアンパッキング
- デコレータの使い方に入門する
- タプルのアンパッキングのやり方
- 比較で使うisと==の違い
- 同時代入とアンパック – a,b=b,aもOK!
- もうハマらない! list.copyとcopy.deepcopyの正しい使い分け
- any()とall()の使い方まとめ
- デフォルト引数にリストや辞書を使うのが危険なワケ
- setでリストの重複を一瞬で削除する
- もう+=しない!速い文字列連結はjoin一択
- in演算子は遅い? リストとセット/辞書の計算量
- イテレーションを効率化 (chain,islice,permutations)
- itertoolsで多重ループ整理
- メモ化で処理を爆速化する
クラスとオブジェクト指向
- class文の書き方と定義
- クラス属性を安全に隠す(アンダースコアの使い方)
- クラスからインスタンスを生成する方法
- @dataclassで__init__と__repr__を自動生成する
- __init()__の基本
- @propertyの使い方 – ゲッター・セッターの生成
- クラスの属性とメソッドとは?
- @staticmethodと@classmethodの使い分け
- Pythonのselfとは何か?
- printで違いが出る__str__と__repr__
- クラス継承: 基本ルールとオーバーライド
- __len__と__getitem__を実装して自作コンテナを作る
- 親メソッドを呼び出すには? – super()
- Mixinクラス入門
- printやf-stringで効く__str__の実装
- isinstance()とtype()の違い
- __len__()や__bool__()などの特殊メソッドの実装方法
- __slots__でクラスのメモリ使用量を節約する
- クラス変数とインスタンス変数の違い
エラー処理とデバッグ
- 例外(Exception)入門
- try-exceptで例外処理を実装する
- 複数exceptでエラー種類ごとに処理を分ける
- try-except-finallyの正しい使い方
- try-except-elseの使い方
- raiseの使い方 – 意図的な例外発生
- 独自例外を定義する方法
- loggingを使ったデバッグログの生成
- pdb入門 – 対話的デバッグ手法
- breakpoint()で手早くバグ特定
- Tracebackの読み方と直し方
- よくある5大エラーの原因と対策
- TypeError: 'NoneType' object is not iterable
- UnicodeEncodeError/UnicodeDecodeError
- assert文でバグを早期発見する
- warningsモジュール入門
- はじめてのVSCodeデバッグ
- Jupyter/Colabでエラー直後にデバッガを起動する
- 型ヒント×mypyでバグを未然に防ぐ
開発環境とツール
- 外部ライブラリを使う理由と選び方
- これだけ覚えるpipコマンド10選
- 仮想環境(venv)でプロジェクトごとに環境を分ける
- Python仮想環境のactivateとdeactivate
- venv環境の依存関係を丸ごと保存
- requirements.txtで一括インストールする手順
- VSCodeでPython開発を最適化するおすすめ拡張機能
- JupyterLabでも使えるマジック一覧
- tqdmの使い方 (長い処理の進捗表示)
- pyenvの使い方 – Pythonバージョン管理の効率化
- .envとpython-dotenvの使い方
- 設定ファイル(JSON/YAML/INI)を読み書きする方法
- IPythonとbpythonの使い方
- Gitの.gitignore(Python)何を書く?
- pre-commitでコミット前に整形とlintを自動化
- はじめてのDocker×Python実行環境構築
- ドキュメントを爆速検索するDash, Zealの使い方
標準ライブラリ活用
- 日付と時刻を取得・比較・表示(datetime)
- コピペで使える日付書式一覧
- datetime.timedeltaで日付の差を出す
- 処理を一定時間停止する方法(time.sleep)
- 乱数生成 – randint/choice/shuffle
- sys.argvでコマンドライン引数を取得する
- argparseでオプション解析を快適にする
- zipfileとgzipで圧縮・解凍する
- 実行時間を計測する方法(timeitとperf_counter)
- logging入門: 基本の使い方とログレベル
- collections.namedtuple入門
- pathlib入門 Pathでパス結合/走査/存在確認
- 文字化け対策 – cp932とencodingの使い分け
- with構文とは?ファイルやソケットを安全に閉じる理由
- CSVを読み込む・書き出す
- 辞書やリストをJSON化 – json.dumpとjson.load
- 1行でローカルWebサーバーを起動する
Webスクレイピング・自動化