@abstractmethod
: 강제 사용 Method
random
: 난수 발생 모듈
time
: 시간 관련 모듈
class Book:
def __init__(self, name, price, isbn):
self.bookName = name
self.bookPrice = price
self.bookIsbn = isbn
class BookRepository:
def __init__(self):
self.bDic = {}
def registBook(self, b):
self.bDic[b.bookIsbn] = 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.bookName}, {b.bookPrice}, {b.bookIsbn}')
def printBookInfo(self, isbn):
if isbn in self.bDic:
b = self.bDic[isbn]
print(f'{b.bookName}, {b.bookPrice}, {b.bookIsbn}')
else:
print('Lookup result does not exist.')
try ~ except ~ finally
구분import bank
koreaBank = bank.Bank()
new_account_name = input('통장 개설을 위한 예금주 입력: ')
myAccount = bank.PrivateBank(koreaBank, new_account_name)
myAccount.printBankInfo()
while True:
selectNumber = int(input('1. 입금 \t 2. 출금 \t 3. 종료'))
if selectNumber == 1:
money = int(input('입금액 입력: '))
koreaBank.doDeposit((myAccount.account_no, money))
myAccount.printBankInfo()
elif selectNumber == 2:
money = int(input('출금액 입력: '))
try:
koreaBank.doWithdraw(myAccount.account_no, money)
except bank.LackException as e:
print(e)
finally:
myAccount.printBankInfo()
elif selectNumber == 3:
print('Bye~')
break
else:
print('잘못 선택했습니다. 다시 선택하세요')
'r'
: 읽기 'w'
: 쓰기 'a'
: 덮어쓰기'w'
는 초기화하며 작성되나, 'a'
는 이전내용에 이어 작성url = '/pythonEx/project/PythonTxt/'
ship1 = 3 ; ship2 = 4 ; ship3 = 5
maxDay = 0
for i in range(1, (ship1 + 1)):
if ship1 % i == 0 and ship2 % i == 0:
maxDay = i
minDay = (ship1 * ship2) // maxDay
newDay = minDay
for i in range(1, (newDay + i)):
if newDay % i == 0 and ship3 % i == 0:
maxDay = i
minDay = (newDay * ship3) // maxDay
print(f'minDay: {minDay}')
print(f'maxDay: {maxDay}')
from datetime import datetime
from datetime import timedelta
n = 1
baseTime = datetime(2023, 1, 1, 10, 0, 0)
with open(url + 'shipAlive.txt', 'a') as f:
f.write(f'2023년 모든 선박 입항일\n')
f.write(f'{baseTime}\n')
nextTime = baseTime + timedelta(days = minDay)
while True:
with open(url + 'shipAlive.txt', 'a') as f:
f.write(f'{nextTime}\n')
nextTime += timedelta(days = minDay)
if nextTime.year >= 2024:
break