Day 203乱数を使ってサイコロを作る
Pythonコード
1import random2 3def roll_dice(sides=6):4 return random.randint(1, sides)5 6def main():7 print('サイコロを振っています...')8 result = roll_dice()9 print(f'出た目は{result}です')10 11 try:12 sides = int(input('サイコロの面の数を入れてください: '))13 if sides <= 0:14 print('面の数は1以上でなければなりません')15 else:16 result = roll_dice(sides)17 print(f'{sides}面のサイコロで出た目は{result}です')18 except ValueError:19 print('数値を入力してください')20 21if __name__ == '__main__':22 main()
解説
- 行1: randomモジュールをインポートします。randomモジュールには、乱数を生成する関数が含まれています。ここでは、サイコロの出目をランダムに決定するために使用します。
- 行3〜5: サイコロを振る関数roll_diceを定義します。sidesパラメータでサイコロの面の数を指定できます。デフォルトでは6面のサイコロになります。random.randint(1, sides)で1からsidesまでの乱数を生成します。random.randint()は、指定された範囲内のランダムな整数を返す関数です。
- 行6〜10: main関数でプログラムの流れを制御します。まず、6面のサイコロを振って出た目を表示します。print()は、指定された文字列や値を画面に表示する関数です。
- 行11〜19: ユーザーにサイコロの面の数を入力してもらいます。入力された数値でサイコロを振って、出た目を表示します。try/exceptブロックで、ユーザーの入力が数値でない場合にエラーが発生しないようにします。ValueErrorが発生した場合、'数値を入力してください'と表示します。
- 行21〜22: if __name__ == '__main__': は、スクリプトが直接実行された場合に main() 関数を呼び出すための条件文です。
次に試してみよう
- サイコロの面の数をランダムに決定するようにプログラムを変更してみましょう
- 複数のサイコロを振る機能を追加してみましょう
- 出た目の結果をリストに保存し、結果を表示する機能を追加してみましょう