じゃんけんプログラム 入力してCPUと戦う
コマンドライン引数で規定回数を設定し、引数を与えなかったら規定回数を設定しないというのをやりたかった。
max_count=∞とかいう書き方ができないので、例外処理で誤魔化している。
意図的に例外を起こしうるようなコード書かずにmax_countが定義されない条件で条件分岐させたほうがいいのか?
import random import sys count_win = 0 count_lose = 0 count_draw = 0 count = 0 tmp = ['g', 'c', 'p'] judge = { 'g':'c','c':'p','p':'g' } my_list = [] cpu_list = [] try: if len(sys.argv) > 1: if int(sys.argv[1]) >= 1: max_count = int(sys.argv[1]) else: print('cmd引数を無効として進める') except ValueError: print('cmd引数を無効として進める') print('game開始\n') while True: my_jank = input() if my_jank == 'stop': break if my_jank not in tmp: print('正しく入力せよ\n') continue count += 1 cpu_jank = tmp[random.randint(0,2)] my_list.append(my_jank) cpu_list.append(cpu_jank) if my_jank == cpu_jank: count_draw += 1 print('引き分け\n') elif cpu_jank == judge[my_jank]: count_win += 1 print('勝ち\n') else: count_lose += 1 print('負け\n') try: if count == max_count: print('規定回数に達したのでゲーム終了です\n') break except NameError: pass print('win:', count_win, 'lose:', count_lose, 'draw:', count_draw) print(my_list) print(cpu_list)