더북(TheBook)

random 라이브러리를 추가하고 make_question() 함수에 무작위로 구구단 문제를 내는 코드를 작성합니다. 구구단 문제는 앞에서 여러 번 다루었으므로 여기서는 설명을 생략하겠습니다.
5장을 참고해 코드를 작성하고 마지막에 출제한 문제를 동적변수 questionset() 함수로 설정하는 부분만 추가하면 됩니다.

[정답 확인] 버튼을 누르면 실행되는 이벤트도 작성해 봅시다. a_btn을 누르면 문제에 해당하는 답이 a_lbl 레이블에 나타나야 합니다. 구구단 문제의 정답은 num1 * num2이죠. a_btn 버튼을 누르면 정답인 num1 * num2를 동적변수 answer에 설정하는 사용자 정의 함수 check_answer()를 만듭니다.

def check_answer():
    answer.set(num1 * num2)

이제 만들어진 코드를 합치면 됩니다. 합치기 전에 make_question()check_answer() 함수에 사용하는 변수 num1, num2를 봅시다. num1, num2는 두 함수에서 공통으로 사용합니다. 특정 함수에서만 사용하는 지역변수로 만들면 다른 함수에서는 두 변수를 읽거나 쓸 수 없겠죠? 따라서 num1, num2는 함수 외부에 정의해 전역변수로 만들고, make_question()에서 global 키워드를 사용해 값을 변경할 수 있게 합니다.

설명대로 프로그램 기능 부분을 모두 작성하고 버튼에 두 함수를 연결합니다. 최종 코드는 다음과 같습니다(기존과 동일한 코드는 생략 표시했습니다).

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.