파이썬 예제 : 단어 퀴즈
단어 퀴즈를 내고 맞추는 코딩을 해봅시다.
#23에서 사용한 .txt의 데이터를 불러와서 프로그램이 동작되도록 해야합니다.
정답은 아니니 응용해서 코딩해 보도록 하세요.
문제
앞선 실습 과제에서 vocabulary.txt라는 파일을 만들었죠?
이 파일에는 우리가 암기하고 싶은 단어들이 정리되어 있는데요.
이번에는 이 파일의 단어들을 가지고 학생들에게 문제를 내 주는 프로그램을 만들려고 합니다.
프로그램은 콘솔에 한국어 뜻을 알려 줄 것이고, 사용자는 그에 맞는 영어 단어를 입력해야 합니다.
사용자가 입력한 영어 단어가 정답이면 "맞았습니다!"라고 출력하고,
틀리면 "아쉽습니다. 정답은 OOO입니다."가 출력되어야 합니다.
문제를 내는 순서는 vocabulary.txt에 정리된 순서입니다.
출력 예시
고양이: cat
맞았습니다!
사과: fruit
아쉽습니다. 정답은 apple입니다.
교회: church
맞았습니다!
절: tample
아쉽습니다. 정답은 temple입니다.
지갑: wallet
맞았습니다!
책가방: bag
아쉽습니다. 정답은 backpack입니다.
비누: soap
맞았습니다!
자전거: bycicle
아쉽습니다. 정답은 bicycle입니다.
힌트
1. 파일을 읽기 위해서는 먼저 파일을 열어야겠죠?
with open('vocabulary.txt', 'r') as f:
이렇게 하면 vocabulary.txt라는 파일을 열고, 그 파일에 읽을 수 있습니다.
2. 이제 파일을 한 줄씩 순서대로 읽어야 하는데요. for문을 사용하면 되겠죠?
for line in f:
for문의 수행 부분에는 어떤 코드가 들어가야 할까요?
3. 먼저 각 줄(line)의 영어 단어와 한국어 뜻을 각각 어떻게 받아올 수 있을지 생각해 봅시다.
두 단계를 거쳐 할 수 있는데요.
- strip을 이용해서 line에서 "\n"을 없앤다.
- split을 이용해서 영어 단어와 한국어 뜻 나눈다.
코드로 한 번 작성해 보세요.
4. 힌트 3을 코드로 작성하면 이렇습니다.
data = line.strip().split(": ")
그러면 data 리스트의 0번 인덱스에는 영어 단어가 들어가고,
1번 인덱스에는 한국어 뜻이 들어가는 거죠. 깔끔한 코드를 위해, 각각 변수에 지정하겠습니다.
english_word, korean_word = data[0], data[1]
5. 이제 사용자에게 문제를 내고, 답을 입력받으면 됩니다.
guess = input("{}: ".format(korean_word))
그 후에는 답이 맞았는지 틀렸는지 알려 주는 코드만 쓰면 됩니다!
정답
with open('vocabulary.txt', 'r') as f:
for line in f:
data = line.strip().split(": ")
english_word, korean_word = data[0], data[1]
# 유저 입력값 받기
guess = input("{}: ".format(korean_word))
# 정답 확인하기
if guess == english_word:
print("정답입니다!\n")
else:
print("아쉽습니다. 정답은 {}입니다.\n".format(english_word))
Related References
요약 : sparta coding club, 스파르타 코딩, 코드잇, 노마드 코더, 프로그래밍, 직장인 코딩, 내일 배움 카드 코딩, 밀크티 코딩, 초등 코딩, 아이스크림 코딩, 코딩 소프트웨어, 파이썬 국비 지원, 파이썬 교육
'TESTING > PROGREMING' 카테고리의 다른 글
[파이썬 코딩 - Chap.26] 실습 많이 생각해서 추억의 숫자 야구 게임 만들기 (0) | 2020.11.30 |
---|---|
[파이썬 코딩 - Chap.25] 실습 많이 생각해서 로또 시뮬레이션 만들 (0) | 2020.11.29 |
[파이썬 코딩 - Chap.23] 실습 조금 생각하는 단어장 만들기 문제 풀어보기 (0) | 2020.11.29 |
[파이썬 코딩 - Chap.22] 실습 조금 생각하는 매출 계산 문제 풀어보기 (0) | 2020.11.29 |
[파이썬 코딩 - Chap.21] 실습 조금 생각하는 숫자 맞히기 게임 문제 풀어보기 (0) | 2020.11.27 |