- νμ΄μ¬μμλ μ«μλ₯Ό μ μ, μ€μ, 볡μμλ‘ κ΅¬λΆ.
>>> 1 + 1
2
>>> 1 - 2
-1
>>> 2 * 2
4
>>> 5 / 2 # νμ΄μ¬ λ²μ μμλ 2.5κ° μλ 2κ° λμ΄. μ μλΌλ¦¬ λλμ
μ μ μκ° λμ€λλ‘ μ ν¨.
2.5
>>> 4 / 2
2.0
- // λ floor division(λ²λ¦Ό λλμ ) μ΄λΌκ³ λΆλ¦¬λ©°, λλμ μ κ²°κ³Όμμ μμμ μ΄νλ λ²λ¦Ό.
- μ€μμ // μ°μ°μλ₯Ό μ¬μ©ν κ²½μ° μ€μκ° λμ€λ©°, κ²°κ³Όλ νμ .0μΌλ‘ λλ¨.
>>> 5 // 2 # λλμ
ν μμμ μ΄νλ₯Ό λ²λ¦¬λ // μ°μ°μ
2
>>> 5.5 // 2
2.0
- % λ modulo(λͺ¨λλ‘) μ°μ°μλΌκ³ λΆλ¦Ό.
>>> 5 % 2 # λλμ
ν λλ¨Έμ§λ₯Ό ꡬνλ % μ°μ°μ
1
- **μ κ±°λμ κ³± μ°μ°μμ΄λ©°, μ«μλ₯Ό νΉμ νμλ§νΌ κ³±ν¨.
>>> 2 ** 10 # 2μ 10μΉ
1024
| κ°μ μ μλ‘ λ°κΏμ£ΌκΈ°
- intλ μ μ(integer)λ₯Ό λ»νλ©°, κ°μ μ μλ‘ λ§λ€μ΄ μ€. (μμμ μ΄νλ λ²λ¦Ό)
- int(μ«μ)
- int(κ³μ°μ)
- int('λ¬Έμμ΄')
- νΉν intμ λ¬Έμμ΄μ λ£μ΄λ μ μλ‘ λ§λ€ μ μμ. λ¨, μ μλ‘ λ λ¬Έμμ΄μ΄μ¬μΌ ν¨.
κ°μ²΄μ μλ£ν μμλ΄κΈ°
>>> type(10)
<class 'int'>
- typeμ κ°μ²΄μ νμ = μλ£νμ μμλ΄λ ν¨μ
- <class ‘int’>λ μ μ(int) ν΄λμ€λΌλ λ».
- νμ΄μ¬μμλ μ«μ νλλ κ°μ²΄(object)μ΄λ©°, κ°μ²΄λ ν΄λμ€(class)λ‘ νν.
- int(3.3) ππΌ μ€μ 3.3μ int ν΄λμ€λ‘ λ κ°μ²΄λ‘ λ§λ λ€λ λ».
| λͺ«κ³Ό λλ¨Έμ§λ₯Ό ν¨κ» ꡬνκΈ° = divmod ν¨μ
>>> divmod(5, 2)
(2, 1)
- divmodμμλ κ²°κ³Όκ° (2,1)λ‘ λμ΄.
- μ΄λ° ννλ₯Ό νν(tuple)μ΄λΌκ³ νλ©°, κ° μ¬λ¬ κ°λ₯Ό λͺ¨μμ ννν λ μ¬μ©.
>>> quotient, remainder = divmod(5, 2)
>>> print(quotient, remainder)
2 1
- ννμ λ³μ μ¬λ¬ κ°μ μ μ₯ν μ μμ.
- divmodμ κ²°κ³Όκ° ννλ‘ λμ€λ―λ‘ λͺ«κ³Ό λλ¨Έμ§λ λ³μ λ κ°μ μ μ₯ κ°λ₯.
| μ§μ, 8μ§μ, 16μ§μ
>>> 0b110
6
>>> 0o10
8
>>> 0xF
15
- μ μλ 10μ§μ μ΄μΈμλ 2μ§μ, 8μ§μ, 16μ§μλ‘ νν κ°λ₯.
- 2μ§μ : μ«μ μμ 0bλ₯Ό λΆμ΄λ©° 0κ³Ό 1μ μ¬μ©.
- 8μ§μ : μ«μ μμ 0o(μ«μ 0κ³Ό μλ¬Έμ o)μ λΆμ΄λ©° 0λΆν° 7κΉμ§ μ¬μ©.
- 16μ§μ : μ«μ μμ 0x λλ 0Xλ₯Ό λΆμ΄λ©° 0λΆν° 9, AλΆν° FκΉμ§ μ¬μ© (μλ¬Έμ aλΆν° fλ κ°λ₯)
| μ€μ κ°μ μ€μ°¨
>>> 0.1 + 0.2
0.30000000000000004
- νμ΄μ¬μ μ€μλ₯Ό λΆλμμμ λ°©μμΌλ‘ νν. λΆλμμμ μ μ€μλ₯Ό μ νν ννν μ μλ λ¬Έμ .
- 1λΆν° 10κΉμ§μ μ μλ 10κ°μ§λ§ μ€μλ 무νν λ§μ.
- μ»΄ν¨ν°λ μ«μλ₯Ό λΉνΈλ‘ νννλλ° μ€μλ μ νκ°μ λΉνΈλ‘ μ ννκ² ννν μ μμ.
π‘ λΉνΈ(bit)
- μ΄μ§μλ₯Ό λ»νλ ’Binary Digit’μ μ½μ.
- μ»΄ν¨ν°μμ CPUκ° μ²λ¦¬νλ λ°μ΄ν°μ μ΅μ λ¨μ ν¬κΈ°.
- μ»΄ν¨ν°λ 2μ§μ, 0κ³Ό 1λ‘ λͺ¨λ λ°μ΄ν°λ₯Ό μ²λ¦¬νλλ°, 1λΉνΈ 0κ³Ό 1μ, 2λΉνΈλ 00, 01, 10, 11 λ± 4κ°μ λ°μ΄ν°λ₯Ό μ²λ¦¬ν μ μλ€λ μλ―Έ.
- λ°λΌμ μ€μλ μ νκ°μ λΉνΈλ₯Ό μ¬μ©νμ¬ κ·ΌμΏκ°μ νν.
- 0.30000000000000004 λ 0.3μ ννν κ·ΌμΏκ°.
| λ μ€μκ° κ°μμ§ νλ¨νκΈ°
>>> import math, sys
>>> x = 0.1 + 0.2
>>> math.fabs(x - 0.3) <= sys.float_info.epsilon
True
- μ€μλ₯Ό λΉκ΅ν λλ μ°μ°ν κ°κ³Ό λΉκ΅ν κ°μ μ°¨μ΄λ₯Ό ꡬνκ³ , sys.float_info.epsilonλ³΄λ€ μκ±°λ κ°μμ§ νλ¨ν΄μΌ ν¨.
- xμ κ° 0.30000000000000004μμ 0.3μ λΊ κ°μ΄ sys.float_info.epsilonλ³΄λ€ μκ±°λ κ°μΌλ―λ‘ λ κ°μ κ°μ κ°μ΄λΌ ν μ μμ.
- math.fabsμ ν΅ν΄ λ κ°μ μ°¨μ΄λ₯Ό μ λκ°μΌλ‘ λ§λ€λ©΄ μμκ° λμλ μ μμ μΌλ‘ νλ¨ κ°λ₯.
- sys.float_info.epsilonμ μ μ₯λ κ° = λ¨Έμ μ‘μ€λ‘ (machine epsilon)
- μ΄λ€ μ€μλ₯Ό κ°μ₯ κ°κΉμ΄ λΆλμμμ μ€μλ‘ λ°μ¬λ¦Όνμ λ μλ μ€μ°¨λ νμ λ¨Έμ μ‘μ€λ‘ μ΄ν.
- λ¨Έμ μ‘μ€λ‘ μ λ°μ¬λ¦Ό μ€μ°¨μ μνκ°μ΄λ©°, μ°μ°ν κ°κ³Ό λΉκ΅ν κ°μ μ°¨μ΄κ° λ¨Έμ μ‘μ€λ‘ λ³΄λ€ μκ±°λ κ°λ€λ©΄ λ μ€μλ κ°μ κ°.
>>> import math
>>> math.isclose(0.1 + 0.2, 0.3)
True
- νμ΄μ¬ 3.5λΆν°λ λ μ€μκ° κ°μμ§ νλ¨ν λ math.isclose ν¨μ μ¬μ©.
| κ°μ μ€μλ‘ λ§λ€κΈ°
>>> float(5)
5.0
>>> float(1 + 2)
3.0
>>> float('5.3')
5.3
- floatλ λΆλμμμ (floating point)μμ λ°μμΌλ©°, κ°μ μ€μλ‘ λ§λ€μ΄μ€.
>>> type(3.5)
<class 'float'>
| κ΄νΈ μ¬μ©νκΈ°
>>> (35 + 1) * 2
72
- μ°μ°μ μ°μ μμμ λ°λΌ κ΄νΈ λ¬Άμ΄μ£ΌκΈ°.