문제
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))
'✏️ STUDY > 📍 coding' 카테고리의 다른 글
[Python 기초] 문제 10. 단어장 만들기 (0) | 2022.12.03 |
---|---|
[Python 기초] 8. 사용자 입력 받기&파일 읽고 쓰기 (0) | 2022.12.01 |
[Python 기초] 7. 파이썬 모듈 맛보기 (1) | 2022.11.30 |
[Python 기초] 문제 9. 주민등록번호 가리기 (0) | 2022.11.28 |
[Python 기초] 문제 8. 자릿수 합 구하기 (2) | 2022.11.27 |