에듀테크 프로젝트 대시보드
숫자와 연산자
정수는 자릿수 제한이 없고, 나눗셈 연산자는 세 종류입니다.
big = 2 ** 1000 # 자릿수 제한 없음 (임의정밀도)
million = 1_000_000 # 밑줄로 자릿수 구분 (값에는 영향 없음)
b = 0b1010 # 2진수 => 10
o = 0o17 # 8진수 => 15
h = 0xFF # 16진수 => 255
f = 3.14
sci = 2.5e-3 # 0.0025
inf = float("inf")
nan = float("nan")| 연산자 | 의미 | 예시 (a=7, b=2) |
|---|---|---|
+ - * | 덧셈·뺄셈·곱셈 | 7*2 => 14 |
/ | 참 나눗셈 (항상 float) | 7/2 => 3.5 |
// | 바닥 나눗셈 (내림) | 7//2 => 3, -7//2 => -4 |
% | 나머지 (모듈로) | 7%2 => 1, -7%2 => 1 |
** | 거듭제곱 | 7**2 => 49 |
divmod(a,b) | (몫, 나머지) 튜플 | divmod(7,2) => (3, 1) |
print(10 / 2) # => 5.0 (int가 아니라 float!)
print(10 // 3) # => 3
print(-10 // 3) # => -4 (0이 아니라 음의 무한대 방향으로 내림)
print(10 % 3) # => 1
print(-10 % 3) # => 2 (결과 부호는 나누는 수 b를 따름)
# 항등식: (a // b) * b + (a % b) == a0.1 + 0.2 => 0.30000000000000004 — 이진 부동소수점 오차decimal.Decimal 또는 정수(센트 단위)로math.isclose(a, b)x = 5
x += 3 # x = x + 3 => 8
x *= 2 # => 16
x //= 5 # => 3
x **= 2 # => 9
# 비교는 bool 반환, 체이닝 가능
print(1 < x < 100) # => True
print(3 == 3.0) # => True (값 비교)| 연산자 | 의미 | 예시 |
|---|---|---|
& | AND | 0b1100 & 0b1010 => 0b1000 |
| | OR | 0b1100 | 0b1010 => 0b1110 |
^ | XOR | 0b1100 ^ 0b1010 => 0b0110 |
~ | NOT (보수) | ~5 => -6 |
<< / >> | 왼/오른쪽 시프트 | 1 << 4 => 16 |
flags = 0
READ, WRITE = 1 << 0, 1 << 1
flags |= READ | WRITE # 켜기
print(flags & WRITE) # => 2 (참) — 켜졌는지 확인
flags &= ~WRITE # 끄기print(round(2.5)) # => 2 (은행가 반올림: 짝수로)
print(round(3.5)) # => 4
print(round(3.14159, 2)) # => 3.14
import math
math.floor(3.7) # 3
math.ceil(3.2) # 4
math.sqrt(16) # 4.0
math.gcd(12, 18) # 6
abs(-9) # 9 (내장함수)