정답을 끼워 넣을 차례입니다. 현재 selection에는 4개의 요소가 있으므로 인덱스 [0]부터 [3]까지 있습니다. 정답을 추가하면 인덱스는 [4]까지로 늘겠죠. 정답은 selection의 무작위 위치에 들어가야 하므로 0~4 중 하나를 무작위로 선택해야 합니다. 6장에서 다루지는 않았지만 리스트 중간에도 값을 추가할 수 있습니다. 형식은 다음과 같습니다.

    형식

    리스트명.insert(인덱스, 값)

    randint()를 활용해 0부터 4 사이에서 인덱스를 구하고, 해당 인덱스에 정답인 num1 * num2를 끼워 넣으면 됩니다. 다음으로 완성된 선택지 selection을 콤보박스와 다시 연결해야겠죠? 콤보박스의 values에 새로운 값은 콤보박스명['vaules'] = 리스트명 형식으로 넣습니다. 따라서 여기에서는 a_combo['values'] = selection이 됩니다. set()을 사용하면 selection의 각 요소가 모두 한 줄로 표시되어 선택지가 하나로 나오기 때문에 이 방식을 사용합니다.

    import random
    
    # ----- 프로그램 기능 부분 -----
    num1, num2 = 0, 0
    
    def make_question():
        global num1, num2
        # 문제 만들기
        num1, num2 = random.randint(2, 9), random.randint(1, 9)
        question.set(str(num1) + 'x' + str(num2) + '? ')
        # 선택지 초기화하고 새로 만들기
        selection = []
        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
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.