Day 75簡単なパスワード生成器
Pythonコード
1import random2import string3 4def generate_password(length):5 characters = string.ascii_letters + string.digits + string.punctuation6 password = ''.join(random.choice(characters) for _ in range(length))7 return password8 9try:10 length = int(input('パスワードの長さを入力してください:'))11except ValueError:12 print('数値を入力してください。')13else:14 print('生成されたパスワード:', generate_password(length))
解説
- 行1〜2: ランダムな文字列を生成するために、random と string という標準ライブラリをインポートしています。random はランダムな数字や選択を生成するために使用され、string は文字列の定数を提供します。例えば、string.ascii_letters は全ての英字(大文字と小文字)を含む文字列です。
- 行4〜7: generate_password という関数を定義しています。この関数は、指定された長さのパスワードを生成します。characters 変数には、英字(大文字と小文字)、数字、記号が含まれています。random.choice はリストからランダムに要素を選択し、join は文字列を結合します。
- 行9〜14: ユーザーにパスワードの長さを入力してもらいます。try/except ブロックを使用して、入力が数値でない場合にエラーを処理しています。入力が成功した場合、generate_password 関数を呼び出してパスワードを生成し、結果を印刷します。print() は画面に文字や値を表示する関数です。
- 行10: 補足: input() はユーザーから入力を受け付ける関数です。int() は入力された文字列を整数に変換します。
- 行12: 補足: ValueError は、int() などの関数が予期せぬ型の値を処理しようとしたときに発生する例外です。
- 行6: 補足: range() は連続した整数を順番に取り出すために使います。
次に試してみよう
- パスワード生成時に使用する文字の種類を変更してみましょう。
- 生成されたパスワードの長さを変更してみましょう。
- パスワード生成を複数回実行して、ランダム性を確認してみましょう。