본문 바로가기
프로그램/Python 1000제

Python 295제] 두근두근 파이썬(개정판) CHAPTER 9 도전문제 p290 응용

by 건티 2024. 7. 31.
728x90

출처 : 반크_독도2023

 

문제]

두근두근 파이썬(개정판) CHAPTER 9. p290 도전문제를 응용하여 단어장을 만들어 파일관리하는 프로그램으로 작성하시오.

 

참고풀이]

import pickle

english_dict = { }

def Serch_data():
    global english_dict

    while True:
        chk=int(input("\n1. 영한사전\n2. 한영사전\n3. 검색종료\n원하는 번호를 선택하세요 : "))
        if chk==1:
            word = input("\n단어를 입력하시오(종료는 q): ")
            if word == "q": break
            if word in english_dict:
                print (f"{word}를(을) 번역하면 {english_dict[word]}입니다.")
            else:
                print("입력한 단어는 없습니다.\n")
        elif chk==2:
            word = input("\n단어를 입력하시오(종료는 q): ")
            if word == "끝": break
            if word in english_dict.values():
                for key, val in english_dict.items():
                    if word==val:
                        print (key)
                        print (f"{word}를(을) 번역하면 {key}입니다.")
                        break
            else:
                print("입력한 단어는 없습니다.\n")
        else:
            break
    
def Input_data():
    global english_dict

    while True:
        eword=input("\n영단어를 입력하세요(종료는 q): ")
        if eword.lower()=='q':
            break
        hword=input("입력한 영단어를 해석하시오 : ")

        if eword not in english_dict:
            english_dict[eword]=hword
        else:
            print("\n이미 입력된 단어입니다.\n다시 입력하세요...")

def Main_Menu():
    print("\n======= 메 인  메 뉴 =======")
    print("\n1. 처음 단어장을 생성합니다.")
    print("2. 자료 추가")
    print("3. 자료 검색")
    print("0. 작업 종료")
    print("="*28)

def LoadFile():
    global english_dict

    infile=open("EngKor.pic","rb") #단어들을 단어장 파일에서 읽어온다.
    english_dict = pickle.load(infile)
    infile.close()
    
#Main Part    
while True:
    Main_Menu()
    ch=int(input("원하는 번호를 선택하세요 : "))

    if ch==1:
        outfile=open("EngKor.pic","wb") #단어들을 단어장 파일에 저장한다.

        english_dict['one'] = '하나'
        english_dict['two'] = '둘'
        english_dict['three'] = '셋'

        pickle.dump(english_dict, outfile)
        outfile.close()

        print("\n단어장이 생성되었습니다.")
        
    elif ch==2:
        LoadFile() #저장된 파일을 읽어온다.
        Input_data() #단어를 추가한다.

        outfile=open("EngKor.pic","wb") #단어들을 단어장 파일에 저장한다.
        pickle.dump(english_dict, outfile)
        outfile.close()
        
    elif ch==3:
        LoadFile() #저장된 파일을 읽어온다.
        Serch_data() #단어를 검색한다.

    else:
        break
    print()
print("\n수고하셨습니다.")

 

참고풀이 결과]

1) 처음 단어장을 생성하기

 

2) 자료 추가하기

 

3) 자료 검색 및 종료하기

 

 

 

 

 

대한민국의 아름다운 영토, 독도의 여름

 

반응형

댓글