클래스 연습문제)
- 복소수 클래스를 정의한다
- 덧셈, 뺄섬, 곱셈 연산자 지원
- 길이 (복소수의 크기) 지원
- 복소수 출력 '1 + 4i'와 같이 표현
- 비교 연산 ==, != 지원
- =, <=, <, > 연산 지원
- 절댓값 지원
import math
class ComplexNumber:
def __init__(self, real, img):
self.real = real
self.img = img
def __add__(self, cn):
return ComplexNumber(self.real + cn.real, self.img + cn.img)
def __sub__(self, cn):
return ComplexNumber(self.real - cn.real, self.img - cn.img)
def __mul__(self, x):
if type(x) == int:
return ComplexNumber(self.real * x, self.img * x)
elif type(x) == ComplexNumber:
return ComplexNumber(self.real * x.real - self.img * x.img, self.real * x.img + self.img * x.real)
# (a + bi) * (c + di) = (ac - bd) + (ad + bc)i
def __str__(self):
if self.img > 0:
return '{} + {}i'.format(self.real, self.img)
else:
return '{} - {}i'.format(self.real, abs(self.img))
def __eq__(self, cn):
return self.real == cn.real and self.img == cn.img
def __ne__(self, cn):
return not (self.real == cn.real and self.img == cn.img)
def __abs__(self):
return math.sqrt(self.real ** 2 + self.img ** 2)
def __len__(self):
return int(math.sqrt(self.real ** 2 + self.img ** 2))
a = ComplexNumber(1, 2)
b = ComplexNumber(3, 5)
print(a)
print(a + b)
print(a - b)
print(a * 3)
print(a * b)
print(a == b)
abs(a)
#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #딥러닝강의
반응형