품생품사(品生品死)

소프트웨어 품질에 살고 품질에 죽는 그런 평범한 일상 블로그

TESTING/PROGREMING

[파이썬 코딩 - Chap.24] 실습 조금 생각하는 단어 퀴즈 문제 풀어보기

품생품사(品生品死) 2020. 11. 29. 12:22
반응형

파이썬 예제 : 단어 퀴즈

단어 퀴즈를 내고 맞추는 코딩을 해봅시다.
#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

 

코딩이 처음이라면, 코드잇

월 3만원대로 Python, JavaScript, HTML/CSS, Java 등 1,600개 이상 프로그래밍 강의를 무제한 수강하세요

www.codeit.kr:443

This is coding_000
PYTHON 프로그래핑

요약 : sparta coding club, 스파르타 코딩, 코드잇, 노마드 코더, 프로그래밍, 직장인 코딩, 내일 배움 카드 코딩, 밀크티 코딩, 초등 코딩, 아이스크림 코딩, 코딩 소프트웨어, 파이썬 국비 지원, 파이썬 교육

728x90
반응형