今回はランダムな数値を生成し、その数値をユーザーに当ててもらうゲームを作成します。このプログラムは、CLI(コマンドラインインターフェイス)で実行されるように設計されています。
数字当てゲームのプログラム
import random def main(): # ランダムな数字を生成 answer = random.randint(1, 100) num_of_guesses = 0 # ユーザーに入力を促す print("1から100までの数字を当ててください。") # ユーザーが正解するまで繰り返す while True: try: guess = int(input("予想した数字を入力してください: ")) num_of_guesses += 1 except ValueError: print("数字を入力してください。") continue # 正解かどうかを判定する if guess == answer: print("正解です!あなたは{0}回目の予想で正解しました。".format(num_of_guesses)) break elif guess < answer: print("もっと大きな数字を予想してください。") else: print("もっと小さな数字を予想してください。") if __name__ == "__main__": main()
このプログラムは、ランダムな数値を生成し、ユーザーにその数値を当ててもらうゲームです。ユーザーが入力した数値が正解と一致するまで、ヒントを出しながら挑戦できます。
このプログラムを実行するには、CLIで以下のコマンドを実行します。
python guess_number.py
プログラムが実行され、ユーザーが数値を入力するプロンプトが表示されます。ユーザーが数値を入力すると、プログラムはその数値が正解よりも高いか低いかを判断し、適切なヒントを表示します。ユーザーが見事正解を当てると、プログラムは試行回数を表示してゲームを終了します。
ちょっとしたお楽しみにどうぞ!
数字当てゲームのプログラムの解説
先頭行から順番に解説します。そんなの知ってるよーな人は別のPythonゲームをお楽しみください。
import randomについて
import random
は、Pythonの標準ライブラリで、ランダムな数値やシーケンスを生成するための関数を提供します。random
モジュールには、様々なランダム関連の関数が含まれています。
例えば、random.randint(a,b)
は、aからbまでのランダムな整数を生成する関数です。今回はこの関数を利用して1から100までのランダムな数値を生成しています。また、random.choice(seq)
は、seq(リスト、タプル、文字列などのシーケンス)の中からランダムに1つ選ぶ関数です。
他にも、ランダムな浮動小数点数を生成するrandom.random()
や、ランダムなシーケンスをシャッフルするrandom.shuffle(seq)
などがあります。
def main():について
Pythonのdef
は、関数を定義するためのキーワードです。関数は一定の処理をまとめたもので、必要に応じて引数を受け取り、処理結果を戻り値として返すことができます。
def main()
という関数は、Pythonでよく使用される関数の1つで、プログラムのエントリーポイントとして機能します。Pythonのプログラムは、main()
関数から開始され、他の関数やコードを呼び出して実行します。main()
関数には通常、プログラムの実行に必要な初期化処理や、プログラムの制御フローを定義する処理が含まれます。
例えば、以下のようにmain()
関数を定義し、それを呼び出すことで、プログラムを実行することができます。
def main(): print("Hello, World!") if __name__ == '__main__': main()
通常、Pythonのプログラムは、if __name__ == '__main__'
ブロックで、main()
関数を呼び出すことによって実行されます。これにより、他のモジュールからこのプログラムをインポートしたときに、main()
関数が自動的に実行されるのを防ぐことができます。
except ValueErrorについて
Pythonにおける except ValueError
は、特定の例外である ValueError
が発生した場合に実行される例外処理のブロックを指定するために使用されます。
ValueError
は、Pythonのビルトイン例外の1つで、値が無効である場合に発生します。例えば、int()
関数を使用して整数に変換できない文字列を変換しようとすると、ValueError
が発生します。
今回はユーザーは数字当てゲームなので数値を入力する必要があり、文字列を入力すると ValueError
が発生します。今回のプログラムでは、例外が発生した場合「数字を入力してください。」を出力します。
コメント