Pythonチートシート

入門 | 15分 で読める | 2025.01.10

公式ドキュメント

この記事の要点

リスト内包表記f-stringがPythonの書き方の基本
with文でファイル操作、try/exceptで例外処理
dataclasspathlibでモダンなPythonコードを書く

基本構文

変数と型

コード説明
name = "Alice"文字列の変数
age = 25整数の変数
price = 19.99浮動小数点の変数
is_active = True真偽値の変数
type(name)型を確認
int("42")文字列を整数に変換
str(42)数値を文字列に変換
float("3.14")文字列を浮動小数点に変換
bool(1)数値を真偽値に変換
list("abc")文字列をリストに変換

文字列

コード説明
f"Hello, {name}!"f-string(推奨)
"Hello, {}!".format(name)format メソッド
"Hello, %s!" % name% 演算子
s.upper()大文字に変換
s.lower()小文字に変換
s.capitalize()先頭を大文字に
s.title()各単語の先頭を大文字に
s.strip()空白を除去
s.split()空白で分割
s.replace("l", "L")文字列を置換
s.startswith("h")先頭文字を判定
s.endswith("d")末尾文字を判定
"o" in s文字列に含まれるか判定
s[0]最初の文字
s[-1]最後の文字
s[0:5]スライス(0-4)
s[::2]2文字おきに取得
s[::-1]逆順

ポイント: f-stringf"Hello, {name}!")が最もPythonic。.format()%よりも読みやすく高速です。

リスト

コード説明
items = [1, 2, 3, 4, 5]リストを作成
items = list(range(1, 6))range からリストを作成
items.append(6)末尾に追加
items.insert(0, 0)位置指定で追加
items.extend([7, 8])リストを結合
items.pop()末尾を削除して返す
items.pop(0)位置指定で削除
items.remove(3)値指定で削除
items.index(2)値のインデックス
items.count(2)値の出現回数
items.sort()ソート(破壊的)
items.reverse()逆順(破壊的)
sorted(items)ソート(非破壊的)
len(items)長さ
items[1:3]スライス
items[::2]2つおきに取得
items[-3:]最後の3つ
[x**2 for x in range(10)]リスト内包表記(二乗)
[x for x in range(10) if x % 2 == 0]リスト内包表記(フィルタ)
[[i*j for j in range(3)] for i in range(3)]ネストしたリスト内包表記

実践メモ: リスト内包表記[x**2 for x in range(10)])はforループより簡潔で高速。フィルタ条件もifで追加できます。

辞書

コード説明
user = {"name": "Alice", "age": 25}辞書を作成
user = dict(name="Alice", age=25)dict() で作成
user["email"] = "alice@example.com"追加/更新
user.get("name")値を取得
user.get("phone", "N/A")デフォルト値付きで取得
user.keys()キー一覧
user.values()値一覧
user.items()キーと値のペア
user.pop("age")削除して返す
user.update({"city": "Tokyo"})辞書をマージ
"name" in userキーの存在確認
{x: x**2 for x in range(5)}辞書内包表記

セット

コード説明
s = {1, 2, 3}セットを作成
s = set([1, 2, 2, 3])リストからセットを作成(重複除去)
s.add(4)要素を追加
s.remove(1)削除(なければエラー)
s.discard(1)削除(なくてもOK)
s.pop()ランダムに削除
a | b和集合
a & b積集合
a - b差集合
a ^ b対称差

注意: 辞書のキーアクセスdict["key"]だとKeyErrorが発生します。.get("key", default)を使えばデフォルト値を返せて安全です。

制御構文

条件分岐

if x > 0:
    print("positive")
elif x < 0:
    print("negative")
else:
    print("zero")

# 三項演算子
result = "even" if x % 2 == 0 else "odd"

# match文(Python 3.10+)
match status:
    case "pending":
        print("保留中")
    case "approved":
        print("承認済み")
    case _:
        print("不明")

