한양과학기술고등학교

에듀테크 프로젝트 대시보드

숫자와 연산자

int float // % ** bitwise

정수는 자릿수 제한이 없고, 나눗셈 연산자는 세 종류입니다.

1. 정수와 실수 리터럴

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")

2. 산술 연산자

연산자의미예시 (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)

3. 나눗셈의 함정

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) == a
부동소수점 주의
  • 0.1 + 0.2 => 0.30000000000000004 — 이진 부동소수점 오차
  • 돈 계산은 decimal.Decimal 또는 정수(센트 단위)로
  • 근사 비교는 math.isclose(a, b)

4. 비교·복합 대입

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  (값 비교)

5. 비트 연산자

연산자의미예시
&AND0b1100 & 0b1010 => 0b1000
|OR0b1100 | 0b1010 => 0b1110
^XOR0b1100 ^ 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            # 끄기

6. round 와 math

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  (내장함수)
"가독성은 중요하다 (Readability counts)"