티스토리 뷰
과제4
- '수정하기' 기능 추가
- 수정할 단어를 선택하세요 : apple
- 선택한 단어가 없습니다
- apple의 뜻을 입력하세요 : 사과
- apple의 레벨을 입력하세요 : 1
- 수정되었습니다.
- '삭제하기' 기능 추가
- 삭제할 단어를 선택하세요 : apple
- 선택한 단어가 없습니다.
- 삭제되었습니다.
- 불러오기 메뉴 변경
- 메뉴 4번을 삭제
- 프로그램 시작시 기존에 단어장 파일이 존재하는지 확인하고,
- 존재하면 그 파일에 있는 데이터를 메모리에 불러옴 (없으면 스킵)
# 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 modifyWord(self):
msg = input('수정할 단어 : ')
for i in self.wordList:
if msg == i.eng:
i.setKor(input(f'{msg}의 새로운 뜻 입력 : '))
i.setLev(input(f'{msg}의 새로운 레벨 입력 : '))
print('수정되었습니다.\n')
else:
print('선택한 단어가 없습니다.\n')
# 2-5) 단어 삭제하기
def delWord(self):
msg = input('삭제할 단어 : ')
for i in self.wordList:
if msg == i.eng:
self.wordList.remove(i)
print(f'{msg}이(가) 삭제되었습니다.\n')
# 다른 방법
for i in range(len(self.wordList)):
if msg == self.wordList[i].eng:
del self.wordList[i]
print('삭제되었습니다.\n')
else:
print('선택한 단어가 없습니다.\n')
# 3. 실행 클래스
class Menu:
def __init__(self):
self.service = func()
def run(self):
# 실행시 words.txt 파일 존재여부 확인 후 불러옴
print('파일 불러오기 시도')
try:
f = open('words.txt', 'r')
content = f.read()
print(content)
except FileNotFoundError:
print('파일이 존재하지 않습니다')
while True:
try:
num = int(input('1.입력, 2.출력, 3.저장, 4.수정, 5.삭제 6.종료 -> '))
except Exception as e:
print(e)
print('1~6 숫자를 입력해주세요.\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.modifyWord()
elif num == 5:
self.service.delWord()
elif num == 6:
print('종료하겠습니다.')
break
else:
print('1~6 숫자를 입력해주세요.\n')
'Python' 카테고리의 다른 글
28. 파이썬과 MySQL 연동 (0) | 2024.03.28 |
---|---|
27. (과제5) 디렉토리 정리 프로그램 활용 (1) | 2024.03.25 |
25. 디렉토리 관련 프로그램 (0) | 2024.03.22 |
24. 파이썬의 파일 입출력 라이브러리 (1) | 2024.03.22 |
23. 파이썬의 변수 타입 어노테이션 (2) | 2024.03.22 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 출력
- Python
- MySQLdb
- 솔로의식탁
- CSS
- animation적용
- trasform
- 셋
- 로또번호생성
- 폼
- 절대위치
- JavaScript
- 클래스문
- EPL정보프로그램
- FOR
- DB프로그램만들기
- MySQL
- DB단어장
- html이론
- HTML
- 고정위치
- 닷홈
- 상대위치
- __call__
- 파이썬SQL연동
- 박스사이징
- Enclosing
- 줄 간격
- 변수
- 리스트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함