티스토리 뷰

영어 단어장 만들기

    [조건]

  • 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()
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
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
글 보관함