Py 숫자 - sonkoni/Koni-Wiki GitHub Wiki

숫자 계산

숫자 - 정수(int), 실수(float), 복소수(complex)

+   : 덧셈                  += 덧셈 후 할당
-   : 뺄셈                  -= 뺄셈 후 할당
*   : 곱셈                  *= 곱셈 후 할당
/   : 나눗셈                 /= 나눗셈 후 할당
//  : 버림나눗셈              //= 버림나눗셈 후 할당
%   : 정수 나머지             %= 나머지 연산 후 할당
**  : 거듭제곱               **= 거듭제곱 후 할당
@   : 행렬곱셈(numpy)        @= 행렬곱 수행 후 할당

+a  : a에 양수 부호를 붙임
-a  : a에 음수 부호를 붙임

== 자료형 알기 ==
type(값)

== 정수로 ==                == 실수로 ==
int(숫자)                  float(값)
int(계산식)                float(계산식)
int(문자열)                float(문자열)

== 몫과 나머지 함께 ==        == 진수 표현 ==
divmod(값, 값) -> 튜플      0b110 -> 6
                          0o10  -> 8
                          0xF   -> 15

== 입실론 비교 ==
import math, sys
입실론 : sys.float_info.epsilon
절대값 : math.fabs

나눗셈 연산 결과는 항상 실수로 나온다

c와 다르다. c는 연산 결과가 입력값의 형에 맞춰서 나왔다. 그러나 파이썬은 무조건 실수로 나온다.

5 / 2.0  // 정수÷실수 결과: 실수 2.5
5 / 2    // 정수÷정수 결과: 정수 2
5 / 2    # 정수÷정수 결과: 실수 2.5 
5 // 2   # 정수÷정수 버림연산 결과: 정수 2

몫과 나머지를 함께

a = divmod(5, 2)
print(a)   ## (2, 1)

q, r = divmod(5, 2)
print(q)   ## 2
print(r)   ## 1

캐스팅

print(int(3.3))     ## 3 : 소수점이 짤린다.
print(int(5 / 2))   ## 2 : 소수점이 짤린다.
print(int('10'))    ## 문자 10 에서 숫자 10으로 바뀐다

진법 표현

print(0b110)   ## 6
print(0o10)    ## 8
print(0xF)     ## 15

실수 입실론 비교

import math, sys
x = 0.1 + 0.2
isEqual = math.fabs(x - 0.3) <= sys.float_info.epsilon
print(isEqual)  ## True