✏️ STUDY/📍 coding

[Python 기초] 문제 11. 고급 단어장

나무울 2022. 12. 4. 09:00

 

 

문제

random 모듈과 사전(dictionary)을 이용해서 vocabulary.txt의 단어들을 랜덤한 순서로 내도록 프로그램을 바꿔 보세요.
같은 단어를 여러번 물어봐도 괜찮고, 프로그램은 사용자가 알파벳 q를 입력할 때까지 계속 실행됩니다.

 


 

힌트

  • 우선 vocabulary.txt 파일을 읽고, 파이썬 사전을 채워 넣어야 한다.
  • 영어 단어 목록을 받아오려면 파이썬 사전의 keys를 사용하면 된다.
  • random 모듈의 randint 함수를 이용해서 랜덤한 인덱스를 받는다.
  • 그 랜덤한 인덱스를 통해 vocab.keys() 리스트에서 단어를 받는다.

 


 

답안

import random

# 사전 만들기
vocab = {}
with open('vocabulary.txt', 'r') as f:
    for line in f:
        data = line.strip().split(": ")
        english_word, korean_word = data[0], data[1]
        vocab[english_word] = korean_word

# 목록 가져오기
keys = list(vocab.keys())

# 문제 내기
while True:
    # 랜덤한 문제 받아오기
    index = random.randint(0, len(keys) - 1)
    english_word = keys[index]
    korean_word = vocab[english_word]
    
    # 유저 입력값 받기
    guess = input("{}: ".format(korean_word))
    
    # 프로그램 끝내기
    if guess == 'q':
        break
    
    # 정답 확인하기
    if guess == english_word:
        print("정답입니다!\n")
    else:
        print("틀렸습니다. 정답은 {}입니다.\n".format(english_word))