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
# print(vocab)
# 목록 가져오기
keys = list(vocab.keys())
# print(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))
오답문제
: 알고리즘을 하는 것에 대해서 나의 가장 문제점은 작업 분할을 하지 않는다는 것이다. 일단 사전을 객체 형태로 따로 정리를 하고, keys 값이나 values 값을 따로 빼두는 행위를 했어야 했다.
그리고 random을 index로 사용해야겠다는 생각을 했지만 방법이 잘못되었다. keys 값을 따로 빼둔 배열에 인덱스를 넣어서 객체의 key 값에 대입을 했어야 했고, values 값을 설정했어야 했다. 근데 그러질 못했다.
그리고 입력값을 받을 때 그냥 korean: 을 할게 아니고 "".format()을 설정하여 더 깔끔하게 보이는게 좋은 것 같다.
그 다음에 출력하고 break 하는 것은 이전과 동일해서 어렵지 않았다.
작업 분할 좀 하자! 정리하고(딕셔너리 형태로) 랜덤값 주고(배열의 인덱스로) 그리고 조건문으로 출력!
랜덤 모듈은 따로 다운로드 받아야 하나요?