try:
print(f'{n1} / {n2} = {n1 / n2}')
except ZeroDivisionError as e:
print(e)
-> 0으로 나눌 수 없을 때 예외처리
class NotPrimeException(Exception):
def __init__(self, n):
super().__init__(f'{n} is not prime number')
class PrimeException(Exception):
def __init__(self, n):
super().__init__(f'{n} is prime number')
def isPrime(number):
flag = True
for n in range(2, number):
if number % n == 0:
flag = False
break
if flag == False:
raise NotPrimeException(number)
else:
raise PrimeException(number)
import prime_module as pm
import random
primeNumbers = []
n = 0
while n < 10:
rn = random.randint(1, 1000)
if rn not in primeNumbers:
try:
pm.isPrime(rn)
except pm.NotPrimeException as e:
print(e)
continue
except pm.PrimeException as e:
print(e)
primeNumbers.append(rn)
else:
print(f'{rn} is overlap number.')
continue
n += 1
print(primeNumbers)
class EmptyDataException(Exception):
def __init__(self, i):
super().__init__(f'{i} is empty')
def checkInputData(n, m, p, a, ph):
if n == '':
raise EmptyDataException('name')
elif m == '':
raise EmptyDataException('mail')
elif p == '':
raise EmptyDataException('password')
elif a == '':
raise EmptyDataException('address')
elif ph == '':
raise EmptyDataException('phone')
class RegistMember():
def __init__(self, n, m, p, a, ph):
self.m_name = n
self.m_mail = m
self.m_pw = p
self.m_addr = a
self.m_phone = ph
print('Membership complete!!')
def printMemberInfo(self):
print(f'm_name: {self.m_name}')
print(f'm_mail: {self.m_mail}')
print(f'm_pw: {self.m_pw}')
print(f'm_addr: {self.m_addr}')
print(f'm_phone: {self.m_phone}')
import mem
m_name = input('이름 입력: ')
m_mail = input('메일 주소 입력: ')
m_pw = input('비밀번호 입력: ')
m_addr = input('주소 입력: ')
m_phone = input('연락처 입력: ')
try:
mem.checkInputData(m_name, m_mail, m_pw, m_addr, m_phone)
new_member = mem.RegistMember(m_name, m_mail, m_pw, m_addr, m_phone)
new_member.printMemberInfo()
except mem.EmptyDataException as e:
print(e)
import time
def writeDiary(u, f, d):
lt = time.localtime()
timeStr = time.strftime('%Y-%m-%d %I:%M:%S %p', lt)
filePath = u + f
with open(filePath, 'a') as f:
f.write(f'[{timeStr}] {d}\n')
def readDiary(u, f):
filePath = u + f
datas = []
with open(filePath, 'r') as f:
datas = f.readlines()
return datas
import diary
members = {}
uri = 'C:/pythonTxt/'
def printMembers():
for m in members.keys():
print(f'ID: {m} \t PW: {members[m]}')
while True:
selectNum = int(input('1.회원가입 2.한줄일기쓰기 3.일기보기 4.종료 '))
if selectNum == 1:
mId = input('input ID: ')
mPw = input('input PW: ')
members[mId] = mPw
printMembers()
elif selectNum == 2:
mId = input('input ID: ')
mPw = input('input PW: ')
if mId in members and members[mId] == mPw:
print('login success!!')
fileName = 'myDiary_' + mId + '.txt'
data = input('오늘 하루 인상 깊은 일을 기록하세요.')
diary.writeDiary(uri, fileName, data)
else:
print('login fail!!')
printMembers()
elif selectNum == 3:
mId = input('input ID: ')
mPw = input('input PW: ')
if mId in members and members[mId] == mPw:
print('login success!!')
fileName = 'myDiary_' + mId + '.txt'
datas = diary.readDiary(uri, fileName)
for d in datas:
print(d, end='')
else:
print('login fail!!')
printMembers()
elif selectNum == 4:
print('Bye~')
break
import time
def getTime():
lt = time.localtime()
st = time.strftime('%Y-%m-%d %H:%M:%S')
return st
while True:
selectNum = int(input('1.입금, \t 2.출금, \t 3.종료 '))
if selectNum == 1:
money = int(input('입금액 입력: '))
with open('C:/pythonTxt/bank/money.txt', 'r') as f:
m = f.read()
with open('C:/pythonTxt/bank/money.txt', 'w') as f:
f.write(str(int(m) + money))
memo = input('입금 내역 입력: ')
with open('C:/pythonTxt/bank/poketMoneyRegister.txt', 'a') as f:
f.write('--------------------------------------\n')
f.write(f'{getTime()} \n')
f.write(f'[입금] {memo} : {str(money)}원 \n')
f.write(f'[잔액] : {str(int(m) + money)}원 \n')
print('입금 완료!!!')
print(f'기존 잔액: {m}')
print(f'입금 후 잔액: {int(m) + money}')
elif selectNum == 2:
money = int(input('출금액 입력: '))
with open('C:/pythonTxt/bank/money.txt', 'r') as f:
m = f.read()
with open('C:/pythonTxt/bank/money.txt', 'w') as f:
f.write(str(int(m) - money))
memo = input('출금 내역 입력: ')
with open('C:/pythonTxt/bank/poketMoneyRegister.txt', 'a') as f:
f.write('--------------------------------------\n')
f.write(f'{getTime()} \n')
f.write(f'[출금] {memo} : {str(money)}원 \n')
f.write(f'[잔액] : {str(int(m) - money)}원 \n')
print('출금 완료!!!')
print(f'기존 잔액: {m}')
print(f'출금 후 잔액: {int(m) - money}')
elif selectNum == 3:
print('Bye')
break
else:
print('다시 입력하세요.')
inputNum = int(input('0보다 큰 정수 입력: '))
prime = []
for number in range(2, inputNum+1):
flag = True
for n in range(2, number):
if number % n == 0:
flag = False
break
if flag:
prime.append(number)
if len(prime) > 0:
try:
with open('C:/pythonTxt/prime.txt', 'a') as f:
f.write(f'{inputNum}까지의 소수: ')
f.write(f'{prime}\n')
except Exception as e:
print(e)
else:
print('prime write complete!!')
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+1):
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(2021, 1, 1, 10, 0, 0) #년,월,일,시간,분,초 정함
with open('C:/pythonTxt/arrive.txt', 'a') as f:
f.write(f'2021년 모든 선박 입항일\n')
f.write(f'{baseTime}\n')
nextTime = baseTime + timedelta(days=minDay)
while True:
with open('C:/pythonTxt/arrive.txt', 'a') as f:
f.write(f'{nextTime}\n')
nextTime += timedelta(days=minDay)
if nextTime.year > 2021:
break
<제로베이스 데이터 취업 스쿨>