python3 で指定した数字(ここでは0,1,2)以外を入力した場合に
指定メッセージを表示させてもう一度入力させる機能を実現したいです。
try: except:構文により入力値が数字以外の文字列の場合は、実現できて
おり、指定メッセージも表示されております。
ただし、0-2以外の数字を入力した場合に"KeyError"が出ております。
今回は"5"を入力してerrorが出力されました。
Python
1import numpy as np 2np.random.seed(0) 3hands = {0:"グー",1:"チョキ",2:"パー"} 4x = 0 5y = 0 6z = 0 7print("ジャンケンを始めます") 8while True: 9 con = input("続けますか? はい: y いいえ: n :") 10 11 if con == "n": 12 print("終わります。") 13 break 14 if con == "y": 15 try: 16 player = int(input("出し手を入力してください。 グー:0 チョキ:1 パー:2 :")) 17 except: 18 print("{},{},{},のいずれかの数字を入力してください!!".format(0, 1, 2)) 19 continue 20 dealer = np.random.randint(0,3) 21 algo = (int(player) - int(dealer) + 3)%3 22 if algo == 0: 23 print('あなた:{0} コンピュータ:{1} であなたは、引き分けです'.format(hands[player], hands[dealer])) 24 z += 1 25 if algo == 1: 26 print('あなた:{0} コンピュータ:{1} であなたは、負けです'.format(hands[player], hands[dealer])) 27 y += 1 28 if algo == 2: 29 print('あなた:{0} コンピュータ:{1} であなたは、勝ちです'.format(hands[player], hands[dealer])) 30 x += 1 31 print("あなたの成績:{}勝{}敗{}分け".format(z,y,x)) 32
続けますか? はい: y いいえ: n :y
出し手を入力してください。 グー:0 チョキ:1 パー:2 :5
エラーメッセージ----------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-5-d704857faa25> in <module>
27 y += 1
28 if algo == 2:
---> 29 print('あなた:{0} コンピュータ:{1} であなたは、勝ちです'.format(hands[player], hands[dealer]))
30 x += 1
31 print("あなたの成績:{}勝{}敗{}分け".format(z,y,x))
KeyError: 5
回答4件
あなたの回答
tips
プレビュー