실습과제
영어 강사 Coy는 학생들의 단어 암기를 위해 단어장 프로그램을 만들려고 합니다.
이 프로그램은 콘솔로 영어 단어와 한국어 뜻을 받고, vocabulary.txt라는 새로운 텍스트 파일에 단어와 뜻을 정리하는데요. 사용자가 새로운 단어와 뜻을 입력할 때마다 vocabulary.txt에 작성되는 것입니다.
사용자는 반복적으로 단어와 뜻을 입력하는데, 단어나 뜻으로 q를 입력하는 순간 프로그램은 즉시 종료됩니다. 사용자가 q를 입력하고 나면 파일은 더 이상 바뀌지 않아야 합니다.
프로그램 예시 동작
프로그램의 예시 동작은 아래와 같습니다.
영어 단어를 입력하세요:
영어 단어를 입력하세요: cat
한국어 뜻을 입력하세요:
영어 단어를 입력하세요: cat
한국어 뜻을 입력하세요: 고양이
영어 단어를 입력하세요:
영어 단어를 입력하세요: cat
한국어 뜻을 입력하세요: 고양이
영어 단어를 입력하세요: apple
한국어 뜻을 입력하세요:
영어 단어를 입력하세요: cat
한국어 뜻을 입력하세요: 고양이
영어 단어를 입력하세요: apple
한국어 뜻을 입력하세요: 사과
영어 단어를 입력하세요:
이런 식으로 단어를 여덟 개 입력했다고 가정합시다.
영어 단어를 입력하세요: cat
한국어 뜻을 입력하세요: 고양이
영어 단어를 입력하세요: apple
한국어 뜻을 입력하세요: 사과
영어 단어를 입력하세요: church
한국어 뜻을 입력하세요: 교회
영어 단어를 입력하세요: temple
한국어 뜻을 입력하세요: 절
영어 단어를 입력하세요: wallet
한국어 뜻을 입력하세요: 지갑
영어 단어를 입력하세요: backpack
한국어 뜻을 입력하세요: 책가방
영어 단어를 입력하세요: soap
한국어 뜻을 입력하세요: 비누
영어 단어를 입력하세요: bicycle
한국어 뜻을 입력하세요: 자전거
영어 단어를 입력하세요: q
사용자가 q를 입력하면 프로그램이 종료되고, vocabulary.txt에 다음과 같이 단어들이 정리되어 있어야 합니다.
cat: 고양이
apple: 사과
church: 교회
temple: 절
wallet: 지갑
backpack: 책가방
soap: 비누
bicycle: 자전거
셀프 채점
다음 항목들이 제대로 구현되었는지 확인해 보세요!
프로그램을 실행하면 "영어 단어를 입력하세요:"가 출력되고 사용자의 입력을 받는다.
영어 단어를 입력하고 나면 "한국어 뜻을 입력하세요:"라고 출력된 후, 사용자 입력을 받는다.
q를 입력하면 프로그램이 종료된다.
vocabulary.txt 파일에 내가 입력한 단어들이 잘 기록되어 있다.
q를 입력했을 때, q가 vocabulary.txt 파일에 기록되지 않는다.
힌트2/2
과제 해설
파일을 쓰기 위해서는 먼저 파일을 열어야겠죠?
with open('vocabulary.txt', 'w') as f:
이렇게 하면 vocabulary.txt라는 파일을 열고, 그 파일에 글을 작성할 수 있습니다.
글을 작성하기 위해서는 단어와 뜻을 반복적으로 받아야 하는데요. while문에서 반복적으로 해야 하는 일을 정리해 봅시다.
- 영어 단어를 입력 받는다.
- 만약 유저가 q를 입력했으면 프로그램을 종료한다.
- 한국어 뜻을 받는다.
- 만약 유저가 q를 입력했으면 프로그램을 종료한다.
- 영어 단어와 한국어 뜻을 단어: 뜻의 형태로 파일에 작성한다.
이것을 코드로 변환하기만 하면 됩니다.
모범 답안
with open('vocabulary.txt', 'w') as f:
while True:
english_word = input('영어 단어를 입력하세요: ')
if english_word == 'q':
break
korean_word = input('한국어 뜻을 입력하세요: ')
if korean_word == 'q':
break
f.write('{}: {}\n'.format(english_word, korean_word))
'교육 > [Codeit] 프로그래밍 기초 in Python' 카테고리의 다른 글
실습과제. 고급단어장 (0) | 2021.01.15 |
---|---|
실습과제. 단어퀴즈 (0) | 2021.01.11 |
파일 쓰기 (0) | 2021.01.10 |
실습과제. 코딩에 빠진 닭 (0) | 2021.01.05 |
파일 읽기, strip, split (0) | 2021.01.05 |