足し算の問題を出してその正解数を求める関数を作ろうとしています。下記のコードではcheckAnswer()がループ毎に0で初期化しているので正解数がカウントされていないと思うのですが、グローバル変数を使わずに関数の中の変数をカウントするにはどうしたらいいでしょうか?試しにproblem()の下に書いてもUnboundLocalErrorが出てダメでした。
python
1import random 2def problem(): 3 for i in range(1, 4): 4 first_num = random.randint(1, 20) 5 second_num = random.randint(1, 20) 6 print(first_num, "+", second_num, "= ", end="") 7 user_num = int(input()) 8 def calculateCorrectAnswer(): 9 answer = first_num + second_num 10 return answer 11 def checkAnswer(correct_answer): 12 counter_correct = 0 13 if (user_num == correct_answer): 14 print("correct") 15 counter_correct += 1 16 else: 17 print("incorrect") 18 return counter_correct 19 20 correct_answer = calculateCorrectAnswer() 21 user_correct = checkAnswer(correct_answer) 22 return user_correct 23 24A = problem() 25print("正解数は", A, "です") 26 27""" 28(output) 292 + 3 = 5 30correct 317 + 4 = 11 32correct 339 + 7 = 16 34correct 35正解数は 1 です 36""" 37
回答3件
あなたの回答
tips
プレビュー