κ°μΈκ³΅λΆ/Python
50. Python ν΄λμ€, λ°μ΄ν° μ μΆλ ₯ μ°μ΅λ¬Έμ
LEE_BOMB
2021. 11. 11. 23:39
λ¬Έ1) λ€μ μ²λ¦¬μ‘°κ±΄μ λ§κ² Rectangle ν΄λμ€λ₯Ό μ μνμμ€.
<μ²λ¦¬μ‘°κ±΄>
1. λ©€λ² λ³μ : κ°λ‘(width), μΈλ‘(height)
2. μμ±μ : κ°λ‘(width), μΈλ‘(height) λ©€λ² λ³μ μ΄κΈ°ν
3. λ©€λ² λ©μλ(area_calc) : μ¬κ°νμ λμ΄λ₯Ό ꡬνλ λ©μλ.
μ¬κ°ν λμ΄ = κ°λ‘ * μΈλ‘
4. λ©€λ² λ©μλ(circum_calc) : μ¬κ°νμ λλ λ₯Ό ꡬνλ λ©μλ.
μ¬κ°ν λλ = (κ°λ‘ + μΈλ‘) * 2
5. κΈ°ν μΆλ ₯ μμ μ°Έμ‘°
<< μΆλ ₯ μμ >>
μ¬κ°νμ λμ΄μ λλ λ₯Ό κ³μ°ν©λλ€.
μ¬κ°νμ κ°λ‘ μ λ ₯ : 10
μ¬κ°νμ μΈλ‘ μ λ ₯ : 5
----------------------------------------
μ¬κ°νμ λμ΄ : 50
μ¬κ°νμ λλ : 30
----------------------------------------
class Rectangle :
#λ©€λ² λ³μ : μ μλ³μ
width = height = 0
#μμ±μ : κ°μ²΄ μμ± + λ©€λ² λ³μ μ΄κΈ°ν
def __init__(self, w, h) :
self.width = w
self.height = h
#λ©€λ² λ©μλ : λμ΄ κ³μ°
def area_calc(self) :
area = self.width * self.height
return area
#λ©€λ² λ©μλ : λλ κ³μ°
def circum_calc(self) :
circum = (self.width + self.height) * 2
return circum
ν€λ³΄λ μ
λ ₯
print("μ¬κ°νμ λμ΄μ λλ λ₯Ό κ³μ°ν©λλ€.")
w = int(input('μ¬κ°νμ κ°λ‘ μ
λ ₯ : ')) #10
h = int(input('μ¬κ°νμ μΈλ‘ μ
λ ₯ : ')) #5
κ°μ²΄ μμ±
rec = Rectangle(w, h) #μμ±μ -> κ°μ²΄
print('-'*30)
print('μ¬κ°νμ λμ΄ :', rec.area_calc())
print('μ¬κ°νμ λλ :', rec.circum_calc())
print('-'*30)
λ¬Έ2) λ€μκ³Ό κ°μ μΆλ ₯ κ²°κ³Όκ° λνλλλ‘ λμ λ©€λ² λ³μ μμ±μΌλ‘ μ°ν¬λ(Scattering)ν΄λμ€λ₯Ό μμ±νμμ€.
<< μΆλ ₯ κ²°κ³Ό >>
λΆμ° : 7.466666666666666
νμ€νΈμ°¨ : 2.7325202042558927
from statistics import mean
from math import sqrt
x = [5, 9, 1, 7, 4, 6]
class Scattering:
def __init__(self, x): #μμ±μ
self.x = x #λμ λ©€λ² λ³μ μμ±
#λΆμ°κ³Ό νμ€νΈμ°¨ μ : chap06 > step03 μ°Έκ³
def var_func(self): #λΆμ° λ©μλ
# var = sum((x - μ°μ νκ· )**2) / n-1
avg = mean(self.x) #μ°μ νκ·
diff = [(i - avg)**2 for i in self.x] #list λ΄ν¬
#λμ λ©€λ²λ³μ
self.var = sum(diff) / (len(self.x)-1)
return self.var
def std_func(self): #νμ€νΈμ°¨ λ©μλ
sd = sqrt(self.var)
return sd
scatt = Scattering(x) #μμ±μ -> κ°μ²΄ μμ±
var = scatt.var_func() #λΆμ° λ°ν
st = scatt.std_func() #νμ€νΈμ°¨ λ°ν
print('λΆμ° = ', var)
print('νμ€νΈμ°¨ =', st)
λ¬Έ3) μ΄λ¦, μ±λ³, λμ΄λ₯Ό κ°λ Person ν΄λμ€λ₯Ό λ€μκ³Ό κ°μ΄ μμ±νμμ€.
<μ²λ¦¬μ‘°κ±΄>
1. λ©€λ² λ³μ : μ΄λ¦(name), μ±λ³(gender), λμ΄(age)
2. μμ±μ : κ°μ²΄ μμ± + μ΄λ¦, μ±λ³, λμ΄ μ΄κΈ°ν
3. λ©€λ² λ©μλ : display(μ΄λ¦, μ±λ³, λμ΄ μΆλ ₯ κΈ°λ₯)
4. κΈ°ν λλ¨Έμ§λ μΆλ ₯ μμ μ°Έμ‘°
<< μΆλ ₯ μμ >>
μ΄λ¦ μ λ ₯ : μ κ΄μ
λμ΄ μ λ ₯ : 35
μ±λ³(male/female) μ λ ₯ : female
=========================
μ΄λ¦ : μ κ΄μ, μ±λ³ : μ¬μ
λμ΄ : 35
=========================
class Person :
#μμ±μ λ©μλ
def __init__(self, age, name, gender) :
#λμ λ©€λ²λ³μ : μ μλ³μ
self.age = age
self.name = name
self.gender = gender
#λ©€λ² λ©μλ
def display(self) :
print('='*30)
#ν μ€ ifλ¬Έ
self.gender = 'μ¬μ' if self.gender == 'female' else 'λ¨μ'
print('μ΄λ¦ : %s, μ±λ³ : %s'%(self.name, self.gender))
print('λμ΄ : %d'%self.age)
print('='*30)
ν€λ³΄λ μ
λ ₯
name = input('μ΄λ¦ : ')
age = int(input('λμ΄ : '))
gender = input('μ±λ³(male/female) : ')
κ°μ²΄ μμ±κ³Ό λ©μλ νΈμΆ
p = Person(age, name, gender) #μμ±μ μ΄μ© μ μλ³μ μ΄κΈ°ν
p.display()
<κΈμ¬ κ³μ° λ¬Έμ >
λ¬Έ4) Employee ν΄λμ€λ₯Ό μμνμ¬ Permanentμ Temporary ν΄λμ€λ₯Ό μμ±νμμ€.
λΆλͺ¨ν΄λμ€ : μ¬μ(μ κ·μ§, μμμ§)
class Employee :
name = None #μ¬μμ΄λ¦
pay = 0 #κΈμ¬
def __init__(self,name):
self.name = name
μμν΄λμ€ - μ κ·μ§ : pay = κΈ°λ³ΈκΈ + μμ¬κΈ
class Permanent(Employee):
def __init__(self, name, gi, bonus) :
self.name = name
self.pay = gi + bonus #κΈμ¬κ³μ°
μμν΄λμ€ - μμμ§ : pay = μμ
μκ° * μκΈ
class Temporary(Employee):
def __init__(self, name, time, tpay):
self.name = name
self.pay = time * tpay #κΈμ¬κ³μ°
κ°μ²΄ μμ±
p = Permanent('μ κ·μ§', 2500000, 800000)
print('μ κ·μ§ κΈμ¬ : {0:3,d}'.format(p.pay))
t = Temporary('μμμ§', 55, 20000)
print('μμμ§ κΈμ¬ : {0:3,d}'.format(t.pay))