[Python] μ°μ°μ
Pythonμμ ν·κ°λ¦΄ μ μλ μ°μ°μλ₯Ό μ΄μ 리ν΄λ³Έλ€.
μ°μ°μλ?
μ°μ°μ(operator)λ νΉμ ν μμ μ νκΈ° μν΄μ μ¬μ©νλ κΈ°νΈλ₯Ό μλ―Ένλ€. μ¦, μ°μ°μλ νΌμ°μ°μμ κ°μ μ‘°μν μ μλ ꡬ쑰μ΄λ€. μλ₯Ό λ€μ΄ ννμ 4 + 5 = 9μμ 4μ 5λ νΌμ°μ°μ, +λ μ°μ°μμ΄λ€.
- μ°μ μ°μ°μ (Artithmetic Operators)
- λΉκ΅ μ°μ°μ (Comparison Operators)
- ν λΉ μ°μ°μ (Assignment Operators)
- λ Όλ¦¬ μ°μ°μ (Logical Operators)
- λΉνΈ μ°μ°μ (Bitwise Operators)
- λ©€λ² μ°μ°μ (Membership Operators)
- μλ³ μ°μ°μ (Identity Operators)
μ°μ μ°μ°μ
1. μ¬μΉμ°μ° + , - , * , /
a + b # λνκΈ°
a – b # λΉΌκΈ°
a * b # κ³±νκΈ°
b / a # λλκΈ°
2. κ±°λμ κ³± **
a ** b # a^b
2 ** 5 # 2^5 => 32
3. λͺ« //κ³Ό λλ¨Έμ§ % μ€μ!βββ (μμ£Ό νλ¦Ό)
a // b # a / bμ λͺ«
a % b # a / bμ λλ¨Έμ§
λΉκ΅ μ°μ°μ
1. μΌμΉ == μ λΆμΌμΉ !=
a == b # aμ bκ° μΌμΉνλ€. κ°λ€.
a != b # aμ bκ° μΌμΉνμ§ μλλ€. κ°μ§ μλ€.
2. λμκ΄κ³ > , < , >= , <=
a > b # aκ° bλ³΄λ€ ν¬λ€.
a < b # aκ° bλ³΄λ€ μλ€.
a >= b # aκ° bλ³΄λ€ ν¬κ±°λ κ°λ€.
a <= b # aκ° bλ³΄λ€ μκ±°λ κ°λ€.
ν λΉ μ°μ°μ
ν λΉ μ°μ°μλ λ³μμ κ°μ ν λΉνκΈ° μνμ¬ μ¬μ©νλ μ°μ°μμ΄λ€. κΈ°λ³Έμ μΌλ‘ = (Equal Sign)μ μ¬μ©νλ€.
1. ν λΉ =
a = 1 # aμ 1μ΄λΌλ μ μλ₯Ό ν λΉνλ€.
print(a) # -> 1
2. μ°μ + ν λΉ = ν λΉμ°μ°μ += , -= , *= , /= , %= , //=, **=
a += b # aμ a+bκ°μ ν λΉνλ€.
a -= b # aμ a-bκ°μ ν λΉνλ€.
a *= b # aμ a*bκ°μ ν λΉνλ€.
a /= b # aμ a/bκ°μ ν λΉνλ€.
a //= b # aμ a//bκ°(λͺ«)μ ν λΉνλ€.
a %= b # aμ a%bκ°(λλ¨Έμ§)μ ν λΉνλ€.
a **= b # aμ a^bκ°μ ν λΉνλ€.
λ Όλ¦¬ μ°μ°μ vs λΉνΈ μ°μ°μ (μμ ν λ€λ¦!)
λ Όλ¦¬ μ°μ° and, or, not
if a == 2 or a == 4: # aκ° 2κ±°λ 4μΌ λ
if a > 4 and a < 8: # aκ° 4λ³΄λ€ ν¬κ³ 8λ³΄λ€ μμ λ
if not True: # μ°Έμ΄ μλ λ,
λΉνΈ μ°μ°μ (μμ ν λ€λ¦!)
bitwise μ°μ° & , | , ~ , ^ , << , >>
- ^ : λ°°νμ or (XOR, exclusive or)
- << : left shift (λΉνΈ μ λ§νΌ μΌμͺ½μΌλ‘ μ΄λ. 1λΉνΈ λ°λλ§λ€ 2λ₯Ό κ³±ν κ²κ³Ό κ°μ ν¨κ³Ό. μ¦, n << m ππ» n * 2^m)
- >> : right shift (λΉνΈ μ λ§νΌ μ€λ₯Έμͺ½μΌλ‘ μ΄λ. 1λΉνΈ λ°λλ§λ€ 2λ‘ λλ κ²κ³Ό κ°μ ν¨κ³Ό. μ¦, n >> m ππ» n / 2^m)
a = 60
b = 13
# μ΄λ₯Ό μ΄μ§λ²μΌλ‘ λνλ΄λ©΄
# a = 0011 1100
# b = 0000 1101
print(a & b) # => 12 (0000 1100)
print(a | b) # => 61 (0011 1101)
print(a ^ b) # => 49 (0011 0001) (λ°°νμ or)(λ κ°μ΄ λͺ¨λ 1μ΄κ±°λ λͺ¨λ 0μ΄λ©΄ κ²°κ³Όκ° 0, λ κ° μ€ νλλ§ 1μ΄λ©΄ κ²°κ³Όκ° 1)
print(~a) # => -61 (1100 0011)(~ μ°μ° κ²°κ³Όλ μλ μμ λ§μ΄λμ€ κΈ°νΈλ₯Ό λΆμΈ λ€ 1μ λΊ κ°κ³Ό κ°λ€.)
print(a << 2) # => 240 (1111 0000)
print(a >> 2) # => 15 (0000 1111)
βμ£Όμ! λ Όλ¦¬ μ°μ°μ vs λΉνΈ μ°μ°μ (μμ ν λ€λ¦!)
: and μ &, orκ³Ό|, notκ³Ό ~
# and vs &
print(8 and 10) # => 10 (0μ μ μΈν λͺ¨λ μ«μλ Trueμ΄λ―λ‘, 8 and 10 μ 8μ΄ Trueμ΄κ³ 10μ΄ λ°ν)
print(8 & 10) # => 8 (8 & 10 μ μ΄μ§μλ‘ νν -> 1000 & 1010. μ΄ κ²°κ³Όλ 1000μ΄ λλ―λ‘ 8μ΄ λ°ν)
# or vs |
print(8 or 10) # =>8 (8μ΄ Trueμ΄λ―λ‘ 8μ΄ λ°νλ¨)
print(8 | 10) # =>10 (μ΄μ§μλ‘ νννλ©΄ 1000 βͺ 1010 μ΄κ³ , μ΄ κ²°κ³Όλ 1010μ΄ λλ―λ‘ 10μ΄ λ°ν)
# not vs ~
print(not 7) # => False
print(not 0) # => True
print(~7) # => ~7 (~7(2) = ~0111μ΄κ³ , ~λ 0μ 1, 1μ 0μ΄ λλ―λ‘ μ΄μ§λ² 1000, μμ§λ²μΌλ‘ -8μ΄ λ¨)
print(~0) # => -1 (보μ)
λ©€λ² μ°μ°μ
λ¬Έμ κ·Έλλ‘, μ’μΈ‘ νΌμ°μ°μκ° μ°μΈ‘ μ½λ μ μ μν΄ μλμ§ μλμ§λ₯Ό 체ν¬νλ μ°μ°μμ΄λ€. Pythonμ λ©€λ²(μ½) μ°μ°μλ λ¬Έμμ΄, 리μ€νΈ λλ ννκ³Ό κ°μ μνμ€ λ©€λ²μμ ν μ€νΈνλλ° μ¬μ©λλ€.
* Pythonμ λ΄μ₯ μνμ€ νμ 5κ°μ§ : λ¬Έμμ΄, νν, 리μ€νΈ, λ°μ΄νΈ λ°°μ΄, λ°μ΄νΈ
- in : x in y ππ» xκ° μνμ€ yμ λ©€λ²μ΄λ©΄ True
- not in : x not in y ππ» xκ° μνμ€ yμ λ©€λ²κ° μλ κ²½μ° True
a = [1, 2, 3, 4]
b = 3 in a
print(b) # => True
μλ³ μ°μ°μ
μλ³ μ°μ°μμλ is, is notμ΄ μλλ°, μ΄λ λ κ°μ²΄μ λ©λͺ¨λ¦¬ μμΉλ₯Ό 체ν¬νλ€.
- is : μ°μ°μμ μμͺ½μ μλ λ³μκ° λμΌν κ°μ²΄λ₯Ό κ°λ¦¬ν€λ κ²½μ° → true
- is not :μ°μ°μμ μμͺ½μ μλ λ³μκ° λμΌν κ°μ²΄λ₯Ό κ°λ¦¬ν€λ κ²½μ° → false
a = "ABC"
b = a
print(a is b) # => True
μ°Έκ³ μ¬μ΄νΈ