ループ

# for
for i in range(5):
    print(i)

for item in items:
    print(item)

for i, item in enumerate(items):
    print(i, item)

for key, value in user.items():
    print(key, value)

# while
while condition:
    # 処理
    if should_break:
        break
    if should_skip:
        continue

関数

# 基本
def greet(name: str) -> str:
    return f"Hello, {name}!"

# デフォルト引数
def greet(name: str = "World") -> str:
    return f"Hello, {name}!"

# 可変長引数
def sum_all(*args):
    return sum(args)

def create_user(**kwargs):
    return kwargs

# ラムダ
square = lambda x: x ** 2
sorted(items, key=lambda x: x["name"])

クラス

from dataclasses import dataclass
from typing import Optional

# 通常のクラス
class User:
    def __init__(self, name: str, age: int):
        self.name = name
        self.age = age

    def greet(self) -> str:
        return f"Hello, {self.name}!"

# dataclass(推奨)
@dataclass
class User:
    name: str
    age: int
    email: Optional[str] = None

    def greet(self) -> str:
        return f"Hello, {self.name}!"

ポイント: 型ヒントdef greet(name: str) -> str:)を使うとIDEの補完が効き、コードの意図も明確になります。

実践メモ: @dataclassを使えばクラス定義が大幅に簡潔に。__init____repr____eq__が自動生成されます。

ファイル操作

コード説明
with open("file.txt", "r", encoding="utf-8") as f: content = f.read()ファイルを読み込み
with open("file.txt", "r", encoding="utf-8") as f: lines = f.readlines()全行を読み込み
with open("file.txt", "w", encoding="utf-8") as f: f.write("Hello, World!")ファイルに書き込み
import jsonJSON モジュールをインポート
with open("data.json", "r") as f: data = json.load(f)JSON ファイルを読み込み
with open("data.json", "w") as f: json.dump(data, f, indent=2, ensure_ascii=False)JSON ファイルに書き込み

例外処理

コード説明
try:例外が発生する可能性のあるコード
except ZeroDivisionError:特定の例外をキャッチ
except Exception as e:全ての例外をキャッチ
else:例外が発生しなかった場合に実行
finally:常に実行
raise ValueError("無効な値です")例外を発生させる

注意: ファイル操作は必ずwith文を使いましょう。with open(...) as f:なら例外発生時も自動でファイルがクローズされます。encoding="utf-8"も忘れずに。

よく使うモジュール

コード説明
from pathlib import PathPath モジュールをインポート
path = Path("dir/file.txt")パスオブジェクトを作成
path.exists()パスの存在確認
path.is_file()ファイルか判定
path.read_text()ファイルを読み込み
path.write_text("content")ファイルに書き込み
path.parent親ディレクトリ
path.stem拡張子なしファイル名
from datetime import datetime, timedelta日時モジュールをインポート
now = datetime.now()現在日時を取得
now.strftime("%Y-%m-%d %H:%M:%S")日時を文字列に変換
datetime.strptime("2025-01-10", "%Y-%m-%d")文字列を日時に変換
now + timedelta(days=7)日時を加算
import re正規表現モジュールをインポート
re.match(r"\d+", "123abc")先頭からマッチ
re.search(r"\d+", "abc123")文字列全体から検索
re.findall(r"\d+", "a1b2c3")全てのマッチを取得
re.sub(r"\d+", "X", "a1b2")置換
import requestsrequests モジュールをインポート
res = requests.get("https://api.example.com/data")HTTP GET リクエスト
res.json()レスポンスを JSON にパース
requests.post(url, json={"key": "value"})HTTP POST リクエスト

参考リソース

関連記事

この技術を体系的に学びたいですか?

未来学では東証プライム上場企業のITエンジニアが24時間サポート。月額24,800円から、退会金0円のオンラインIT塾です。

メールで無料相談する
← 一覧に戻る