Python3 Number

Johnywhisky·2021년 7월 17일
0

TIL

목록 보기
3/9
post-thumbnail

파이썬 data type 중 숫자와 관련된 내용들을 정리한 것입니다.

1. Integer

수를 나타내는 첫 type은 int(정수형)이다. 일반적으로 변수 선언 시 타입을 직접 지정하지 않는 파이썬 특성 상 밑의 a와 같이 정수를 선언해주면 자동적으로 int로 인식한다.

a = 97
print(type(a))
# 결과 : <class 'int'>

또 숫자로 이루어진 str type의 data나 다른 진법의 문자열 수를 10진수 정수로 나타낼 때 int를 사용할 수 있다.

b = "098"
int_b = int(b)
print(int_b, type(int_b))
# 결과 : 98 <class 'int'>

c_2 = "11"
int_c = int(c_2, 2) # int(문자열, 밑)
print(int_c)
# 결과 : 3

2. Floating number

부동소수점은 cs공부 시 가장 먼저 접하게 되는 소숫점 밑을 가지는 수를 나타내는 방법이다. 가장 널리 쓰이는 표준 방식이나 소숫점 밑 또한 이진수 분수(binary fraction)로 나타내기 때문에 정확한 수를 표현하기 힘들다는 단점이 있다.

print(0.2 * 3 == 0.6)
# 결과 : False

int와 마찬가지로 소수점 밑을 가지는 문자열 수를 float type으로 바꾸기 위해서는 다음과 같이 나타낼 수 있다.

a = "0.97"
float_a = float(a)
print(a)
# 결과 : 0.97

소수점 밑을 가지는 수가 이론적으로 어떻게 binary code로 저장되는지 아는 것도 중요하겠지만 float type에서 가장 큰 포인트는 바로 이것이다.

가장 널리 쓰이는 표준 방식이나 소숫점 밑 또한 이진수 분수(binary fraction)로 나타내기 때문에 정확한 수를 표현하기 힘들다는 단점이 있다.

그렇기 때문에 unittest나 equality test 시 유효 숫자를 두어 정의 된 정밀도 내에서 테스트를 진행해야 한다.

float class method

ratio = 1.625.as_integer_ratio() # tuple type의 (분자, 분모) 쌍 반환
is_this_int1 = 1.625.is_integer() # True or False boolean 반환
is_this_int2 = 3.0.is_integer())

print(ratio) # 결과 : (13, 8)
print(is_this_int1) # 결과 : False
print(is_this_int2) # 결과 : Trye

3. Complex number

마지막으로 복소수가 있다.

c = 1 - 2j
print(c, type(c))
# 결과 : (1-2j) <class 'complex'>

위 코드와 같이 허수부를 표현할 때 꼭 j를 써줘야한다.
또 int, float과 마찬가지로 실수부와 허수부를 가지는 문자열 수를 복소수 타입으로 변환이 가능하다.

c = "1 - 2j"
complex_c = complex(c)
print(complex_c)
# 결과 : (1-2j)

c2 = complex(1, -2)
print(c2)
# 결과 : (1-2j)

complex class method

z = complex('3-4j')
real_z = z.real # 실수부를 float으로 반환
imag_z = z.imag # 허수부를 float으로 반환
conj_z = z.conjugate() # 켤레 복소수를 반환
print(real_z) # 결과 : 3.0
print(imag_z) # 결과 : -4.0
print(conj_z) # 결과 : (3+4j)
profile
안녕하세요 :) 1년 차 Pythonist 백엔드 개발자 윤서준입니다.

0개의 댓글