Pythonミニ制作:パスワード生成ツールを作る

入門 | 12分 で読める | 2026.07.13

公式ドキュメント

今回やること

ランダムな文字を組み合わせて、パスワードを生成します。

パスワード用途では、randomではなくsecretsを使うのが基本です。

完成コード

password_generator.py を作ります。

import secrets
import string


def create_password(length):
    characters = string.ascii_letters + string.digits
    password = ""

    for _ in range(length):
        password += secrets.choice(characters)

    return password


password = create_password(12)
print(password)
print(f"文字数: {len(password)}")

動作確認

python password_generator.py

12文字の英数字と 文字数: 12 が表示されれば成功です。

コードの考え方

  • string.ascii_letters は英字です
  • string.digits は数字です
  • secrets.choice() で安全寄りに1文字選びます
  • for で指定回数だけ文字を追加します

よくあるエラー

エラー原因修正
NameErrorimportを書いていないimport secrets を確認
文字数が違うループ回数が違うrange(length) を確認
記号がない英数字だけにしている必要なら string.punctuation を追加

練習

  1. 16文字のパスワードを作る
  2. 記号も含める
  3. 5個まとめて生成する

次のステップ

データ保存に進む場合は Pythonミニ制作:JSONファイルを読み書きする を読んでください。

参考リソース

← 一覧に戻る
PR
PR
PR
PR