59doit
[Python] Let's python 6장 예제 본문
반응형
Q1)
멤버변수 : 가로(width) 세로(height)
멤버변수 초기화
메서드(area_clac) : 사각형 넓이 함수 / 넓이 = 가로*세로
메서드(circum_clac) : 사각형 둘레 함수 / 둘레 = (가로+세로)*2
print("사각형의 넓이와 둘레를 계산합니다.")
w = int(input('사각형의 가로 입력 : '))
h = int(input('사각형의 세로 입력 : '))
class calculate :
wid=hei=0
def __init__(self,wid,hei) :
self.wid = wid
self.hei = hei
def area_clac (self) :
area = self.wid * self.hei
return area
def circum_clac(self):
circum = (self.wid + self.hei) *2
return circum
cal=calculate(w,h)
print('-'*40)
area=cal.area_clac()
print('사각형의 넓이 :',area)
circum=cal.circum_clac()
print('사각형의 둘레:',circum)
print('-'*40)
Q2)
산포도 구하는 클래스 정의
from statistics import mean
from math import sqrt
x = [5,9,1,7,4,6]
class Scattering:
def __init__(self,x):
self.x = x
def var_func(self):
avg = mean(self.x)
diff = [ (d - avg) ** 2 for d in self.x]
self.var = sum(diff) / (len(self.x) - 1)
return self.var
def std_func(self):
sd = sqrt(self.var)
return sd
Scat=Scattering(x)
var2=Scat.var_func() # 메서드 불러오기
print("분산 :",var2) # <출력> 분산 : 7.466666666666666
sd=Scat.std_func() # 메서드 불러오기
print("표준편차 :",sd) # <출력> 표준편차 : 2.7325202042558927
Q3)
Person 클래스 정의
name = input('이름:')
age = int(input('나이:'))
gender = input('성별(male/female : ')
class Person :
def __init__(self,name,gender,age):
self.name=name
self.gender=gender
self.age=age
print("=" * 30)
def display(self):
if self.gender == "female" :
print("이름 : {}, 성별 : {}\n나이 : {}".format(self.name,"여자",self.age))
else :
print("이름 : {}, 성별 : {}\n나이 : {}".format(self.name, "남자", self.age))
print("=" * 30)
p=Person(name,gender,age) #객체멤버
p.display()
Q4)
Employee 클래스를 상속받아서 Permanent와 Temporary클래스 구현
class Employee :
name = None
pay = 0
def __init__(self,name):
self.name=name
class Permanent(Employee) :
def __init__(self,name):
super().__init__(name)
def pay_calc(self,base,bonus):
self.pay = base + bonus
print('=' * 30)
print('고용형태 : 정규직')
print('이름 :',self.name)
print('급여 : ',format(self.pay,',d'),'원')
class Temporary(Employee) :
def __init__(self,name):
super().__init__(name)
def pay_calc(self,tpay,time):
self.pay =tpay*time
print('=' * 30)
print('고용형태 : 임시직')
print('이름 :', self.name)
print('총 수령액 : ',format(self.pay,',d'),'원')
empType = input('고용형태 선택(정규직<P>, 임시직<T>) : ')
if empType == 'P' or empType =='p' :
name = input('이름 :')
base = int(input('기본금 :'))
bonus = int(input('상여금 :'))
p= Permanent(name)
p.pay_calc(base,bonus)
elif empType == 'T' or empType == 't':
name = input('이름 :')
time = int(input('작업시간 :'))
tpay = int(input('시급 :'))
t = Temporary(name)
t.pay_calc(tpay, time)
else :
print('=' * 30)
print('입력 오류')
Q5)
사칙연산 관련 패키지와 모듈 작성, 다른 모듈에서 import 결과를 확인
- myCalcpackage 폴더를 생성하고 calcModule파일을 생성한다
- [ from myCalcpackage.calcModule import Add,Sub,Mul,Div ] from~import 사용하여 모듈을 import 한다.
from myCalcpackage.calcModule import Add,Sub,Mul,Div
x=10
y=5
print('Add =',Add(x,y))
print('Sub =',Sub(x,y))
print('Mul =',Mul(x,y))
print('Div =',Div(x,y))
# <출력>
# Add = 15
# Sub = 5
# Mul = 50
# Div = 2.0
반응형
'Q.' 카테고리의 다른 글
[Python] Let's python 7장 예제 (0) | 2022.11.04 |
---|---|
[Python] 예제 평가(2) (0) | 2022.11.03 |
[Python]class def 예제 (0) | 2022.11.02 |
[Python] Let's python 5장 예제 (0) | 2022.11.02 |
[Python] Let's python 4장 예제 (0) | 2022.11.01 |
Comments