본문 바로가기

복소수 자료형

여러분이 파이썬에서 복소수를 사용하여 연산하는 일은 극히 드물 것입니다. 이 챕터는 복소수라는 자료형도 있구나!하고 넘어가셔도 좋습니다. 혹여 사용할 일이 생겼을 때 다시 이 챕터를 펼쳐주세요.

1. 복소수란?

복소수는 실수와 허수의 합으로 표현되는 수입니다. 실수는 우리가 일상에서 흔히 사용하는 숫자, 예를 들어, 1, 2.5, -3 등입니다. 제곱하면 -1이 되는 수를 허수 단위라고 하며, 보통 수학에서는 'i'로 표현하지만 전자공학과 파이썬에서는 'j'로 표현합니다. 예를 들어, 복소수 3 + 4j는 3이 실수 부분이고, 4j가 허수 부분입니다.

파이썬에서 허수 단위는 수학의 'i' 대신 'j'를 사용합니다. 이는 전자공학에서의 관례를 따른 것입니다.

1.1 복소수 타입의 변수 생성

파이썬에서 복소수는 complex 클래스로 표현됩니다. 복소수를 생성하는 방법은 다음과 같습니다.

생성 방법예시설명
리터럴3 + 4jj를 허수 단위로 직접 표기
complex()complex(3, 4)함수로 실수부, 허수부 지정
x = 3 + 4j
print(x)
print(type(x))

앞에 3은 실수 부분, 뒤에 4j는 허수 부분입니다. 이번에는 같은 수를 complex 함수를 사용하여 생성해보겠습니다.

x = complex(3, 4)
print(x)
print(type(x))

1.2 복소수의 사칙연산

파이썬에서 복소수의 기본적인 연산이 가능합니다. 이에는 덧셈, 뺄셈, 곱셈, 나눗셈 등이 포함됩니다.

x = 3 + 4j
y = 1 - 2j

print(x + y)
print(x - y)
print(x * y)
print(x / y)

허수 단위는 제곱하면 -1이 된다고 하였으니 직접 곱해봅시다.

x = 1j
print(x * x)
print(type(x * x))

출력된 값은 (-1+0j)입니다. 허수부가 0이 되었을 뿐 타입은 여전히 complex입니다. 값이 -1이 되었다고 해서 자동으로 실수형으로 돌아오지는 않는다는 점을 주의해주세요.

x = 3 + 4j
y = 2

print(type(x + y))
print(type(x - y))
print(type(x / y))
# 정수와 복소수의 // 나눗셈은 지원하지 않습니다.
# print(type(x // y))
print(type(x * y))

복소수와 실수의 사칙연산 결과는 모두 복소수입니다.

2. 속성

복소수는 실수부와 허수부에 접근할 수 있는 속성을 제공합니다.

속성설명반환 타입
.real실수 부분float
.imag허수 부분float

2.1 real

복소수의 실수 부분을 반환합니다.

x = 3 + 4j
print(x.real) # 출력 : 3.0

2.2 imag

복소수의 허수 부분을 반환합니다.

x = 3 + 4j
print(x.imag) # 출력 : 4.0

3. 복소수의 사용

복소수는 공학, 물리학, 수학 등 다양한 분야에서 사용됩니다. 예를 들어, 전기공학에서는 회로의 분석에 복소수가 사용되고, 수학에서는 복소수 평면을 사용하여 다양한 문제를 해결합니다. 다만 일반적인 프로그래머는 이 자료형을 자주 접하진 않습니다.