티스토리 뷰
영어 단어장 만들기
[조건]
- 1.등록하기, 2.출력하기, 3.저장하기, 4.불러오기, 5.종료하기
- 1을 선택했을 경우
- 단어를 입력하세요 : apple
- 뜻을 입력하세요 : 사과
- 레벨을 입력하세요 : 1
- 등록되었습니다.
- 2를 선택했을 경우
- apple : 사과 (레벨 1)
- 3을 선택했을 경우
- 저장되었습니다. (파일에 저장, words.txt)
- 4를 선택했을 경우
- 불러왔습니다. (파일에서 읽어옴, words.txt)
- 5를 선택했을 경우
- 프로그램을 종료합니다.
- 1~5외의 숫자를 선택한 경우
- 다시 입력하세요!
- 단, 프로그램은 클래스로 설계
# 1.단어 저장 클래스
class Word:
def __init__(self, eng, kor, lev):
self.eng = eng
self.kor = kor
self.lev = lev
def setEng(self, eng):
self.eng = eng
def setKor(self, kor):
self.kor = kor
def setLev(self, lev):
self.lev =lev
def getEng(self):
return self.eng
def getKor(self):
return self.kor
def getLev(self):
return self.lev
# 2.기능 클래스
class func:
def __init__(self):
self.wordList = []
# 2-1) 단어 입력
def insertWord(self):
eng = input('단어 : ')
kor = input('뜻 : ')
lev = input('레벨 : ')
word = Word(eng, kor, lev)
self.wordList.append(word)
# [Word('apple', '사과', 1), Word('banana', '바나나', 2), Word('orange', '오렌지', 3)]
print('등록되었습니다.\n')
# 2-2) 단어 출력
def printWord(self):
for i in self.wordList:
print(f'{i.getEng()} : {i.getKor()} (레벨 {i.getLev()})')
# Word('apple', '사과', 1).getEng
print()
# 2-3) 단어장으로 저장 (word.txt)
def saveWord(self):
with open('words.txt', 'a') as f:
for i in self.wordList:
f.write(f'{i.getEng()}, {i.getKor()}, {i.getLev()}\n')
print('저장했습니다.\n')
# 2-4) 단어장 불러오기
def loadWord(self):
with open('words.txt', 'r') as f:
while True:
line = f.readline() # 한줄씩 읽어오기
if line: # 데이터가 존재한다면 한줄 읽기
data = line.strip().split(',') # 공백 날리고 쉼표 기준으로 나누기
self.wordList.append(Word(data[0], data[1], data[2]))
else:
break
print('데이터를 불러왔습니다.')
# 3.실행 클래스
class Menu:
def __init__(self):
self.service = func()
def run(self):
while True:
try:
num = int(input('1.입력, 2.출력, 3.저장, 4.호출, 5.종료 -> '))
except Exception as e:
print(e)
print('1~5 숫자를 입력해주세요.\n')
continue
if num == 1:
self.service.insertWord()
elif num == 2:
self.service.printWord()
elif num == 3:
self.service.saveWord()
elif num == 4:
self.service.loadWord()
elif num == 5:
print('종료하겠습니다.')
break
else:
print('1~5 숫자를 입력해주세요.\n')
test = Menu()
test.run()
'Python' 카테고리의 다른 글
24. 파이썬의 파일 입출력 라이브러리 (1) | 2024.03.22 |
---|---|
23. 파이썬의 변수 타입 어노테이션 (2) | 2024.03.22 |
21. 파일 입출력 (0) | 2024.03.21 |
20. 파이썬의 모듈 (0) | 2024.03.21 |
19. (과제3) 주민등록번호 유효성 검사 (0) | 2024.03.21 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 출력
- 줄 간격
- 솔로의식탁
- FOR
- HTML
- __call__
- 변수
- trasform
- 고정위치
- DB단어장
- html이론
- 로또번호생성
- 폼
- EPL정보프로그램
- JavaScript
- 파이썬SQL연동
- 닷홈
- 상대위치
- Python
- Enclosing
- 박스사이징
- DB프로그램만들기
- 클래스문
- MySQL
- 셋
- MySQLdb
- animation적용
- CSS
- 리스트
- 절대위치
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함