Day 37乱数を使ってサイコロを作る
Pythonコード
1import random2 3def roll_dice(sides=6):4 return random.randint(1, sides)5 6def main():7 print('サイコロを振ってください')8 try:9 num_sides = int(input('何面のサイコロですか?'))10 except ValueError:11 print('数字を入力してください')12 return13 result = roll_dice(num_sides)14 print(f'{num_sides}面のサイコロの結果:{result}')15 16if __name__ == '__main__':17 main()
解説
- 行1: randomというモジュールをインポートしています。これは、ランダムな数字を生成するために必要です。random.randint()は、指定された範囲のランダムな整数を返します。
- 行3〜4: roll_diceという関数を定義しています。この関数は、サイコロを振ったときの結果を返します。デフォルトでは6面のサイコロを想定しています。random.randint(1, sides)は、1からsidesまでのランダムな整数を生成します。
- 行6〜17: mainという関数を定義しています。この関数は、プログラムのメイン部分です。サイコロを振るように促すメッセージを表示し、サイコロの面の数を入力するように求めます。入力された値を整数に変換しようとします。もし入力された値が整数に変換できない場合(例えば、文字を入力した場合)、エラーが発生し、メッセージを表示して終了します。
- 行7〜8: input()関数は、ユーザーから入力を受け付ける関数です。int()関数は、入力された値を整数に変換します。try/exceptは、エラーが発生した場合に実行されるブロックです。
- 行9〜10: roll_dice関数を呼び出し、サイコロの結果を取得します。結果を表示します。print()関数は、画面に文字や値を表示する関数です。f-stringは、文字列内に変数を埋め込む方法です。
- 行16〜17: if __name__ == '__main__': という条件文は、main関数を実行するためのものです。__name__は、モジュールの名前を保持する変数です。'__main__'は、スクリプトが直接実行されたときの名前です。
次に試してみよう
- サイコロの結果をリストに保存し、複数回振った結果を表示する機能を追加してみましょう。
- サイコロの面の数をランダムに決定する機能を追加してみましょう。
- 複数個のサイコロを同時に振る機能を追加してみましょう。