더북(TheBook)

앞의 구구단 프로그램에서 [정답 확인] 버튼을 클릭했을 때 check_answer() 함수가 실행되게 합니다. check_answer() 함수에서는 선택한 값이 정답이면 ‘정답입니다!’를, 정답이 아닐 때는 ‘다시 한번 풀어 보세요.’를 메시지박스로 표시합니다. 전체 코드를 작성해 봅시다.

from tkinter import *
from tkinter.ttk import *
from tkinter.messagebox import *
import random

# ----- 프로그램 기능 부분 -----
# 전역변수
num1, num2 = 0, 0
selection = [] # 전역변수로 위치 이동

def make_question():
    global num1, num2
    # 문제 만들기
    num1, num2 = random.randint(2, 9), random.randint(1, 9)
    question.set(str(num1) + 'x' + str(num2) + '? ')

    # 선택지 만들기
    for i in range(4):
        selection.append(random.randint(2, 81))
    idx = random.randint(0, 4)
    selection.insert(idx, num1 * num2)
    a_combo['values'] = selection

def check_answer():
    if int(a_combo.get()) == num1 * num2:
        showinfo(title='정답 확인!', message='정답입니다.')
    else:
        showerror(title='정답 확인!', message='다시 한번 풀어 보세요!')

# ----- 프로그램 화면 부분 -----
root = Tk()
root.title('구구단')
root.geometry('400x200')
question = StringVar()
q_lbl = Label(root, textvariable=question, width=30, anchor='center')
q_lbl.grid(row=0, column=0)
q_btn = Button(root, text='새로운 문제', width=10, command=make_question)

q_btn.grid(row=0, column=1)
a_combo = Combobox(root, values=selection, width=30)
a_combo.grid(row=1, column=0)
a_btn = Button(root, text='정답 확인', width=10, command=check_answer)
a_btn.grid(row=1, column=1)

root.mainloop()
실행결과
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.