딕셔너리를 이용한 영단어퀴즈 중복제거 알려주세요!!

조회수 792회
<python>
import random
dic = {'apple':'사과', 'mango':'망고', 'melon':'멜론', 'go':'가다', 'tv':'티비'}
score=0
dic_list=tuple(dic.keys())
dic_answer=tuple(dic.values())
print("[영어단어 맞추기 퀴즈입니다. 단어를 보고 알맞은 한글을 써서 맞추세요.]")
tmp=len(dic_list)
while score<5:
    x=random.randrange(0,tmp)
    print(dic_list[x])
    answer= input('답: ')
    if answer == dic_answer[x]:
        score= score +1
        print('정답입니다. 당신의 점수는', score, '입니다.')
    else:
        print('오답입니다. 당신의 점수는', score,'입니다.')
        break
    print('수고하셨습니다.')

영어단어 퀴즈를 제가 간단하게 만들어 봤는데 이미 나왔던 영단어가 중복해서 다시 나오는 단점이 있습니다. 혹시 이미 나왔던 단어를 제외시키는 중복제외를 추가시켜주실수 있나요?

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 딕셔너리면 items 메소드 결과를 list 로 변환하고 random 의 shuffle 를 이용해서 섞은 후 하나씩 pop 하면 됩니다. 정영훈 2019.10.11 12:00

1 답변

  • 아주 간단하게 다음과 같이 할 수 있습니다.

    물어봤던 질문을 기억해 놓고, 물어봤던 질문이 뽑혔을 때는 다시 뽑는다.

    물어봤던질문 = []
    while score<5:
      x = random.randrange(0, tmp) # 질문뽑기
      if x in 물어봤던질문: continue # 질문이 이미 물어봤던질문인지 확인.
      # ...
      물어봤던질문.append(x) # 물어봤던질문으로 기억.
    

    숙제는 스스로 하시길 권합니다. 질문답변게시판의 수준을 위해서도, 질문자 자신의 실력향상을 위해서도 혼자 고민하는 게 필요합니다.

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

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

(ಠ_ಠ)
(ಠ‿ಠ)