๐ก ์์ด ๊ณ์ฐ ๋ชจ๋์ ๋ง๋ค๊ณ ๋ค์ ์์ด ๊ณ์ฐ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅ
# permultation ํ์ผ
def getPermulatationCnt(n,r,logPrint = True):
result = 1
for n in range(n,n-r,-1):
if logPrint == True: print('n : {}'.format(n)) # โ
โ
โ
result = result * n
return result
from itertools import permutations
def gerPermultation(ns,r):
pList = list(permutations(ns,r))
print(f'{len(ns)}P{r} ๊ฐ์ : {len(pList)}')
for n in permutations(ns,r):
print(n, end=',')
# ์์ด ๊ณ์ฐ ๋ชจ๋์ ๋ง๋ค๊ณ ๋ค์ ์์ด ๊ณ์ฐ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅ
import permultation as pt
#n = int(input('numN ์
๋ ฅ : '))
#r = int(input('numR ์
๋ ฅ : '))
#print(f'{n}P{r} : {pt.getPermulatationCnt(n,r,logPrint=False)}')
listVar = {1,2,3,4,5,6,7,8}
rVar = 3
pt.gerPermultation(listVar, rVar)
๐ก ์กฐํฉ ๊ณ์ฐ ๋ชจ๋์ ๋ง๋ค๊ณ ๋ค์ ์กฐํฉ ๊ณ์ฐ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅ
# combination ํ์ผ
def getCombination(n,r, logPrint = True):
resultP = 1
resultR = 1
resultC = 1
for i in range(n, n-r,-1):
resultP = resultP * i
if logPrint : print(f'resultP : {resultP}')
for i in range(r, 0,-1):
resultR = resultR * i
if logPrint: print(f'resultR : {resultR}')
resultC = int(resultP / resultR)
if logPrint : print(f'result : {resultC}')
return resultC
from itertools import combinations
def printCombinations(ns,r): #๋ฆฌ์คํธ๋ก ๋ฐ์์ผ ํจ(?)
cList = list(combinations(ns,r))
print(f'{len(ns)}C{r} : {len(cList)}')
for i in combinations(ns,r):
print(i, end=',')
# ์กฐํฉ ๊ณ์ฐ ๋ชจ๋์ ๋ง๋ค๊ณ ๋ค์ ์กฐํฉ ๊ณ์ฐ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅ
import combination as ct
numN = int(input('numN ์
๋ ฅ : '))
numR = int(input('numR ์
๋ ฅ : '))
#ct.getCombination(numN, numR)
print(f'{numN}C{numR} : {ct.getCombination(numN,numR, logPrint=False)}')
listVar = {1,2,3,4,5,6,7,8}
rVar = 3
ct.printCombinations(listVar, rVar)
๐ก ์์ ๊ณผ ๊ณต๊ณผ๊ธ์ ์ ๋ ฅํ๋ฉด ๊ณต๊ณผ๊ธ ์ด์ก๊ณผ ์์ ๋๋น ๊ณต๊ณผ๊ธ ๋น์จ์ ๊ณ์ฐํ๋ ๋ชจ๋์ ์์ฑ
# utilitybill ํ์ผ
income = 0
waterPrice = 0; electricPrice = 0; gasPrice = 0
def setIncome(ic):
global income # โ
์ ์ธ ํ ๊ฐ์ ํ ๋นํด์ผ ํจ!
income = ic
def getIncome():
return income
def setWaterPrice(wp):
global waterPrice
waterPrice = wp
def getWaterPrice():
return waterPrice
def setElectricPrice(ep):
global electricPrice
electricPrice = ep
def getElectricPrice():
return electricPrice
def setGasPrice(gp):
global gasPrice
gasPrice = gp
def getGasPrice():
return gasPrice
def getUtilityBill():
result = waterPrice + electricPrice + gasPrice
return result
def getUtilityRate():
result = (getUtilityBill() / getIncome()) * 100
return result
def getFormated(num):
return format(num,',')
# ์์
๊ณผ ๊ณต๊ณผ๊ธ์ ์
๋ ฅํ๋ฉด ๊ณต๊ณผ๊ธ ์ด์ก๊ณผ ์์
๋๋น ๊ณต๊ณผ๊ธ ๋น์จ์ ๊ณ์ฐํ๋ ๋ชจ๋์ ์์ฑ
import utilitybill as ub
inputIncome = int(input('์์
์
๋ ฅ : '))
ub.setIncome(inputIncome)
inputWaterPrice = int(input('์๋์๊ธ ์
๋ ฅ : '))
ub.setWaterPrice(inputWaterPrice)
inputEletricPrice = int(input('์ ๊ธฐ์๊ธ ์
๋ ฅ : '))
ub.setElectricPrice(inputEletricPrice)
inputGasPrice = int(input('๊ฐ์ค์๊ธ ์
๋ ฅ : '))
ub.setGasPrice(inputGasPrice)
print(f'๊ณต๊ณผ๊ธ : {ub.getFormated(ub.getUtilityBill())}')
print('์์
๋๋น ๊ณต๊ณผ๊ธ ๋น์จ : {} %'.format(ub.getUtilityRate()))
๋ค์๊ณผ ๊ฐ์ด ํจํค์ง์ ๋ชจ๋์ ๋ง๋ค๊ณ ์ฐ์ฐ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅ
# basic_operator ํ์ผ
def add(num1, num2):
print(f'{num1} + {num2} = {num1 + num2}')
return num1 + num2
def sub(num1, num2):
print(f'{num1} - {num2} = {num1 - num2}')
return num1 - num2
def mul(num1, num2):
print(f'{num1} * {num2} = {round(num1 * num2,2)}')
return num1 * num2
def div(num1, num2):
print(f'{num1} / {num2} = {round(num1 / num2,2)}')
return num1 / num2
def calculator(num1,num2):
add(num1,num2)
sub(num1,num2)
mul(num1,num2)
div(num1,num2)
# developer_operator ํ์ผ
def mod(num1, num2):
print(f'{num1} % {num2} = {round(num1 % num2,2)}')
return num1 % num2
def flo(num1, num2):
print(f'{num1} // {num2} = {round(num1 // num2,2)}')
return num1 // num2
def exp(num1, num2):
print(f'{num1} ** {num2} = {round(num1 ** num2,2)}')
return num1 ** num2
def calculator(num1,num2):
mod(num1,num2)
flo(num1,num2)
exp(num1,num2)
# triangle_square_area ํ์ผ
def calculatorTriangleSquareArea(num1,num2):
triangle = num1 * num2 / 2
square = num1 * num2
print('์ผ๊ฐํ ๋์ด : {}' .format(round(triangle,1)))
print('์ฌ๊ฐํ ๋์ด : {}'.format(round(square, 1)))
return [triangle,square]
# circle_area ํ์ผ
def calculatorCircleArea(num):
print(f'์์ ๋์ด : {num*num*3.14}')
return num * num * 3.14
# ๋ค์๊ณผ ๊ฐ์ด ํจํค์ง์ ๋ชจ๋์ ๋ง๋ค๊ณ ์ฐ์ฐ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅ
import arithmetic.basic_operator as bo
import arithmetic.developer_operator as do
import shape.triangle_square_area as tsa
import shape.circle_area as ca
number1 = float(input('์ซ์1 ์
๋ ฅ : '))
number2 = float(input('์ซ์2 ์
๋ ฅ : '))
bo.calculator(number1,number2)
do.calculator(number1,number2)
width = float(input('์ซ์1 ์
๋ ฅ : '))
height = float(input('์ซ์1 ์
๋ ฅ : '))
tsa.calculatorTriangleSquareArea(width,height)
radius = float(input('๋ฐ์ง๋ฆ ์
๋ ฅ : '))
ca.calculatorCircleArea(radius)
๐ก ํ์๊ฐ์ ํด๋์ค์ ํ์์ ๋ณด๋ฅผ ๊ด๋ฆฌํ๋ ํด๋์ค๋ฅผ ๋ง๋ค๊ณ ํ์๊ฐ์ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ ๊ตฌํ
# member ํ์ผ
class Member:
def __init__(self, id, pw):
self.id = id
self.pw = pw
class MemberResitory:
def __init__(self):
self.members = {}
def addMember(self, m):
self.members[m.id] = m.pw # member์์ ์ ์ธํ ๊ฒ๊ณผ ๋์ผํด์ผ ํ๋ค
def loginMember(self, id, pw):
isMember = id in self.members
if isMember and self.members[id] == pw:
print('{id} : Log-in success!!')
else:
print('{id} : Log-in fail!!')
def removeMember(self, id, pw):
del self.members[id]
def printMembers(self):
for mk in self.members.keys():
print(f'ID : {mk}')
print(f'PW : {self.members[mk]}')
# ์ค๊ธ - practice ํด๋์ค 01
# ํ์๊ฐ์
ํด๋์ค์ ํ์์ ๋ณด๋ฅผ ๊ด๋ฆฌํ๋ ํด๋์ค๋ฅผ ๋ง๋ค๊ณ ํ์๊ฐ์
๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ ๊ตฌํ
import member as mb
mems = mb.MemberResitory()
for i in range(3):
mId = input('์์ด๋ ์
๋ ฅ : ')
mPw = input('๋น๋ฐ๋ฒํธ ์
๋ ฅ : ')
mem = mb.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')
๐ก TVํด๋์ค๋ฅผ ๋ค์๊ณผ ๊ฐ์ ์์ ๊ตฌ์กฐ๋ก ๋ง๋ค๊ณ ๊ฐ์ฒด๋ฅผ ์์ฑ
# smartTv ํ์ผ
class NormalTv:
def __init__(self, inch = 32, color = 'black', resolution = 'full-HD'):
self.inch = inch
self.color = color
self.resolution = resolution
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,inch, color,resolution = '4K' ):
super().__init__(inch,color,resolution)
def setSmartTv(self,s):
self.smartTv = s
class Tv8K(NormalTv):
def __init__(self, inch, color, resolution = '8K'):
super().__init__(inch,color,resolution)
def setSmartTv(self,s):
self.smartTv = s
def setAiTv(self,s):
self.aiTv = s
# TVํด๋์ค๋ฅผ ๋ค์๊ณผ ๊ฐ์ ์์ ๊ตฌ์กฐ๋ก ๋ง๋ค๊ณ ๊ฐ์ฒด๋ฅผ ์์ฑ
import smartTv
my4kTv = smartTv.Tv4K(65,'silver','4k')
my4kTv.setSmartTv('on')
my4kTv.turnOn()
my4kTv.printTvInfo()
my4kTv.turnOff()
friendTv = my4kTv = smartTv.Tv4K(55,'white','4k')
friendTv.setSmartTv('off')
friendTv.turnOn()
friendTv.printTvInfo()
friendTv.turnOff()
my8KTv = smartTv.Tv8K(75,'black','8k')
my8KTv.setSmartTv('on')
my8KTv.setAiTv('on')
my8KTv.turnOn()
my8KTv.printTvInfo()
my8KTv.turnOff()
my8KTv = smartTv.Tv8K(86,'red','8k')
my8KTv.setSmartTv('on')
my8KTv.setAiTv('off')
my8KTv.turnOn()
my8KTv.printTvInfo()
my8KTv.turnOff()
๐ก ๋ค์ ๋ช ์ธ์๋ฅผ ์ฐธ๊ณ ํด์ ๋์ ๊ด๋ฆฌ ํ๋ก๊ทธ๋จ์ ์์ฑ
# book ํ์ผ
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 regisBook(self,book):
self.bDic[book.bisbn] = book
def removeBook(self,isbn):
del self.bDic[isbn]
def printBooksInfo(self):
for i in self.bDic.keys():
b = self.bDic[i]
print(f'์ฑ
์ด๋ฆ : {b.bname}')
print(f'๊ฐ๊ฒฉ ์ด๋ฆ : {b.bprice}')
print(f'isbn ์ด๋ฆ : {b.bisbn}')
def printBookInfo(self,isbn):
if isbn in self.bDic:
b = self.bDic[isbn]
print(f'์ฑ
์ด๋ฆ : {b.bname}')
print(f'๊ฐ๊ฒฉ ์ด๋ฆ : {b.bprice}')
print(f'isbn ์ด๋ฆ : {b.bisbn}')
else:
print('lookup result does not exist')
# ๋ค์ ๋ช
์ธ์๋ฅผ ์ฐธ๊ณ ํด์ ๋์ ๊ด๋ฆฌ ํ๋ก๊ทธ๋จ์ ์์ฑ
import book
myBookRepository = book.BookRepository()
book1 = book.Book('python',20000,'123456')
myBookRepository.regisBook(book1)
myBookRepository.regisBook(book.Book('java',25000,'987456'))
myBookRepository.regisBook(book.Book('c++',30000,'942154'))
print()
myBookRepository.printBooksInfo()
myBookRepository.removeBook('123456')
print()
myBookRepository.printBooksInfo()
print()
myBookRepository.printBookInfo('987456')
๋ค์ ์ถ์ ํด๋์ค๋ฅผ ์ด์ฉํด์ ํ/์, ํ/์ผ ์ฌ์ ํด๋์ค๋ฅผ ์์ฑ
# ADictionary ํ์ผ
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 KorToJpa(AbsDictionary):
def __init__(self):
super().__init__() # โ
def registWord(self, w1, w2):
print(f'[KorToJpa] registWord() : {w1} to {w2}')
self.wordDic[w1] = w2
def removeWord(self, w1):
print(f'[KorToJpa] removeWord() : {w1}')
del self.wordDic[w1]
def updateWord(self, w1, w2):
print(f'[KorToJpa] updateWord() : {w1} to {w2}')
self.wordDic[w1] = w2
def searchWord(self, w1):
print(f'[KorToJpa] registWord() : {w1}')
return self.wordDic[w1]
def printWords(self):
for k in self.wordDic.keys():
print(f'{k} : {self.wordDic[k]}')
# ๋ค์ ์ถ์ ํด๋์ค๋ฅผ ์ด์ฉํด์ ํ/์, ํ/์ผ ์ฌ์ ํด๋์ค๋ฅผ ์์ฑ
import ADictionary as dic
kTe = dic.KorToEng()
kTe.registWord('์ฑ
','book')
kTe.registWord('๋๋น','butterfly')
kTe.registWord('์ฐํ','pencil')
kTe.registWord('ํ์','student')
kTe.registWord('์ ์๋','teacher')
kTe.printWords()
kTe.updateWord('์ฑ
','Book')
kTe.printWords()
print(f'์ฑ
: {kTe.searchWord("์ฑ
")}')
print(f'๋๋น : {kTe.searchWord("๋๋น")}')
print(f'์ ์๋ : {kTe.searchWord("์ ์๋")}')
kTe.removeWord('์ฑ
')
kTe.printWords()
๐ก ์ฃผ์ฌ์ ๊ฒ์ ํด๋์ค๋ฅผ ๋ง๋ค๊ณ ์ปดํจํฐ์ ์ฌ์ฉ์์ ๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅ
# Dice ํ์ผ
import random as rd
class Dice:
def __init__(self):
self.cNum = 0
self.uNum = 0
def setCnum(self):
print('[Dice] setCnum()')
self.cNum = rd.randint(1,6)
def setUnum(self):
print('[Dice] setUnum()')
self.uNum = rd.randint(1, 6)
def startGame(self):
print('[Dice] startGame()')
self.setCnum()
self.setUnum()
def printResult(self):
print('[Dice] printResult()')
if self.cNum == 0 or self.uNum == 0:
print('์ฃผ์ฌ์ ์ซ์ ์ค์ ์ ์
๋๋ค.')
else:
if self.cNum > self.uNum:
print(f'์ปดํจํฐ vs ์ ์ : {self.cNum} vs {self.uNum} >> ์ปดํจํฐ ์น!')
if self.cNum < self.uNum:
print(f'์ปดํจํฐ vs ์ ์ : {self.cNum} vs {self.uNum} >> ์ ์ ์น!')
if self.cNum == self.uNum:
print(f'์ปดํจํฐ vs ์ ์ : {self.cNum} vs {self.uNum} >> ๋ฌด์น๋ถ!')์ฝ๋๋ฅผ ์
๋ ฅํ์ธ์
# ์ฃผ์ฌ์ ๊ฒ์ ํด๋์ค๋ฅผ ๋ง๋ค๊ณ ์ปดํจํฐ์ ์ฌ์ฉ์์ ๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅ
import Dice
dc = Dice.Dice()
dc.startGame()
dc.printResult()
๐ก ์๋์ฐจ ๊ฒฝ์ฃผ ๊ฒ์ ํด๋์ค๋ฅผ ๋ง๋ค์ด ๋ณด์. ์๋์ฐจ๋ ๋๋คํ๊ฒ ์ด๋ํ๋ฉฐ, ํธ์์ 10์ด ๋์ ์ฃผํํ๋ค๊ณ ํ ๋ ๊ฐ์ฅ ๋ฉ๋ฆฌ ์ด๋ํ ์๋์ฐจ๊ฐ ์ฐ์นํ๋ ๊ฒ์์ด๋ค
# car ํ์ผ
import random
class Car:
def __init__(self, n='fire car', c = 'red', s = 200):
self.name = n
self.color = c
self.max_speed = s
self.distance = 0
def printCarInfo(self):
print(f'name : {self.name}, color : {self.color}, max_speed : {self.max_speed}')
def controlSpeed(self):
return random.randint(0, self.max_speed)
def getDistanceForHour(self): # ํ์๊ฐ ๋์ ์ด๋ํ ๊ฑฐ๋ฆฌ
return self.controlSpeed()*1
# racing ํ์ผ
from time import sleep
class CarRacing:
def __init__(self):
self.cars = []
self.rankings = []
def addCar(self,c):
self.cars.append(c)
def startRacing(self):
for i in range(10):
print(f'Racing : {i+1}๋ฐํด')
for car in self.cars:
car.distance += car.getDistanceForHour()
sleep(1) # 1์ด ๋์ ์ ์ ์ผ
self.printCurrentCarDistance()
def printCurrentCarDistance(self):
for car in self.cars:
print(f'{car.name} : {car.distance}\t\t', end='')
print()
# ์๋์ฐจ ๊ฒฝ์ฃผ ๊ฒ์ ํด๋์ค๋ฅผ ๋ง๋ค์ด ๋ณด์. ์๋์ฐจ๋ ๋๋คํ๊ฒ ์ด๋ํ๋ฉฐ,
# ํธ์์ 10์ด ๋์ ์ฃผํํ๋ค๊ณ ํ ๋ ๊ฐ์ฅ ๋ฉ๋ฆฌ ์ด๋ํ ์๋์ฐจ๊ฐ ์ฐ์นํ๋ ๊ฒ์์ด๋ค
from car_games import racing as rc
from car_games import car
myCarGame = rc.CarRacing()
car1 = car.Car('car01','white',250)
car2 = car.Car('car02','black',200)
car3 = car.Car('car03','yellow',220)
car4 = car.Car('car04','red',280)
car5 = car.Car('car05','blue',150)
myCarGame.addCar(car1)
myCarGame.addCar(car2)
myCarGame.addCar(car3)
myCarGame.addCar(car4)
myCarGame.addCar(car5)
myCarGame.startRacing()
๐ก ๋ค์๊ณผ ๊ฐ์ด mp3 ํ๋ ์ด์ด ํด๋์ค๋ฅผ ๋ง๋ค๊ณ ๋ ธ๋ ๋ฑ๋ก ํ ์ฌ์
# mp3player ํ์ผ
from time import sleep
import random
class Song:
def __init__(self, t, s, pt):
self.title = t
self.singer = s
self.play_time = pt
def printSongInfo(self):
print(f'์ ๋ชฉ : {self.title}, ๊ฐ์ : {self.singer}, ์ฌ์์๊ฐ : {self.play_time}')
class Player:
def __init__(self):
self.songList = []
self.isLoop = False
def addSong(self, s):
self.songList.append(s)
def play(self):
if self.isLoop:
while self.isLoop:
for song in self.songList:
print(f'title : {song.title}, singer : {song.singer}, play time : {song.play_time}')
sleep(song.play_time)
else:
for song in self.songList:
print(f'title : {song.title}, singer : {song.singer}, play time : {song.play_time}')
sleep(song.play_time)
def shuffle(self):
random.shuffle(self.songList)
def setIsLoop(self, flag):
self.isLoop = flag
# ๋ค์๊ณผ ๊ฐ์ด mp3 ํ๋ ์ด์ด ํด๋์ค๋ฅผ ๋ง๋ค๊ณ ๋
ธ๋ ๋ฑ๋ก ํ ์ฌ์
import mp3player as mp3
song1 = mp3.Song('์ ํธ๋ฑ','์ด๋ฌด์ง',3)
song2 = mp3.Song('Permission','๋ฐฉํ์๋
๋จ',4)
song3 = mp3.Song('Butter','๋ฐฉํ์๋
๋จ',2)
song4 = mp3.Song('Weekend','ํ์ฐ',5)
song5 = mp3.Song('์ข์์ข์','์กฐ์ ์',4)
player = mp3.Player()
player.addSong(song1)
player.addSong(song2)
player.addSong(song3)
player.addSong(song4)
player.addSong(song5)
player.setIsLoop(False)
player.shuffle()
player.play()
๐ก ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ์ซ์๋ฅผ ์ด์ฉํด์ ์ฐ์ ์ฐ์ฐ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ ๋ชจ๋์ ๋ง๋ค๋, ์์ํ๋ ์์ธ์ ๋ํ ์์ธ์ฒ๋ฆฌ ์ฝ๋๋ฅผ ์์ฑ
# calculator ํ์ผ
def add(n1,n2) :
print('๋ง์
์ฐ์ฐ')
try:
n1 = float(n1)
except:
print('์ฒซ ๋ฒ์งธ ํผ์ฐ์ฐ์๋ ์ซ์๊ฐ ์๋๋๋ค.')
return # โ
try:
n2 = float(n2)
except:
print('๋ ๋ฒ์งธ ํผ์ฐ์ฐ์๋ ์ซ์๊ฐ ์๋๋๋ค.')
return
result = n1 + n2
print(f'{n1} + {n2} = {result}')
def sub(n1,n2) :
print('๋บ์
์ฐ์ฐ')
try:
n1 = float(n1)
except:
print('์ฒซ ๋ฒ์งธ ํผ์ฐ์ฐ์๋ ์ซ์๊ฐ ์๋๋๋ค.')
return # โ
try:
n2 = float(n2)
except:
print('๋ ๋ฒ์งธ ํผ์ฐ์ฐ์๋ ์ซ์๊ฐ ์๋๋๋ค.')
result = n1 - n2
print(f'{n1} - {n2} = {result}')
def mul(n1,n2) :
print('๊ณฑ์
์ฐ์ฐ')
try:
n1 = float(n1)
except:
print('์ฒซ ๋ฒ์งธ ํผ์ฐ์ฐ์๋ ์ซ์๊ฐ ์๋๋๋ค.')
return # โ
try:
n2 = float(n2)
except:
print('๋ ๋ฒ์งธ ํผ์ฐ์ฐ์๋ ์ซ์๊ฐ ์๋๋๋ค.')
result = n1 * n2
print(f'{n1} * {n2} = {result}')
def div(n1,n2) :
print('๋๋์
์ฐ์ฐ')
try:
n1 = float(n1)
except:
print('์ฒซ ๋ฒ์งธ ํผ์ฐ์ฐ์๋ ์ซ์๊ฐ ์๋๋๋ค.')
return # โ
try:
n2 = float(n2)
except:
print('๋ ๋ฒ์งธ ํผ์ฐ์ฐ์๋ ์ซ์๊ฐ ์๋๋๋ค.')
# if n2 == 0:
# print(f'{n2}์ผ๋ก ๋๋ ์ ์์ต๋๋ค.')
# return # โ
try:
result = round(n1 / n2,1)
print(f'{n1} / {n2} = {result}')
except ZeroDivisionError as e:
print(e)
print(f'{n2}์ผ๋ก ๋๋ ์ ์์ต๋๋ค.')
def mod(n1,n2) :
print('๋๋จธ์ง ์ฐ์ฐ')
try:
n1 = float(n1)
except:
print('์ฒซ ๋ฒ์งธ ํผ์ฐ์ฐ์๋ ์ซ์๊ฐ ์๋๋๋ค.')
return # โ
try:
n2 = float(n2)
except:
print('๋ ๋ฒ์งธ ํผ์ฐ์ฐ์๋ ์ซ์๊ฐ ์๋๋๋ค.')
# if n2 == 0:
# print(f'{n2}์ผ๋ก ๋๋ ์ ์์ต๋๋ค.')
# return # โ
try:
result = round(n1 % n2, 1)
print(f'{n1} % {n2} = {result}')
except ZeroDivisionError as e:
print(e)
print(f'{n2}์ผ๋ก ๋๋ ์ ์์ต๋๋ค.')
def flo(n1,n2) :
print('๋ชซ ์ฐ์ฐ')
try:
n1 = float(n1)
except:
print('์ฒซ ๋ฒ์งธ ํผ์ฐ์ฐ์๋ ์ซ์๊ฐ ์๋๋๋ค.')
return # โ
try:
n2 = float(n2)
except:
print('๋ ๋ฒ์งธ ํผ์ฐ์ฐ์๋ ์ซ์๊ฐ ์๋๋๋ค.')
# if n2 == 0:
# print(f'{n2}์ผ๋ก ๋๋ ์ ์์ต๋๋ค.')
# return # โ
try:
result = round(n1 // n2, 1)
print(f'{n1} // {n2} = {result}')
except ZeroDivisionError as e:
print(e)
print(f'{n2}์ผ๋ก ๋๋ ์ ์์ต๋๋ค.')
def exp(n1,n2) :
print('๊ฑฐ๋ญ์ ๊ณฑ ์ฐ์ฐ')
try:
n1 = float(n1)
except:
print('์ฒซ ๋ฒ์งธ ํผ์ฐ์ฐ์๋ ์ซ์๊ฐ ์๋๋๋ค.')
return # โ
try:
n2 = float(n2)
except:
print('๋ ๋ฒ์งธ ํผ์ฐ์ฐ์๋ ์ซ์๊ฐ ์๋๋๋ค.')
result = n1 ** n2
print(f'{n1} ** {n2} = {result}')
# ์ฌ์ฉ์๊ฐ ์
๋ ฅํ ์ซ์๋ฅผ ์ด์ฉํด์ ์ฐ์ ์ฐ์ฐ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ ๋ชจ๋์ ๋ง๋ค๋, ์์ํ๋ ์์ธ์ ๋ํ ์์ธ์ฒ๋ฆฌ ์ฝ๋๋ฅผ ์์ฑ
import calculator as cc
num1 = input('์ฒซ ๋ฒ์งธ ํผ์ฐ์ฐ์ ์
๋ ฅ : ')
num2 = input('๋ ๋ฒ์งธ ํผ์ฐ์ฐ์ ์
๋ ฅ : ')
cc.add(num1,num2)
cc.sub(num1, num2)
cc.mul(num1, num2)
cc.div(num1, num2)
cc.mod(num1, num2)
cc.flo(num1, num2)
cc.exp(num1, num2)
๐ก 1๋ถํฐ 1000๊น์ง์ ์์์ธ ๋์ 10๊ฐ๋ฅผ ์์ฑํ๋, ์์๊ฐ ์๋๋ฉด ์ฌ์ฉ์ ์์ธ๊ฐ ๋ฐ์ํ๋๋ก ํ๋ก๊ทธ๋จ์ ์์ฑ
# prime_module ํ์ผ
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)
# 1๋ถํฐ 1000๊น์ง์ ์์์ธ ๋์ 10๊ฐ๋ฅผ ์์ฑํ๋, ์์๊ฐ ์๋๋ฉด ์ฌ์ฉ์ ์์ธ๊ฐ ๋ฐ์ํ๋๋ก ํ๋ก๊ทธ๋จ์ ์์ฑ
import random
import prime_module as pm
primeNumbers = []
n = 0
while n < 10:
rn = random.randint(2, 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(f'PrimeNumbers : {primeNumbers}')
์ํ ๊ตฌ๋งค์ ๋ฐ๋ฅธ โ์ด ๊ตฌ๋งค ๊ธ์กโ์ ์ถ๋ ฅํ๋, ๋ค์๊ณผ ๊ฐ์ด ๊ฐ์๊ฐ ์ ๋ชป ์ ๋ ฅ๋ ๊ฒฝ์ฐ ๋ณ๋๋ก ์ถ๋ ฅํ๋๋ก ํ๋ก๊ทธ๋จ ์์ฑ
# calculationPurchase ํ์ผ
g1Price = 1200; g2Price = 1000; g3Price = 800;
g4Price = 2000; g5Price = 900
class invalidLiteralError(Exception):
def __init__(self,str):
super().__init__(f'invalid literal for int() with base 10 : {str}')
def calculator(*gcs):
gcdDic = {}
againCntInput = {}
for idx, gc in enumerate(gcs):
try:
gcdDic[f'g{idx+1}'] = int(gc)
except Exception as e:
againCntInput[f'g{idx+1}'] = gc
print(e)
totalPrice = 0
for g in gcdDic.keys():
totalPrice += gcdDic[g] * globals()[f'{g}Price'] # โ
โ
โ
โ
โ
globals() : ์ ์ญ๋ณ์ ๋ฐํ
print('-'*30)
print(f'์ด ๊ตฌ๋งค ๊ธ์ก : {format(totalPrice,",")} ์')
print('-' * 10,'๋ฏธ๊ฒฐ์ ํญ๋ชฉ','-'*10)
for g in againCntInput.keys():
print(f'์ํ : {g}\t\t ๊ตฌ๋งค ๊ฐ์ : {againCntInput[g]}')
print('-' * 30)
# ์ํ ๊ตฌ๋งค์ ๋ฐ๋ฅธ โ์ด ๊ตฌ๋งค ๊ธ์กโ์ ์ถ๋ ฅํ๋, ๋ค์๊ณผ ๊ฐ์ด ๊ฐ์๊ฐ ์ ๋ชป ์
๋ ฅ๋ ๊ฒฝ์ฐ
# ๋ณ๋๋ก ์ถ๋ ฅํ๋๋ก ํ๋ก๊ทธ๋จ ์์ฑ
import calculationPurchase as cp
g1Cnt = input('good1 ๊ตฌ๋งค ๊ฐ์ : ')
g2Cnt = input('good1 ๊ตฌ๋งค ๊ฐ์ : ')
g3Cnt = input('good1 ๊ตฌ๋งค ๊ฐ์ : ')
g4Cnt = input('good1 ๊ตฌ๋งค ๊ฐ์ : ')
g5Cnt = input('good1 ๊ตฌ๋งค ๊ฐ์ : ')
cp.calculator(g1Cnt,g2Cnt,g3Cnt,g4Cnt,g5Cnt)
๐ก ์ํ ๊ตฌ๋งค์ ๋ฐ๋ฅธ โ์ด ๊ตฌ๋งค ๊ธ์กโ์ ์ถ๋ ฅํ๋, ๋ค์๊ณผ ๊ฐ์ด ๊ฐ์๊ฐ ์ ๋ชป ์ ๋ ฅ๋ ๊ฒฝ์ฐ ๋ณ๋๋ก ์ถ๋ ฅํ๋๋ก ํ๋ก๊ทธ๋จ ์์ฑ
# mem ํ์ผ
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')
if m == '':
raise emptyDataException('mail')
if p == '':
raise emptyDataException('password')
if a == '':
raise emptyDataException('address')
if ph == '':
raise emptyDataException('phone')
class RegistMember():
def __init__(self,n,m,p,a,ph):
self.m_name = n
self.m_email = m
self.m_pw = p
self.m_addr = a
self.m_phone = ph
print('Membership completed!')
def printMemberInfo(self):
print(f'm_name : {self.m_name}')
print(f'm_email : {self.m_email}')
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_address = input('์ฃผ์ ์
๋ ฅ : ')
m_phone = input('์ฐ๋ฝ์ฒ ์
๋ ฅ : ')
try:
mem.checkInputData(m_name,m_mail,m_pw,m_address,m_phone)
newMember = mem.RegistMember(m_name,m_mail,m_pw,m_address,m_phone)
newMember.printMemberInfo()
except mem.emptyDataException as e:
print(e)
๋ค์๊ณผ ๊ฐ์ ์ํ ๊ณ์ข ๊ณ์ค ๋ฐ ์ /์ถ๊ธ ํ๋ก๊ทธ๋จ์ ์์ฑ
# bank ํ์ผ
import random
class PrivateBank:
def __init__(self,bank,account_name):
self.bank = bank
self.account_name = account_name
while True:
newAccount = random.randint(10000,99999)
if bank.isAccount(newAccount) :
continue
else:
self.account_no = newAccount
break
self.totalMoney = 0
bank.addAccount(self)
def printBankInfo(self):
print('-'*40)
print(f'account_name : {self.account_name}')
print(f'account_no : {self.account_no}')
print(f'totalMoney : {self.totalMoney}')
class Bank:
def __init__(self):
self.accounts = {}
def addAccount(self,privateBank):
self.accounts[privateBank.account_no] = privateBank
def isAccount(self,account_no):
return account_no in self.accounts
def doDeposit(self,account_no, m):
pb = self.accounts[account_no]
pb.totalMoney = pb.totalMoney + m
def doWithdraw(self, account_no, m):
pb = self.accounts[account_no]
if pb.totalMoney - m < 0:
raise LackException(pb.totalMoney, m)
pb.totalMoney = pb.totalMoney - m
class LackException(Exception):
def __init__(self, m1, m2):
super().__init__(f'์๊ณ ๋ถ์กฑ!!, ์์ก : {m1}, ์ถ๊ธ์ก : {m2}')
# ๋ค์๊ณผ ๊ฐ์ ์ํ ๊ณ์ข ๊ณ์ค ๋ฐ ์
/์ถ๊ธ ํ๋ก๊ทธ๋จ์ ์์ฑ
import bank
koreaBank = bank.Bank()
name_account_name = input('ํต์ฅ ๊ณ์ค์ ์ํ ์๊ธ์ฃผ ์
๋ ฅ : ')
myAccount = bank.PrivateBank(koreaBank,name_account_name)
myAccount.printBankInfo()
while True:
selectNumber = int(input('1. ์
๊ธ, \t2. ์ถ๊ธ, \t3. ์ข
๋ฃ : '))
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)
# myAccount.printBankInfo()
except bank.LackException as e:
print(e)
finally:
myAccount.printBankInfo()
elif selectNumber == 3:
print('bye~')
break
else:
print('์๋ชป ์
๋ ฅํ์ต๋๋ค. ๋ค์ ์ ํํ์ธ์.')
๐ก ํ์ ๊ณ์ ๋ณ ํ ์คํธ ํ์ผ์ ์์ฑํ ํ ํ์ ๋ณธ์ธ ํ์ผ์ โํ ์ค ์ผ๊ธฐโ๋ฅผ ์ฐ๊ณ ์ฝ๋ ํ๋ก๊ทธ๋จ์ ์์ฑ
# diary ํ์ผ
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
dates = []
with open(filePath,'r') as f:
dates = f.readlines()
return dates
# ํ์ ๊ณ์ ๋ณ ํ
์คํธ ํ์ผ์ ์์ฑํ ํ ํ์ ๋ณธ์ธ ํ์ผ์ โํ ์ค ์ผ๊ธฐโ๋ฅผ ์ฐ๊ณ ์ฝ๋ ํ๋ก๊ทธ๋จ์ ์์ฑ
import diary
members = {}
url = 'C:/Users/ํ์ด์ฌ ์ค๊ธ pythontxt/' # ๊ฒฝ๋ก ์์ ํ์
def printMembers():
for member in members.keys():
print(f'ID : {member}\t PW : {members[member]}')
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(url,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(url,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',lt)
return st
while True:
selectNumber = int(input('1. ์
๊ธ, \t2. ์ถ๊ธ, \t3. ์ข
๋ฃ : '))
if selectNumber == 1:
money = int(input('์
๊ธ์ก ์
๋ ฅ : '))
with open('C:/Users/ํ์ด์ฌ ์ค๊ธ pythontxt/bank/money.txt','r') as f: # ๊ฒฝ๋ก์์ ํ์
m = f.read()
with open('C:/Users/ํ์ด์ฌ ์ค๊ธ pythontxt/bank/money.txt','w') as f: #๋ฎ์ด์ฐ๊ธฐ # ๊ฒฝ๋ก์์ ํ์
f.write(str(int(m)+ money))
memo = input('์
๊ธ ๋ด์ญ ์
๋ ฅ : ')
with open('C:/Users/ํ์ด์ฌ ์ค๊ธ 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 selectNumber == 2:
money = int(input('์ถ๊ธ์ก ์
๋ ฅ : '))
with open('C:/Users/ํ์ด์ฌ ์ค๊ธ pythontxt/bank/money.txt', 'r') as f: # ๊ฒฝ๋ก ์์ ํ์
m = f.read()
with open('C:/Users/ํ์ด์ฌ ์ค๊ธ pythontxt/bank/money.txt', 'w') as f: # ๋ฎ์ด์ฐ๊ธฐ # ๊ฒฝ๋ก ์์ ํ์
f.write(str(int(m) - money))
memo = input('์ถ๊ธ ๋ด์ญ ์
๋ ฅ : ')
with open('C:/Users/ํ์ด์ฌ ์ค๊ธ 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 selectNumber == 3:
print('bye~')
break
else:
print('๋ค์ ์
๋ ฅํ์ธ์!')
๐ก ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ์ซ์์ ์ฝ์๋ฅผ ํ ์คํธ ํ์ผ์ ๊ธฐ๋ก
# ์ฌ์ฉ์๊ฐ ์
๋ ฅํ ์ซ์์ ์ฝ์๋ฅผ ํ
์คํธ ํ์ผ์ ๊ธฐ๋ก
# def divisor(num):
# list = []
# for n in range(1, num+1):
# if num % n == 0:
# list.append(n)
# return list
#
#
# number = int(input('0๋ณด๋ค ํฐ ์ ์ ์
๋ ฅ : '))
#
# if number > 0:
# divList = divisor(number)
# with open('C:/Users/ํ์ด์ฌ ์ค๊ธ pythontxt/divisor.txt','a') as f: #๊ฒฝ๋ก ์์ ํ์
# f.write(f'{number}์ ์ฝ์ : {divList} \n')
# print('divisor write complete!')
#
# else:
# print('0๋ณด๋ค ํฐ ์ ์๋ฅผ ๋ค์ ์
๋ ฅํด์ฃผ์ธ์')
inputNumber = int(input('0๋ณด๋ค ํฐ ์ ์ ์
๋ ฅ : '))
divisor = []
for number in range(1, (inputNumber + 1)):
if inputNumber % number == 0:
divisor.append(number)
if len(divisor) > 0:
try:
with open('C:/Users/ํ์ด์ฌ ์ค๊ธ pythontxt/divisor2.txt', 'a') as f: #๊ฒฝ๋ก ์์ ํ์
f.write(f'{inputNumber}์ ์ฝ์ : {divisor}\n')
except Exception as e:
print(e)
else:
print('divisor write complete!')
๐ก ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ์ซ์๊น์ง์ ์์๋ฅผ ํ ์คํธ ํ์ผ์ ๊ธฐ๋ก
# ์ฌ์ฉ์๊ฐ ์
๋ ฅํ ์ซ์๊น์ง์ ์์๋ฅผ ํ
์คํธ ํ์ผ์ ๊ธฐ๋ก
# def primeNumber(num):
# list = []
# for n in range(2,num+1):
# flag = True
# for i in range(2, n):
# if n % i == 0:
# flag = False
# break
# if flag :
# list.append(n)
# return list
#
# number = int(input('0๋ณด๋ค ํฐ ์ ์ ์
๋ ฅ : '))
#
# if number > 0:
# primeList = primeNumber(number)
# with open('C:/Users/ํ์ด์ฌ ์ค๊ธ pythontxt/primeNumber.txt','a') as f: #๊ฒฝ๋ก ์์ ํ์
# f.write(f'{number}์ ์์ : {primeList} \n')
# print('prime write complete!')
# else :
# print('0๋ณด๋ค ํฐ ์ ์๋ฅผ ๋ค์ ์
๋ ฅํด์ฃผ์ธ์')
inputNumber = int(input('0๋ณด๋ค ํฐ ์ ์ ์
๋ ฅ : '))
prime = []
for number in range(2, inputNumber + 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:/Users/ํ์ด์ฌ ์ค๊ธ pythontxt/prime2.txt', 'a') as f: #๊ฒฝ๋ก ์์ ํ์
f.write(f'{inputNumber}์ ์์ : {prime}\n')
except Exception as e:
print(e)
else:
print('prime write complete!')
๋ ๊ฐ์ ์๋ฅผ ์ ๋ ฅํ๋ฉด ๊ณต์ฝ์๋ฅผ ํ ์คํธ ํ์ผ์ ์์ฑ
# ๋ ๊ฐ์ ์๋ฅผ ์
๋ ฅํ๋ฉด ๊ณต์ฝ์๋ฅผ ํ
์คํธ ํ์ผ์ ์์ฑ
# inputNumber1 = int(input('1๋ณด๋ค ํฐ ์ ์ ์
๋ ฅ : '))
# inputNumber2 = int(input('1๋ณด๋ค ํฐ ์ ์ ์
๋ ฅ : '))
#
# commonDivisor = []
#
#
# if inputNumber1 == inputNumber2:
# print(' ๊ฐ์ ๋ค์ ์
๋ ฅํด์ฃผ์ธ์')
# elif inputNumber1 < inputNumber2:
# for num in range(1, inputNumber1):
# if inputNumber1 % num == 0 and inputNumber2 % num == 0:
# commonDivisor.append(num)
# else:
# for num in range(1, inputNumber2):
# if inputNumber1 % num == 0 and inputNumber2 % num == 0:
# commonDivisor.append(num)
#
# if len(commonDivisor) > 0:
# try:
# with open('C:/Users/ํ์ด์ฌ ์ค๊ธ pythontxt/commonDivisor.txt','a') as f: # ๊ฒฝ๋ก ์์ ํ์
# f.write(f'{inputNumber1}์ {inputNumber2}์ ๊ณต์ฝ์ : {commonDivisor} \n')
# except Exception as e:
# print(e)
# else:
# print('common factor write complete!')
inputNumber1 = int(input('1๋ณด๋ค ํฐ ์ ์ ์
๋ ฅ : '))
inputNumber2 = int(input('1๋ณด๋ค ํฐ ์ ์ ์
๋ ฅ : '))
common = []
for i in range(1, (inputNumber1) + 1):
if inputNumber1 % i == 0 and inputNumber2 % i == 0:
common.append(i)
if len(common) > 0:
try:
with open('C:/Users/ํ์ด์ฌ ์ค๊ธ pythontxt/commonDivisor2.txt','a') as f: # ๊ฒฝ๋ก ์์ ํ์
f.write(f'{inputNumber1}์ {inputNumber2}์ ๊ณต์ฝ์ : ')
f.write(f'{common} \n')
except Exception as e:
print(e)
else:
print('common factor write complete!')
๋ ๊ฐ์ ์๋ฅผ ์ ๋ ฅํ๋ฉด ์ต๋๊ณต์ฝ์๋ฅผ ํ ์คํธ ํ์ผ์ ์์ฑ
# ๋ ๊ฐ์ ์๋ฅผ ์
๋ ฅํ๋ฉด ์ต๋๊ณต์ฝ์๋ฅผ ํ
์คํธ ํ์ผ์ ์์ฑ
# inputNumber1 = int(input('1๋ณด๋ค ํฐ ์ ์ ์
๋ ฅ : '))
# inputNumber2 = int(input('1๋ณด๋ค ํฐ ์ ์ ์
๋ ฅ : '))
#
# commonDivisor = ''
#
#
# if inputNumber1 == inputNumber2:
# print(' ๊ฐ์ ๋ค์ ์
๋ ฅํด์ฃผ์ธ์')
# elif inputNumber1 < inputNumber2:
# for num in range(1, inputNumber1):
# if inputNumber1 % num == 0 and inputNumber2 % num == 0:
# commonDivisor = num
# else:
# for num in range(1, inputNumber2):
# if inputNumber1 % num == 0 and inputNumber2 % num == 0:
# commonDivisor = num
#
# if commonDivisor != '':
# try:
# with open('C:/Users/์ดํ์/Desktop/์ ๋ก๋ฒ ์ด์ค/ํ์ด์ฌ ์ค๊ธ pythontxt/greatestCommonDivisor.txt','a') as f:
# f.write(f'{inputNumber1}์ {inputNumber2}์ ๊ณต์ฝ์ : {commonDivisor} \n')
# except Exception as e:
# print(e)
# else:
# print('common factor write complete!')
inputNumber1 = int(input('1๋ณด๋ค ํฐ ์ ์ ์
๋ ฅ : '))
inputNumber2 = int(input('1๋ณด๋ค ํฐ ์ ์ ์
๋ ฅ : '))
maxComNum = 0
for i in range(1, (inputNumber1) + 1):
if inputNumber1 % i == 0 and inputNumber2 % i == 0:
maxComNum = i
try:
with open('C:/Users/์ดํ์/Desktop/์ ๋ก๋ฒ ์ด์ค/ํ์ด์ฌ ์ค๊ธ pythontxt/maxComNum2.txt','a') as f:
f.write(f'{inputNumber1}์ {inputNumber2}์ ๊ณต์ฝ์ : ')
f.write(f'{maxComNum} \n')
except Exception as e:
print(e)
else:
print('common factor write complete!')
๐ก ์ฌ๋ง์์ ๊ณผ์ผ, ์์ , ์ผ์ฑ๋ฅผ ํ๋งคํ๋ ๋ฐฐ๊ฐ ๋ค์ ์ฃผ๊ธฐ๋ก ์ ํญํ๋ค๊ณ ํ ๋, ๋ชจ๋ ๋ฐฐ๊ฐ ์ ํญํ๋ ๋ ์ง๋ฅผ ํ ์คํธ ํ์ผ์ ๊ธฐ๋ก (์ฒซ ์ ํญ์ผ์ 2021๋ 1์ 1์ผ ์ค์ 10์๋ก ํ๋ค.)
# ์ฌ๋ง์์ ๊ณผ์ผ, ์์ , ์ผ์ฑ๋ฅผ ํ๋งคํ๋ ๋ฐฐ๊ฐ ๋ค์ ์ฃผ๊ธฐ๋ก ์
ํญํ๋ค๊ณ ํ ๋,
# ๋ชจ๋ ๋ฐฐ๊ฐ ์
ํญํ๋ ๋ ์ง๋ฅผ ํ
์คํธ ํ์ผ์ ๊ธฐ๋กํด๋ณด์.
# (์ฒซ ์
ํญ์ผ์ 2021๋
1์ 1์ผ ์ค์ 10์๋ก ํ๋ค.
import time
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) # datetime() : ๋ ์ง ํ๊ธฐ โ
with open('C:/Users/์ดํ์/Desktop/์ ๋ก๋ฒ ์ด์ค/ํ์ด์ฌ ์ค๊ธ pythontxt/arrive.txt','a') as f:
f.write(f'2021๋
๋ชจ๋ ์ ๋ฐ ์
ํญ์ผ\n')
f.write(f'{baseTime}\n')
nexTime = baseTime + timedelta(days=minDay) # timedelta() : ์๊ฐ์ ๋ํ๊ฑฐ๋ ๋บ ์ ์๋ค(?) โ
while True:
with open('C:/Users/์ดํ์/Desktop/์ ๋ก๋ฒ ์ด์ค/ํ์ด์ฌ ์ค๊ธ pythontxt/arrive.txt','a') as f:
f.write(f'{nexTime}\n')
nexTime = nexTime + timedelta(days=minDay)
if nexTime.year > 2021:
break
๐ป ์ถ์ฒ : ์ ๋ก๋ฒ ์ด์ค ๋ฐ์ดํฐ ์ทจ์ ์ค์ฟจ