파이썬 Tkinter module에서 텍스트를 여러줄 출력하고 싶습니다.

조회수 1986회
import random as rd

def lottery_number():
    num = int(number.get())
    for i in range(num):
        lotto_list = list(range(1,46))   #from 1 to 45
        rd.shuffle(lotto_list) #shuffle
        lotto_list1 = lotto_list[:6]  
        lotto_list1.sort() #sorting 
        answer = '{}  Auto'.format(i), lotto_list1
    result.config(text=answer)

from tkinter import *

window = Tk()
label = Label(window, text = 'press lottery game number.')
label.pack()

number =Entry(window, width = 30)
number.pack()

btn = Button(window, text = 'Click', fg = 'blue', command = lottery_number)
btn.pack()

result = Label(window, text = 'Result')
result.pack()

window.mainloop()

이미지

결과값이 이렇게 한줄로 출력되어서 수정하고 싶습니다.

for문에 문제가 있는지 싶어서 print해보았느데 for문은 정상적으로 여러줄 출력되더군요

                          {1} Auto 3, 5, 9, 30 ,33
                          {2} Auto 4, 6, 9, 23 ,44
                          {3} Auto 1, 7, 9, 20 ,26

위와 같은 결과를 원합니다.

사실은 아래와 같이 알파벳으로 순서를 정렬하여 tkinter window에 출력하고 싶습니다. 알파벳정렬은 방법을 모르겠어서.. 도움부탁드립니다.

                         {A} Auto 3, 5, 9, 30 ,33
                         {B} Auto 4, 6, 9, 23 ,44
                         {C} Auto 1, 7, 9, 20 ,26
  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 아래 코드 참고하세요.

    • 코드
    import random as rd
    
    def lottery_number():
        num = int(number.get())
        answer = ''
        for i in range(num):
            lotto_list = list(range(1,46)) #from 1 to 45
            rd.shuffle(lotto_list) #shuffle
            lotto_list1 = lotto_list[:6]
            lotto_list1.sort() #sorting 
    
            answer += '{' + '%s' % chr(ord('A') + i) + '} Auto '
            for j in range(len(lotto_list1)):
                answer += '%2s' % lotto_list1[j]
                if j != len(lotto_list1)-1:
                    answer += ', '
            if i != num-1:
                answer += '\n'
    
        result.config(text=answer)
    
    from tkinter import *
    
    window = Tk()
    label = Label(window, text = 'press lottery game number.')
    label.pack()
    
    number = Entry(window, width = 30)
    number.pack()
    
    btn = Button(window, text = 'Click', fg = 'blue', command = lottery_number)
    btn.pack()
    
    result = Label(window, text = 'Result', font = 'TkFixedFont')
    result.pack()
    
    window.mainloop()
    
    • 결과

    이미지

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)