###### tags: `プログラミング授業` 早稲田本庄プログラミング課題解説(Python3) ======================== * 自由課題3-1 ずるいじゃんけんけんゲーム * 自由課題3-2 コイントス-1 * 自由課題3-3 コイントス-2 * 自由課題3-4 ずるくないじゃんけんゲーム ------- ## 自由課題3-1 ずるいじゃんけんゲーム #### ・input()関数でじゃんけんの⼿を読み込み,コンピュータが絶対に負けないようにprint⽂で⼿を出⼒してください. ``` event={"グー":"パー","チョキ":"グー","パー":"チョキ"} print("じゃんけんで私に勝ってくだいさい") s = input("じゃんけん!(グー、チョキ、パーのいずれか1つを入力してください)") print("私:"+event[s]) print("あなたの負けです") ``` 辞書「event」ではキーとバリューが勝敗関係となっています。したがって入力値「s」をキーとすれば、それに対応するバリューが勝ちの手です。 ------- ## 自由課題3-2 コイントス-1 #### ・コイントスをした結果を表⽰するプログラムを作成してください. ``` import random event=["Head","Tail"] print(random.choice(event)) ``` ・random.choice():リストからランダムに要素を1つ選択するrandomモジュールの関数。また、以下により裏と表が出る確率がほぼ同じであることが確認できる。 ``` #コード import random event=["H","T"] Tn=0 Hn=0 for i in range(10000): if random.choice(event)=="H": Hn+=1 else: Tn+=1 print(Tn,Hn) #出力例 4944 5056 ``` ------- ## 自由課題3-3 コイントス-2 #### ・input()で⼊⼒として H, T を受け取り,勝負を仕掛けて くるプログラムを作ってください.プログラムは,ユーザが選ばなかったほうを選びます. ``` import random com_choice={"H":"T","T":"H"} print("コインの裏表当て勝負!") usr = input("H,Tのどちらかを入力してください:") com = com_choice[usr] print("私は"+com + "を選択しました。") result = random.choice(list(com_choice.keys())) if result== usr: print("結果:"+ result) print("あなたの勝ちです") else: print("結果:"+ result) print("あなたの負けです。") ``` list(com_choice.keys()):辞書「com_choice」のキーだけを取り出したリスト ``` > print(list(com_choice.keys())) ["H","T"] ``` ------- ## 自由課題3-4 ずるくないじゃんけんゲーム #### ・ランダムにじゃんけんの⼿を出すじゃんけんゲームを作成してください. ``` import random relation={"グー":"パー","チョキ":"グー","パー":"チョキ"} while True: print("じゃんけんで私に勝ってくだいさい") usr = input("じゃんけん!グー、チョキ、パーのいずれか1つを入力してください") com = random.choice(list(relation.keys())) print(com) print(relation[com]) if usr in relation: if usr == relation[com]: print("私は"+com+"を出しました") print("あなたの勝ちです") break elif usr==com: print("あいこです") else: print("私は"+com+"を出しました") print("あなたの負けです") break else: print("無効な値が入力されました") ``` 変数usrは「グー、チョキ、パー、」以外のものを受け取る場合もあります(ユーザが指示に従わない場合)。そのような場合、じゃんけんが成り立たなくなってしまいます。そこで、指定されたもの以外が入力された場合に"無効な値が入力されました"と表示し、再入力させるようにしています。このように、プログラムが思うように動作しない可能性があることが分かっている場合、それに対して事前に処理を記述することでうまくプログラムを動作させることができます。 また、似たようなもので「[例外処理(try-except)](https://techacademy.jp/magazine/19311)」というものがあります。非常に便利な機能なのでぜひ調べてみてください。 -------
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up