1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Python入門、個人的メモ

Last updated at Posted at 2025-09-30

はじめに

Pythonの案件に参画することになったので、学習する。

環境

  • windows
  • vscode
    • pluginはwsl側にインストールする必要がある
    • インタプリンタの設定をして、ボタンでpythonを実行できるようにした。コマンド打つより楽
  • wsl
    • Reopen Folder in WSLと打って、vscodeフォルダを開きなおすこと
  • python 3.11 (最新は3.14)
  • python3と打つのが嫌なのでシンボリックリンクを張った
    sudo ln -sf /usr/local/bin/python3 /usr/bin/python
    

動画、2時間30分

まずはこれからやってみる。倍速で流し見でOK。

仕事では何を覚えればいいんだろう?

仕事ではAPIを実行して、その値を整形していた気がする

構成。コードはこちら

api-lesson/
├── api_client/
│   ├── __init__.py
│   └── client.py     ← APIアクセスやエラーハンドリングの本体
└── main.py           ← 実行用のCLIスクリプト

準備

pip install requests

実行方法

# ID=1 の投稿を取得
python main.py --id 1

# JSONをそのまま表示
python main.py --id 1 --raw

# 存在しないIDを指定してエラー確認
python main.py --id 9999

# タイムアウト強制(0.001秒で失敗させる)
python main.py --id 1 --timeout 0.001

リトライ対象と非対象のステータスコード

✅ リトライ対象

  • 429 Too Many Requests
    レート制限オーバー(呼びすぎ)
    時間を置けば成功することが多い → リトライ対象

  • 5xx サーバエラー
    例: 500 Internal Server Error, 503 Service Unavailable など
    クライアントのリクエスト内容は正しいが、サーバが壊れているだけ
    待てば回復する可能性が高い → リトライ対象


❌ リトライ非対象

  • 4xx クライアントエラー
    例: 400 Bad Request, 401 Unauthorized, 404 Not Found など
    リクエスト自体が間違っていることが多い
    リトライしても意味がない
    例: 404 を何度叩いても存在しないリソースは返ってこない

自動テスト pytest

pythonのバージョン切り替える方法

🔹 venv(仮想環境)とは

プロジェクトごとに独立した Python 環境を作れる仕組み

ライブラリや依存関係を分離できるので、他のプロジェクトやシステム全体に影響を与えません

方法1:pyenvを使う(複数バージョン切り替えに最適)

  1. pyenvインストール

    sudo apt update
    sudo apt install -y build-essential libssl-dev zlib1g-dev \
      libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
      libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
    curl https://pyenv.run | bash
    

    .bashrc に以下を追加して有効化:

    export PATH="$HOME/.pyenv/bin:$PATH"
    eval "$(pyenv init -)"
    

    反映:

    source ~/.bashrc
    
  2. Python 3.13 をインストール

    pyenv install 3.13.0
    
  3. 3.13 を一時的に使う

    pyenv shell 3.13.0
    python --version   # → Python 3.13.0
    
  4. 元に戻す(3.11 に切り替え)

    pyenv shell system
    python --version   # → Python 3.11.x
    

コード修正lint、ruffというツールがある

  • Black = フォーマット専用。常に同じスタイルになる安心感。

  • Ruff = リント(エラーや無駄コード検出)+自動修正+フォーマット(Black互換モード)。

    ツール導入(最小セット)

    pip install ruff black
    

    一括で直す

    ruff check . --fix
    black .
    

    ファイル単位で直す

    # 1つのファイルをチェック&修正
    ruff check script.py --fix
    
    # フォルダ以下を全部チェック&修正
    ruff check . --fix
    
    # 1つのファイルを整形
    black script.py
    
    # プロジェクト全体を整形
    black .
    

    問題点だけみたい

    # ディレクトリ全体をチェック
    ruff check .
    
    # 特定のファイルだけチェック
    ruff check script.py
    
    black --check .
    
    black --diff script.py
    
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?