: 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()

#모듈
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()
:도서관리 프로그램
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()
:단어사전
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()