Python 문풀 05.

yoong·2023년 4월 29일

1. Python

목록 보기
18/21
post-thumbnail

[실습1]

: login 프로그램 만들기

#멤버 모듈 
class Member: #회원한명
    def __init__(self,i,p):
        self.id = i
        self.pw = p

class MemberRepository:

    def __init__(self):
        self.members = {}

    def addMember(self, m):
        self.members[m.id] = m.pw

    def loginMember(self,i,p):
        isMember = i in self.members

        if isMember and self.members[i] == p:
            print(f'{i}: log-in seucess!!')
        else:
            print(f'{i}: log-in fail!!')

    def removeMember(self,i,p):
        del self.members[i]

#전체 회원
    def printMembers(self):
        for mk in self.members.keys():
            print(f'ID: {mk}')
            print(f'PW: {self.members[mk]}')
#실행파일

import loginModule as lm

mems = lm.MemberRepository()

for i in range(3):
    mId = input('아이디 입력: ')
    mPw = input('비밀번호 입력: ')
    mem = lm.Member(mId,mPw)
    mems.addMember(mem)

mems.printMembers()

mems.loginMember('abc@gmail.com','1234')
mems.loginMember('def@gmail.com','5678')
mems.loginMember('ghi@gmail.com','9012')

mems.removeMember('abc@gmail.com','1234')

mems.printMembers()

[실습2]

#모듈
class NormalTv:

    def __init__(self,i=32,c='black',r='full-HD'):
        self.inch = i
        self.color = c
        self.resolution = r
        self.smartTv ='off'
        self.aiTv = 'off'

    def turnOn(self):
        print('TV power on!!!')

    def turnOff(self):
        print('TV power off!!!')

    def printTvInfo(self):
        print(f'inch: {self.inch}inch')
        print(f'color: {self.color}')
        print(f'resolution: {self.resolution}')
        print(f'smartTv: {self.smartTv}')
        print(f'aiTv: {self.aiTv}')


class Tv4k(NormalTv):

    def __init__(self,i,c,r='4k'):
        super().__init__(i,c,r)

    def setSmartTv(self,s):
        self.smartTv = s


class Tv8k(NormalTv):

    def __init__(self, i, c, r='8k'):
        super().__init__(i, c, r)

    def setSmartTv(self, s):
        self.smartTv = s

    def setAiTv(self,a):
        self.aiTv = a
#실행파일
import tvClass as tc

my4kTv = tc.Tv4k('65','silver','4k')
my4kTv.setSmartTv('on')
my4kTv.turnOn()
my4kTv.printTvInfo()
my4kTv.turnOff()


my8kTv = tc.Tv8k('75','black','8k')
my8kTv.setSmartTv('on')
my8kTv.setAiTv('on')
my8kTv.turnOn()
my8kTv.printTvInfo()
my8kTv.turnOff()

[실습3]

:도서관리 프로그램

class Book:

    def __init__(self,name,price,isbn):
        self.bName = name
        self.bPrice = price
        self.bIsbn = isbn


class BookRepository:

    def __init__(self):
        self.bDic = {}

    def registBook(self,b):
        self.bDic[b.bIsbn] = b

    def removeBook(self,isbn):
        del self.bDic[isbn]

    def printBooksInfo(self):
        for isbn in self.bDic.keys():
            b = self.bDic[isbn]
            print(f'{b.bName}, {b.bPrice}, {b.bIsbn}')

    def printBookInfo(self,isbn):
        if isbn in self.bDic:
            b = self.bDic[isbn]
            print(f'{b.bName}, {b.bPrice}, {b.bIsbn}')
        else:
            print('Lookup result : it does not exist')
import libraryModule as lm

#내책
myBookRepository = lm.BookRepository()

myBookRepository.registBook(lm.Book('python',20000,'12345678'))
myBookRepository.registBook(lm.Book('java',25000,'4567'))
myBookRepository.registBook(lm.Book('c++',27000,'8912345'))

myBookRepository.printBooksInfo()
myBookRepository.printBookInfo('12345678')

print()

#친구책
friBookRepository = lm.BookRepository()

friBookRepository.registBook(lm.Book('python',18000,'2222'))
friBookRepository.registBook(lm.Book('java',20000,'1111'))
friBookRepository.registBook(lm.Book('c++',2300,'333'))

friBookRepository.printBooksInfo()
friBookRepository.printBookInfo('12345678')
friBookRepository.removeBook('333')

print()

[실습4]

:단어사전

from abc import ABCMeta
from abc import abstractmethod

class AbsDictionary(metaclass=ABCMeta):

    def __init__(self):
        self.wordDic = {} #저장소

    @abstractmethod
    def registWord(self,w1,w2):
        pass

    @abstractmethod
    def removeWord(self, w1):
        pass

    @abstractmethod
    def updateWord(self, w1, w2):
        pass

    @abstractmethod
    def searchWord(self, w1):
        pass

class KorToEng(AbsDictionary):

    def __init__(self):
        super().__init__()

    def registWord(self,w1,w2):
        print(f'[KorToEng] registWord(): {w1} to {w2}')
        self.wordDic[w1] = w2

    def removeWord(self, w1):
        print(f'[KorToEng] removeWord(): {w1}')
        del self.wordDic[w1]

    def updateWord(self, w1, w2):
        print(f'[KorToEng] updateWord(): {w1} to {w2}')
        self.wordDic[w1] = w2

    def searchWord(self, w1):
        print(f'[KorToEng] searchWord(): {w1}')
        return self.wordDic[w1]

    #모든단어 출력
    def printWords(self):
        for k in self.wordDic.keys():
            print(f'{k}: {self.wordDic[k]}')



class EngToGer(AbsDictionary):

    def __init__(self):
        super().__init__()

    def registWord(self,w1,w2):
        print(f'[EngToGer] registWord(): {w1} to {w2}')
        self.wordDic[w1] = w2

    def removeWord(self, w1):
        print(f'[EngToGer] removeWord(): {w1}')
        del self.wordDic[w1]

    def updateWord(self, w1, w2):
        print(f'[EngToGer] updateWord(): {w1} to {w2}')
        self.wordDic[w1] = w2

    def searchWord(self, w1):
        print(f'[EngToGer] searchWord(): {w1}')
        return self.wordDic[w1]

    #모든단어 출력
    def printWords(self):
        for k in self.wordDic.keys():
            print(f'{k}: {self.wordDic[k]}')
import wordDicModule as dic

kTe = dic.KorToEng()

kTe.registWord('책','bok')
kTe.registWord('나비','butterfly')
kTe.registWord('연필','pencil')
kTe.registWord('학생','student')

kTe.printWords()

#단어 수정
kTe.updateWord('책','book')
kTe.printWords()

#단어 검색
print(f'책: {kTe.searchWord("책")}')
print(f'나비: {kTe.searchWord("나비")}')

#단어 지우기
kTe.removeWord('책')
kTe.printWords()

Reference

  • 이글은 제로베이스 데이터 취업 스쿨의 강의자료 일부를 발췌하여 작성되었음.
profile
데이터와 이미지로 세상을 공부하는 중입니다 :)

0개의 댓글