10αα
‘αα
΅_αα
¨αα
¬αα
₯α
α
΅_αα
ͺαα
¦_αα
‘αΈαα
‘α«.pdf
0.19MB
10αα
‘αα
΅_αα
‘αΌαα
΄αα
‘α«_αα
¨αα
¬αα
₯α
α
΅.pdf
10.15MB
10αα
‘αα
΅_αα
¨αα
¬αα
₯α
α
΅_αα
ͺαα
¦.pdf
4.12MB
#1. μμΈ μ²λ¦¬
μμΈμ κ°λ κ³Ό μ¬λ‘
- μμΈ μ²λ¦¬(exception handling)
- μ€μ νλ‘κ·Έλ¨ λ§λ€κΈ° μν΄ μμμΌ ν¨
- μμΈ
- νλ‘κ·Έλ¨ κ°λ°νλ©΄μ μμνμ§ λͺ»ν μν©μ΄ λ°μνλ κ²
- λνμ μΈ μ¬λ‘
- μ¬μ©μμ μ λ ₯ μ€λ₯
- μμ
- μΉμ¬μ΄νΈμ μλ‘ κ°μ μ μν΄ μμ΄λ μμ±
- μΌλ°μ μΌλ‘ μμ΄λ → μλμ, μ«μ
- νκΈ μ λ ₯ μλ
- λ¬Έμ μμ΄ νκΈμ΄ μ μ₯λλ©΄ μ¬μ©μκ° μμΉ« λ‘κ·ΈμΈ λͺ» ν μλ μμ
- λλ€λ₯Έ μ¬λ‘
- Ms μ€νΌμ€μ μλ μ μ₯ κΈ°λ₯
- μμ μ€ μ μ λ±μ μ΄μ λ‘ κ°μκΈ° μ’ λ£λμ λλ₯Ό λλΉ → μμ μ€κ°μ μλμΌλ‘ μ μ₯
μμΈ‘ κ°λ₯ν μμΈμ μμΈ‘ λΆκ°λ₯ν μμΈ
- μμ μ’
λ₯ λ κ°μ§
- μμΈ‘ κ°λ₯ν μμΈ
- μμΈ‘ λΆκ°λ₯ν μμΈ
- μμΈ‘ κ°λ₯ν μμΈ
- λ°μ μ¬λΆλ₯Ό κ°λ°μκ° μ¬μ μ μΈμ§ν μ μλ μμΈ
- μμ
- ‘ν μ€ νΈ λ°μ€μ μ¬μ©μκ° μ€μλ‘ μλͺ»λ κ°μ μ λ ₯ν κ² κ°λ€
- μ¬μ©μκ° μ€μ λ‘ μ‘΄μ¬νμ§ μλ νμΌμ μ μ₯ν κ² κ°λ€.’
- μ¬μ©μ μ λ ₯λμ κ°μ΄ μλͺ» μ λ ₯ → ifλ¬Έ μ¬μ©νμ¬ μλͺ» μ λ ₯νλ€κ³ μλ΅
- μμΈ‘ λΆκ°λ₯ν μμΈ
- λνμ μ¬λ‘
- λ§€μ° λ§μ νμΌμ μ²λ¦¬ν λ λ¬Έμ κ° λ°μν μ μμ
- 5,000κ°μ νμΌμ΄ ν λλ ν°λ¦¬μ μκ³ κ·Έ νμΌλͺ λ€μ λ겨 λ°μ νμΌμ νλμ© μ½μ΄λ€μ΄λ νλ‘κ·Έλ¨μ λ§λ¦
- κ·Έλ°λ° νμΌμ μ½λ€κ° μ΄λ€ νμΌ μ μ€μ λ‘ μμ λ΄μ©μ΄ μμ μ μλλ°, μ΄λ° κ²½μ°μλ μ΄λ€ μ²λ¦¬λ₯Ό νμ§ λͺ»νκ³ λμ΄κ°
- λλ νμΌμ μ½κ³ μλλ° λ€λ₯Έ μ¬μ©μμ μν΄ ν΄λΉ νμΌμ΄ μμ λμ΄ μ½μ΄λ€μ΄λ μμ μ ν΄λΉ ν μΌμ΄ μ¬λΌμ§λ κ²½μ°λ λ°μν μ μμ
- μ΄μΈμλ μΈλ±μ€μ λ²μλ₯Ό λμ΄κ°λ 리μ€νΈμ νΈμΆ
- μ μλ₯Ό 0μΌλ‘ λλλ κ² λ±μ λν λ¬Έμ κ° μκΈΈ μ μμ
- μ΄ κ²½μ° → μΈν°ν리ν°κ° μλμΌλ‘ μ΄κ²μ΄ μμΈλΌκ³ μ¬μ©μμκ² μλ¦Ό
- λλΆλΆμ μ΄λ¬ν μμΈκ° λ°μνλ©΄μ νλ‘κ·Έλ¨μ΄ μ’ λ£λλ―λ‘ μ μ ν μ‘°μΉ ν΄μΌ ν¨
- λ¨μν νμΌμ΄ μλ€κ³ μλ €μ£Όλ κ²μ΄ μλλΌ νμΌμ΄ μκΈ° λλ¬Έμ μΆκ°λ‘ ν΄μΌ νλ μ‘° μΉ μμ
- →κ·Έκ²μ μμΈ μ²λ¦¬ ꡬ문μ μΆκ°ν΄μΌ νλ€
- μλ₯Ό λ€μ΄, μ²λ¦¬ν΄μΌ ν νμΌμ΄ μλ€ λ©΄ νμΌμ΄ μλ€κ³ κΈ°λ‘μ λ¨κΈ°κ³ λ€μ νμΌμ μ²λ¦¬νλ λ°©μμΌλ‘ νλ‘κ·Έλ¨μ μμ±ν΄μΌ ν¨
- μμΈ μ²λ¦¬ μ€μν μ΄μ
- νλ‘κ·Έλ¨λ μΌμ’ μ μ νμ
- μμ±λλ₯Ό λμ΄λ μ°¨μμμ μ€μν κ°λ
- λνμ μ¬λ‘
μμΈ μ²λ¦¬ ꡬ문
- try-except문
- νμ΄μ¬μμ μμΈ μ²λ¦¬μ κΈ°λ³Έ λ¬Έλ²
- μμ± λ°©μ
- try: μμΈ λ°μ κ°λ₯ μ½λ except μμΈ νμ : μμΈ λ°μ μ μ€νλλ μ½λ
μ¬μ© μμ
- 0λΆν° 9κΉμ§ μ«μ → iμ νλμ© ν λΉνλ©° 10μΌλ‘ λλ κ° μΆλ ₯
for i in range(10):
try:
print(10 / i)
except ZeroDivisionError:
print("Not divided by 0")
- 1μ΄ μλ 0λΆν° μμ → 10μ 0μΌλ‘ λλλ κ³μ° κ°μ₯ λ¨Όμ μ€ν
- 0μΌλ‘ 10 λλ μ μμΌλ―λ‘ μμΈ λ°μ
- μμ κ°λ₯ → tryλ¬ΈμΌλ‘ λλΉ
- ZeroDivisionError
- 0μΌλ‘ λλ μ§λ κ²½μ°μλ exceptλ¬Έ μμΌλ‘ λ€μ΄κ° ν΄λΉ ꡬ문μ μ²λ¦¬
- print("Not divided by 0")
- tryλ¬Έ λ΄λΆ μμΈ λ°μ → excpetλ¬Έ μμ μ½λ μ€ννκ³ μ’ λ£
μμΈ‘ κ°λ₯ν μμΈμ μμΈ‘ λΆκ°λ₯ν μμΈ
- μμ μ’
λ₯ λ κ°μ§
- μμΈ‘ κ°λ₯ν μμΈ
- μμΈ‘ λΆκ°λ₯ν μμΈ
- μμΈ‘ κ°λ₯ν μμΈ
- λ°μ μ¬λΆλ₯Ό κ°λ°μκ° μ¬μ μ μΈμ§ν μ μλ μμΈ
- μμ
- ‘ν μ€ νΈ λ°μ€μ μ¬μ©μκ° μ€μλ‘ μλͺ»λ κ°μ μ λ ₯ν κ² κ°λ€
- μ¬μ©μκ° μ€μ λ‘ μ‘΄μ¬νμ§ μλ νμΌμ μ μ₯ν κ² κ°λ€.’
- μ¬μ©μ μ λ ₯λμ κ°μ΄ μλͺ» μ λ ₯ → ifλ¬Έ μ¬μ©νμ¬ μλͺ» μ λ ₯νλ€κ³ μλ΅
- μμΈ‘ λΆκ°λ₯ν μμΈ
- λνμ μ¬λ‘
- λ§€μ° λ§μ νμΌμ μ²λ¦¬ν λ λ¬Έμ κ° λ°μν μ μμ
- 5,000κ°μ νμΌμ΄ ν λλ ν°λ¦¬μ μκ³ κ·Έ νμΌλͺ λ€μ λ겨 λ°μ νμΌμ νλμ© μ½μ΄λ€μ΄λ νλ‘κ·Έλ¨μ λ§λ¦
- κ·Έλ°λ° νμΌμ μ½λ€κ° μ΄λ€ νμΌ μ μ€μ λ‘ μμ λ΄μ©μ΄ μμ μ μλλ°, μ΄λ° κ²½μ°μλ μ΄λ€ μ²λ¦¬λ₯Ό νμ§ λͺ»νκ³ λμ΄κ°
- λλ νμΌμ μ½κ³ μλλ° λ€λ₯Έ μ¬μ©μμ μν΄ ν΄λΉ νμΌμ΄ μμ λμ΄ μ½μ΄λ€μ΄λ μμ μ ν΄λΉ ν μΌμ΄ μ¬λΌμ§λ κ²½μ°λ λ°μν μ μμ
- μ΄μΈμλ μΈλ±μ€μ λ²μλ₯Ό λμ΄κ°λ 리μ€νΈμ νΈμΆ
- μ μλ₯Ό 0μΌλ‘ λλλ κ² λ±μ λν λ¬Έμ κ° μκΈΈ μ μμ
- μ΄ κ²½μ° → μΈν°ν리ν°κ° μλμΌλ‘ μ΄κ²μ΄ μμΈλΌκ³ μ¬μ©μμκ² μλ¦Ό
- λλΆλΆμ μ΄λ¬ν μμΈκ° λ°μνλ©΄μ νλ‘κ·Έλ¨μ΄ μ’ λ£λλ―λ‘ μ μ ν μ‘°μΉ ν΄μΌ ν¨
- λ¨μν νμΌμ΄ μλ€κ³ μλ €μ£Όλ κ²μ΄ μλλΌ νμΌμ΄ μκΈ° λλ¬Έμ μΆκ°λ‘ ν΄μΌ νλ μ‘° μΉ μμ
- →κ·Έκ²μ μμΈ μ²λ¦¬ ꡬ문μ μΆκ°ν΄μΌ νλ€
- μλ₯Ό λ€μ΄, μ²λ¦¬ν΄μΌ ν νμΌμ΄ μλ€ λ©΄ νμΌμ΄ μλ€κ³ κΈ°λ‘μ λ¨κΈ°κ³ λ€μ νμΌμ μ²λ¦¬νλ λ°©μμΌλ‘ νλ‘κ·Έλ¨μ μμ±ν΄μΌ ν¨
- μμΈ μ²λ¦¬ μ€μν μ΄μ
- νλ‘κ·Έλ¨λ μΌμ’ μ μ νμ
- μμ±λλ₯Ό λμ΄λ μ°¨μμμ μ€μν κ°λ
- λνμ μ¬λ‘
μμΈ μ²λ¦¬ ꡬ문
- try-except문
- νμ΄μ¬μμ μμΈ μ²λ¦¬μ κΈ°λ³Έ λ¬Έλ²
- μμ± λ°©μ
- try: μμΈ λ°μ κ°λ₯ μ½λ except μμΈ νμ : μμΈ λ°μ μ μ€νλλ μ½λ
μ¬μ© μμ
- 0λΆν° 9κΉμ§ μ«μ → iμ νλμ© ν λΉνλ©° 10μΌλ‘ λλ κ° μΆλ ₯
for i in range(10):
try:
print(10 / i)
except ZeroDivisionError:
print("Not divided by 0")
- 1μ΄ μλ 0λΆν° μμ → 10μ 0μΌλ‘ λλλ κ³μ° κ°μ₯ λ¨Όμ μ€ν
- 0μΌλ‘ 10 λλ μ μμΌλ―λ‘ μμΈ λ°μ
- μμ κ°λ₯ → tryλ¬ΈμΌλ‘ λλΉ
- ZeroDivisionError
- 0μΌλ‘ λλ μ§λ κ²½μ°μλ exceptλ¬Έ μμΌλ‘ λ€μ΄κ° ν΄λΉ ꡬ문μ μ²λ¦¬
- print("Not divided by 0")
- tryλ¬Έ λ΄λΆ μμΈ λ°μ → excpetλ¬Έ μμ μ½λ μ€ννκ³ μ’ λ£
- +) μμΈμ μ’
λ₯ & μμΈμ λν μλ¬ λ©μΈμ§
- μμΈμ μ’ λ₯
- IndexError
- 리μ€νΈμ μΈλ±μ€ λ²μλ₯Ό λμ΄κ° λ μ²λ¦¬νλ μμΈ
- μ½λλ₯Ό μμ±νλ€ λ°μ΄ν°κ° 150κ°μΈμ€ μμλλ°. 151 κ°κ° μμ΄ μ²λ¦¬λ₯Ό μμ²νλ κ²½μ° IndexErrorκ° νΈμΆλ¨
- NameError
- μ½λμμ νΈμΆνλ νΉλ³ν λ³μλͺ μ΄ μμ λ νΈμΆλλ μλ¬
- μ΄ μΈμ΄κ° μΈν°ν리ν°μΈμ΄μ΄λ€ 보λ μ‘΄μ¬νμ§ μμ λ³μλ μ€ν μμ μμ μ‘μλ
- μ»΄νμΌλ¬ μΈμ΄μ κ²½μ° μ€ν μ μ΄λ μ»΄νμΌλ¬ μμ μ μλ¬κ° λ°μνλ κ²κ³Όλ λμ‘°μ
- μμΈμ λν μλ¬ λ©μΈμ§
μ¬μ© λ°©λ²
- exceptλ¬Έμ λ§μ§λ§μ ‘as e’ λλ ‘as λ³μλͺ ’μ μ λ ₯ → ν΄λΉ λ³μλͺ μ μΆλ ₯
- μ¬μ© λ°©λ²
for i in range(10):
try:
print(10 / i)
except ZeroDivisionError as e:
print(e)
print('Not divided by 0')
try-except-else문
- if-else λ¬Έκ³Ό λΉμ·
- ν΄λΉ μμΈκ° λ°μνμ§ μλ κ²½μ° μνν μ½λλ₯Ό elseλ¬Έμ μμ±νλ©΄ λ¨
- κΈ°λ³Έ νν
- μ½λ
for i in range(10):
try:
result =10 / i
except ZeroDivisionError:
print('Not divided by 0')
else:
print(10 / i)
- μλ¬ λ°μνμ§ μλ κ²½μ° μνλ¬Έ μ μ → μλ¬ μμ΄λ μΌμ΄λ μΌμ μ¬μ©μκ° μ νν μμΈ‘ν μ μλ€λ μ₯μ
- μΌλ°μ μΌλ‘ λ§μ΄ μ¬μ©λμ§ μμ
- κ°νΉ μλ² μν λΆμν΄ μ°κ²° λκΉμ΄ μμ£Ό λ°μ → μ°κ±Έ λμ λ μ²λ¦¬ν μ½λ λͺ νν νκΈ°
try-except-finally문
- try—exceptλ¬Έ μμ μλ μν μ½λκ° μλ¬΄λ° λ¬Έμ μμ΄ μ’ λ£λμμ κ²½μ° μ΅μ’ μΌλ‘ νΈμΆνλ μ½λ
- forλ¬Έμμ μ¬μ©νλ finallyλ¬Έκ³Ό μ©λκ° λΉμ·
- κΈ°λ³Έ νμ
- μ¬μ© μμ
try:
for i in ranged, 10):
result =10 // i
print(result)
except ZeroDivisionError:
print("Not divided by 0")
finally:
print("μ’
λ£λμλ€.")
- tryλ¬Έμ΄ forλ¬Έ λ°μ μ μΈλμ΄ μκ³ , λκ° 1λΆν° μμ
- μ¬μ€μ ZeroDivision- Errorκ° λ°μν μ μλ μ½λ
- μ΄λ¬ν μ½λλ₯Ό μμ±νλ©΄ exceptλ¬Έμ μ€νλμ§ μκ³ λ§μ§ λ§μΌλ‘ finallyλ¬Έλ§ μ€ν
- try-except-finallyλ¬Έλ forλ¬Έμμ finallyλ¬Έμ μ¬μ©νλ κ² κ³Ό λμΌνκ² μμΈ λ°μ μ¬λΆμ μκ΄μμ΄ λ°λμ μ€νλλ μ½λ
raise
- νμν λ μμΈλ₯Ό λ°μμν€λ μ½λ
- while Trueλ¬Έμ μ¬μ©ν΄ κ³μ λ°λ³΅λ¬Έμ λλ €μΌ νλ νλ‘κ·Έλ¨μ μμ±νλ€κ³ κ°μ
- μλλ°© μ»΄ν¨ν°μ κ³μ 무μμΈκ°λ₯Ό μμ²ν΄μΌ νλ νλ‘κ·Έλ¨μ΄κ³ , μμ²ν λλ§λ€ λΉμ©μ΄ μ²κ΅¬
- λ§μ½ μλλ°© μ»΄ν¨ν°κ° κ³ μ₯λκ±°λ λ¬Έμ κ° μ겨 μ¬μ©νμ§ λͺ»νκ² λλ μν©μ΄ λ°μνλ€λ©΄ μ΄λ»κ² ν΄μΌ ν κΉ?
- ν λ‘κ·Έλ¨μ μμ±ν λ μλλ°© μ»΄ν¨ν°μμ μλ΅μ΄ μλ€λ©΄ κ°μ λ‘ νλ‘κ·Έλ¨μ΄ μ’ λ£λλλ‘ μμΈλ₯Ό λ°μ
- κΈ°λ³Έ νν
- μ¬μ© μμ
- μ€λͺ
- while Trueλ¬ΈμΌλ‘ λ°λ³΅λ¬Έμ΄ κ³μ λμκ°λ μνμμ μ¬μ©μμκ² μ λ ₯μ λ°μ
- νμ§λ§ μ¬μ©μκ° μ λ ₯ν κ°μ΄ μ«μκ° μλ κ²½μ°μλ μ«μκ°μ μ λ ₯νμ§ μμλ€κ³ μΆ λ ₯νλ©΄μ νλ‘κ·Έλ¨μ μ’ λ£νλ κ²μ λͺ©μ μΌλ‘ μμ±λ νλ‘κ·Έλ¨μ΄
- μ΄λ, μλ¬μ μ’ λ₯λ ValueErrorλ‘ μ¬μ©μκ° μ λ ₯μ μλͺ»νμ λ μ λ ₯μ΄ μλͺ»λ κ²μ μλ €μ£Όλ©΄μ μ’ λ£
assert문
- 미리 μμμΌ ν μμΈ μ λ³΄κ° μ‘°κ±΄μ λ§μ‘±νμ§ μμ κ²½μ° μμΈλ₯Ό λ°μ
- μμμ ifλ¬Έκ³Ό ν¨κ» raiseλ¬Έμ μ¬μ©νμ¬ κ°μ λ‘ μμΈλ₯Ό λ°μ
- assertλ¬Έ → λ§€μ° κ°λ¨νκ² μμΈλ₯Ό λ°μ
- True λλ Falseμ λ°νμ΄ κ°λ₯ν ν¨μλ₯Ό μ¬μ©
- λ§μ½ Falseκ° λ°νλλ©΄ μμΈκ° λ°μ
- κΈ°λ³Έ νν
- γ μ¬μ© μμ
- μ€λͺ
- 1νμμ get_binary_number() ν¨μλ₯Ό ν΅ν΄ μμ§μλ₯Ό μ λ ₯λ°μ
- νμ§λ§ ν¨μλ₯Ό μ¬μ©ν λ μ¬μ©μκ° μλͺ»λ μΈμargument, μλ₯Ό λ€μ΄ λ¬Έμμ΄κ°μ μ λ ₯ν μλ μμ
- μ΄λ₯Ό λ°©μ§νκΈ° μν΄ 2νμμ assertλ¬Έμ μ¬μ©
- isinstance() ν¨μλ μ λ ₯λ κ°μ΄ λ€μμ λμ€λ ν΄λμ€ μ μΈμ€ν΄μ€μΈμ§λ₯Ό νμΈνλ ν¨μ
- μ΄ μ½λμμ decimal_number λ³μκ° μ μν μΈμ§λ 4γ 5νμμ νμΈν μ μμ
- assertλ¬Έμ μ½λλ₯Ό μμ±ν λ μλͺ»λ μ λ ₯ μ¬λΆλ₯Ό μ¬μ μ νμΈνμ¬ λμ€μ νμ μλ μ°μ°μ λ§μμ£Όκ³ , κ²°κ΅ λ€λ₯Έ μ¬λμ΄ λ§λ μ½λλ₯Ό μ¬μ©νλ λ° μ’μ κ°μ΄λκ° λ¨
+) μμΈμ μ’ λ₯ & μμΈμ λν μλ¬ λ©μΈμ§
- μμΈμ μ’ λ₯
- IndexError
- 리μ€νΈμ μΈλ±μ€ λ²μλ₯Ό λμ΄κ° λ μ²λ¦¬νλ μμΈ
- μ½λλ₯Ό μμ±νλ€ λ°μ΄ν°κ° 150κ°μΈμ€ μμλλ°. 151 κ°κ° μμ΄ μ²λ¦¬λ₯Ό μμ²νλ κ²½μ° IndexErrorκ° νΈμΆλ¨
- NameError
- μ½λμμ νΈμΆνλ νΉλ³ν λ³μλͺ μ΄ μμ λ νΈμΆλλ μλ¬
- μ΄ μΈμ΄κ° μΈν°ν리ν°μΈμ΄μ΄λ€ 보λ μ‘΄μ¬νμ§ μμ λ³μλ μ€ν μμ μμ μ‘μλ
- μ»΄νμΌλ¬ μΈμ΄μ κ²½μ° μ€ν μ μ΄λ μ»΄νμΌλ¬ μμ μ μλ¬κ° λ°μνλ κ²κ³Όλ λμ‘°μ
- μμΈμ λν μλ¬ λ©μΈμ§
μ¬μ© λ°©λ²
- exceptλ¬Έμ λ§μ§λ§μ ‘as e’ λλ ‘as λ³μλͺ ’μ μ λ ₯ → ν΄λΉ λ³μλͺ μ μΆλ ₯
- μ¬μ© λ°©λ²
for i in range(10):
try:
print(10 / i)
except ZeroDivisionError as e:
print(e)
print('Not divided by 0')
try-except-else문
- if-else λ¬Έκ³Ό λΉμ·
- ν΄λΉ μμΈκ° λ°μνμ§ μλ κ²½μ° μνν μ½λλ₯Ό elseλ¬Έμ μμ±νλ©΄ λ¨
- κΈ°λ³Έ νν
- μ½λ
for i in range(10):
try:
result =10 / i
except ZeroDivisionError:
print('Not divided by 0')
else:
print(10 / i)
- μλ¬ λ°μνμ§ μλ κ²½μ° μνλ¬Έ μ μ → μλ¬ μμ΄λ μΌμ΄λ μΌμ μ¬μ©μκ° μ νν μμΈ‘ν μ μλ€λ μ₯μ
- μΌλ°μ μΌλ‘ λ§μ΄ μ¬μ©λμ§ μμ
- κ°νΉ μλ² μν λΆμν΄ μ°κ²° λκΉμ΄ μμ£Ό λ°μ → μ°κ±Έ λμ λ μ²λ¦¬ν μ½λ λͺ νν νκΈ°
try-except-finally문
- try—exceptλ¬Έ μμ μλ μν μ½λκ° μλ¬΄λ° λ¬Έμ μμ΄ μ’ λ£λμμ κ²½μ° μ΅μ’ μΌλ‘ νΈμΆνλ μ½λ
- forλ¬Έμμ μ¬μ©νλ finallyλ¬Έκ³Ό μ©λκ° λΉμ·
- κΈ°λ³Έ νμ
- μ¬μ© μμ
try:
for i in ranged, 10):
result =10 // i
print(result)
except ZeroDivisionError:
print("Not divided by 0")
finally:
print("μ’
λ£λμλ€.")
- tryλ¬Έμ΄ forλ¬Έ λ°μ μ μΈλμ΄ μκ³ , λκ° 1λΆν° μμ
- μ¬μ€μ ZeroDivision- Errorκ° λ°μν μ μλ μ½λ
- μ΄λ¬ν μ½λλ₯Ό μμ±νλ©΄ exceptλ¬Έμ μ€νλμ§ μκ³ λ§μ§ λ§μΌλ‘ finallyλ¬Έλ§ μ€ν
- try-except-finallyλ¬Έλ forλ¬Έμμ finallyλ¬Έμ μ¬μ©νλ κ² κ³Ό λμΌνκ² μμΈ λ°μ μ¬λΆμ μκ΄μμ΄ λ°λμ μ€νλλ μ½λ
raise
- νμν λ μμΈλ₯Ό λ°μμν€λ μ½λ
- while Trueλ¬Έμ μ¬μ©ν΄ κ³μ λ°λ³΅λ¬Έμ λλ €μΌ νλ νλ‘κ·Έλ¨μ μμ±νλ€κ³ κ°μ
- μλλ°© μ»΄ν¨ν°μ κ³μ 무μμΈκ°λ₯Ό μμ²ν΄μΌ νλ νλ‘κ·Έλ¨μ΄κ³ , μμ²ν λλ§λ€ λΉμ©μ΄ μ²κ΅¬
- λ§μ½ μλλ°© μ»΄ν¨ν°κ° κ³ μ₯λκ±°λ λ¬Έμ κ° μ겨 μ¬μ©νμ§ λͺ»νκ² λλ μν©μ΄ λ°μνλ€λ©΄ μ΄λ»κ² ν΄μΌ ν κΉ?
- ν λ‘κ·Έλ¨μ μμ±ν λ μλλ°© μ»΄ν¨ν°μμ μλ΅μ΄ μλ€λ©΄ κ°μ λ‘ νλ‘κ·Έλ¨μ΄ μ’ λ£λλλ‘ μμΈλ₯Ό λ°μ
- κΈ°λ³Έ νν
- μ¬μ© μμ
- μ€λͺ
- while Trueλ¬ΈμΌλ‘ λ°λ³΅λ¬Έμ΄ κ³μ λμκ°λ μνμμ μ¬μ©μμκ² μ λ ₯μ λ°μ
- νμ§λ§ μ¬μ©μκ° μ λ ₯ν κ°μ΄ μ«μκ° μλ κ²½μ°μλ μ«μκ°μ μ λ ₯νμ§ μμλ€κ³ μΆ λ ₯νλ©΄μ νλ‘κ·Έλ¨μ μ’ λ£νλ κ²μ λͺ©μ μΌλ‘ μμ±λ νλ‘κ·Έλ¨μ΄
- μ΄λ, μλ¬μ μ’ λ₯λ ValueErrorλ‘ μ¬μ©μκ° μ λ ₯μ μλͺ»νμ λ μ λ ₯μ΄ μλͺ»λ κ²μ μλ €μ£Όλ©΄μ μ’ λ£
assert문
- 미리 μμμΌ ν μμΈ μ λ³΄κ° μ‘°κ±΄μ λ§μ‘±νμ§ μμ κ²½μ° μμΈλ₯Ό λ°μ
- μμμ ifλ¬Έκ³Ό ν¨κ» raiseλ¬Έμ μ¬μ©νμ¬ κ°μ λ‘ μμΈλ₯Ό λ°μ
- assertλ¬Έ → λ§€μ° κ°λ¨νκ² μμΈλ₯Ό λ°μ
- True λλ Falseμ λ°νμ΄ κ°λ₯ν ν¨μλ₯Ό μ¬μ©
- λ§μ½ Falseκ° λ°νλλ©΄ μμΈκ° λ°μ
- κΈ°λ³Έ νν
- μ¬μ© μμ
- μ€λͺ
- 1νμμ get_binary_number() ν¨μλ₯Ό ν΅ν΄ μμ§μλ₯Ό μ λ ₯λ°μ
- νμ§λ§ ν¨μλ₯Ό μ¬μ©ν λ μ¬μ©μκ° μλͺ»λ μΈμargument, μλ₯Ό λ€μ΄ λ¬Έμμ΄κ°μ μ λ ₯ν μλ μμ
- μ΄λ₯Ό λ°©μ§νκΈ° μν΄ 2νμμ assertλ¬Έμ μ¬μ©
- isinstance() ν¨μλ μ λ ₯λ κ°μ΄ λ€μμ λμ€λ ν΄λμ€ μ μΈμ€ν΄μ€μΈμ§λ₯Ό νμΈνλ ν¨μ
- μ΄ μ½λμμ decimal_number λ³μκ° μ μν μΈμ§λ 4γ 5νμμ νμΈν μ μμ
- assertλ¬Έμ μ½λλ₯Ό μμ±ν λ μλͺ»λ μ λ ₯ μ¬λΆλ₯Ό μ¬μ μ νμΈνμ¬ λμ€μ νμ μλ μ°μ°μ λ§μμ£Όκ³ , κ²°κ΅ λ€λ₯Έ μ¬λμ΄ λ§λ μ½λλ₯Ό μ¬μ©νλ λ° μ’μ κ°μ΄λκ° λ¨
#2. νμΌ λ€λ£¨κΈ°
νμΌμ κ°λ
- νμΌfileμ μ»΄ν¨ν°λ₯Ό μ€νν λ κ°μ₯ κΈ°λ³Έμ΄ λλ λ¨μ
- νλ‘κ·Έλ¨μ μ€ννλ κ²μ λ νμΌ μ μ€ννλ κ²
- νμ§λ§ μΌλ°μ μΌλ‘ μλμ GUI νκ²½μμλ νμΌμ μ€ννλ κ²μ΄ μλ λΌ, [κ·Έλ¦Ό 12-2]μ κ°μ μμ΄μ½μ λλΈν΄λ¦νμ¬ μ€ν
- μ€μ λ‘λ μμ΄μ½ κ³Ό μ°κ²°λ νμΌμ΄ μ€νλλ ꡬ쑰
- μμ΄μ½μμ λ§μ°μ€ μ€λ₯Έμͺ½ λ²νΌμ ν΄λ¦νκ³ [μμ±]μ μ ννλ©΄ [κ·Έλ¦Ό 12-3]κ³Ό κ°μ νλ©΄μ λ³Ό μ μμ
- μμ± νλ©΄μμ ‘λμ’ νλͺ©μ μ€νλλ νμΌμ κ²½λ‘κ° μμ
- μ΄ κ²½λ‘λ₯Ό κ·Έλλ‘ λ³΅μ¬νμ¬ μ½μ μ°½μ λΆμ¬λ£κ³ μ€ννλ©΄ ν΄λΉ νλ‘κ·Έλ¨μ΄ μ€νλ¨
- λͺ¨λ νλ‘κ·Έλ¨μ μ΄λ κ² νμΌμ΄ μκΈ° λ λ¬Έμ μ€νλλ κ²
- λ¨μ§ μ¬μ©μκ° νΈνκ² μ°κΈ° μν΄ κ°λ¨ν μμ΄μ½μ λ§λ€μ΄ μ¬μ©ν λΏμ΄ μ§, κ·Έ μ΄λ©΄μλ λͺ¨λ νμΌμ΄ μ¨μ΄ μλ€κ³ ν μ μμ
νμΌμ μ’ λ₯
- κΈ°λ³Έμ μΌλ‘ λ°μ΄λ리 νμΌbinary fileκ³Ό ν μ€νΈ νμΌtext file, λ κ°μ§λ‘ λΆλ₯ κ°λ₯
- λ°μ΄λ리
- μ»΄ν¨ν°λ§ μ΄ν΄ν μ μλ μ΄μ§ μ λ³΄λ‘ μ μ₯λ νμΌ
- λΉνΈbit ννλ‘ μ μ₯λμ΄ λ©λͺ¨μ₯μΌλ‘ μ΄λ©΄ λ΄μ©μ΄ 보μ΄μ§ μκ±°λ λ΄μ©μ νμΈν μ μλ νμΌ
- μ 보 ν¨μ¨μ μΌλ‘ μ μ₯νκΈ° μν΄ νμΌ μμ€ν
λλΆλΆμ μ΄μ§ μ λ³΄λ‘ μ μ₯
- μμ μ΄λ μλ νλ‘κ·Έλ¨λ€μ΄ λͺ¨λ μ΄μ§ μ λ³΄λ‘ μ μ₯λ μ΄μ§ νμΌ
- ν
μ€νΈ
- μ¬λμ΄ μ΄ν΄ν μ μλ λ¬Έμμ΄λ‘ μ μ₯λ νμΌ
- λ©λͺ¨μ₯μΌλ‘ κ·Έ λ΄μ©μ νμΈν μ μμ
- μ§κΈκΉμ§ μμ±ν νμ΄μ¬ νμΌμ΄λ HTML μ½λ νμΌ λ±λ λͺ¨λ ν μ€νΈ νμ
- μκ°λ³΄λ€ λ§μ νμΌμ΄ ν μ€νΈ νμΌλ‘ μ μ₯
νμΌ μ½κΈ°
- ν μ€νΈ νμΌμ λ€λ£¨κΈ° μν΄ open() ν¨μλ₯Ό μ¬μ©
- open() ν¨μμ νμΌλͺ , νμΌ μ΄κΈ° λͺ¨λλ₯Ό μ λ ₯νλ©΄ κ·Έ μ΅μ μ λ°λΌ νμΌμ λ€λ£° μ μμ
- νμΌμ μ¬λ λͺ¨λμλ μ½κΈ° λͺ¨λ, μ°κΈ° λͺ¨λ, μΆκ° λͺ¨λ λ±μ΄ μ‘΄μ¬
- νμ΄μ¬μμλ μν©μ λ°λΌ μ΄λ¬ν νμμ μ‘°ν©νμ¬ νμΌμ λ€λ£¨κ² λ¨
- νμΌ μ½κΈ°
- νμΌ μ½κΈ° μ€ν
- μ€λͺ
- 1νμμ open() ν¨μ λ€μμ νμΌλͺ
κ³Ό ‘r’μ μ
λ ₯ν΄ νμΌμ λν μ 보λ₯Ό λ³μ fμ μ μ₯
- μ΄λ₯Ό μΌλ°μ μΌλ‘ νμΌ κ°μ²΄
- 2νμμ λ³μ μ€λ₯Ό μ΄μ©ν΄ read() ν¨μλ₯Ό μ€ννλ©΄ ν΄λΉ νμΌμ ν μ€νΈλ₯Ό contents λ³μμ λ¬Έμμ΄λ‘ μ μ₯
- 3νμμλ contents λ³μμ λ΄ μ©. μ¦ ‘dream.txt’ νμΌμ μλ ν μ€νΈλ₯Ό νλ©΄μ μΆλ ₯
- 4νμμλ λ§μ§λ§μΌλ‘ close() ν¨μλ₯Ό μ¬μ©νμ¬ νμΌμ μ’ λ£
- λλλ‘ ν
μ€νΈ νμΌμ λ€λ£° λ μ΄λ―Έ μμ νκ³ μλ νμΌμ λ€λ₯Έ νλ‘κ·Έλ¨μμ λμμ νΈμΆνλ©΄ μλ¬κ° λ°μν
- μ΄λ κ² νλμ νμ΄μ¬ νλ‘κ·Έλ¨μ΄ νλμ νμΌμ μ¬μ©ν λ μ¬μ©μ μλ£νλ©΄ λ°λμ ν΄λΉ νμΌμ μ’ λ£ν΄μΌ ν¨
- 1νμμ open() ν¨μ λ€μμ νμΌλͺ
κ³Ό ‘r’μ μ
λ ₯ν΄ νμΌμ λν μ 보λ₯Ό λ³μ fμ μ μ₯
withλ¬Έκ³Ό ν¨κ» μ¬μ©
- withλ¬Έκ³Ό ν¨κ» open() ν¨μλ₯Ό μ¬μ© κ°λ₯
- . withλ¬Έμ λ€μ¬μ°κΈ°λ₯Ό νλ λμμλ open() ν¨μκ° μ μ§λκ³ , λ€μ¬μ°κΈ°κ° λλλ©΄ open() ν¨μλ μ’ λ£λλ λ°©μ
- μ°¨μ΄μ μ close() ν¨μλ₯Ό λͺ μμ μΌλ‘ μ°μ§ μμλ νμΌμ μ¬μ©μ μ’ λ£ν μ μλ€λ μ
- νΉν ν΄λΉ νμΌ κ°μ²΄λ =λ‘ ν λΉνλ λ°©μμ΄ μλλΌ asλ¬Έμ μ¬μ©νμ¬ λ³μλͺ μ ν λΉ
ν μ€μ© μ½μ΄ 리μ€νΈνμΌλ‘ λ°ν
- νμΌ μ 체μ ν μ€νΈλ₯Ό λ¬Έμμ΄λ‘ λ°ννλ read() ν¨μ λμ . readlines() ν¨μλ₯Ό μ¬μ©νμ¬ ν μ€μ© λ΄μ©μ μ½μ΄μ λ¬Έμμ΄ ννλ‘ μ μ₯ κ°λ₯
- ν μ€μ κΈ°μ€μ \n λ‘ λλμ΄μ§κ³ 리μ€νΈλ‘ λ°νλ λ forλ¬Έ λ± λ€μν ννλ‘ νμ© κ°λ₯
μ€νν λλ§λ€ ν μ€μ© μ½μ΄μ€κΈ°
- μ€νν λλ§λ€ μ°¨λ‘λλ‘ ν μ€μ© μ½μ΄μ€λ ν¨μμΈ readline()μ λν΄ μμ보μ.
- κΈ°μ‘΄ read() ν¨μλ νμΌμ ν λ² μ΄ λ νμΌμ μ²μλΆν° λκΉμ§ λͺ¨λ νμΌμ λ΄μ©μ μ½μ΄μ€λ ν¨μμ΄μ§λ§ readline() ν¨μλ νΈμΆλ λλ§λ€ ν μ€μ© μ½μ΄μ€λ νΉμ§ μ‘΄μ¬
- μ€λͺ
- 3νμμ while 1λ‘ μ½λκ° νμ μνλλλ‘ λ§λ λ€μ, 4νμ line = my_file.readline()μΌλ‘ ν μ€μ© νμΌμ μ½μ΄λ€μ
- λ§μ½ μ½μ΄μ¨ μ€μ λ΄μ©μ΄ μλ€λ©΄ 5ν μ if not line: break μ½λμ μν΄ λ°λ³΅λ¬Έμ΄ μ’ λ£λμ΄ νμΌ μ½κΈ°λ₯Ό μ’ λ£
- νμ§λ§ νμΌ μ λ¨μ λ΄μ©μ΄ μλ€λ©΄ whileλ¬Έμ΄ κ³μ μ€νλλ©΄μ λͺ¨λ μ½λλ₯Ό λ€ μ½μ΄μ€κ² λ¨
- νμΌμ λ΄μ©μ μ°Ύλ€κ° μ€κ°μ λ©μΆ°μΌ ν νμκ° μλ λμ©λ λ°μ΄ν°λ κ°μ μ½λλ₯Ό λ§μ΄ μ¬μ©
νμΌμ μ μ₯λ κΈμμ γ ν΅κ³μ 보 μΆλ ₯νκΈ°
- λλ‘λ νμΌμ μ μ₯λ ν μ€νΈμ ν΅κ³ μ 보λ₯Ό μ½μ΄μμΌ ν λκ° μμ
- μ΄λ₯Ό μν΄ λ§μ΄ μ¬μ©νλ λ°©λ²
- μ΄λ―Έ λ°°μ΄ split() ν¨μμ len() ν¨μλ₯Ό ν¨κ» μ¬μ©νλ κ²
- νμΌμ μ μ₯λ λͺ¨λ ν μ€νΈλ₯Ό μ½μ΄μ¨ ν μ°¨λ‘λλ‘ κΈμ μ, λ¨μ΄ μ, μ€ μλ₯Ό μΆλ ₯νλ νλ‘κ·Έλ¨
νμΌ μ°κΈ°
- νμΌμ 무μμΈκ°λ₯Ό μ°κΈ° μν΄μλ νμΌ μ΄κΈ° λͺ¨λλ₯Ό ‘W’λ‘ μ€μ νλ κ²κ³Ό ν¨κ» μΈμ½λ© encoding μ΄λΌλ κ°λ μ μμμΌ ν¨
- μΈμ½λ©
- ν μ€νΈ νμΌμ μ μ₯νκΈ° μν΄μλ μ μ₯ν λ μ¬μ©νλ νμ€μ μ§ μ ν΄μΌ ν¨
- μΈμ½λ© μ΅μ → μΈμ½λ© νμ€μ μ§μ ν μ μμ
- μΌλ°μ μΌλ‘ μΈμ½λ©μ UTF-8μ λ§μ΄ μ¬μ©
- νμΌμ μλμμλ§ μ¬μ©νλ€λ©΄ cp949λ μ¬μ©κ°λ₯
- μ΄μ체μ λ νμΌμ μ¬μ© νκ²½μ λ°λΌ λ€λ₯΄κ² μ€μ ν΄μΌ ν¨
pickle λͺ¨λ
- νμ΄μ¬ νλ‘κ·Έλ¨μ μ€νν λ μμ±λλ μ¬λ¬ λ³μμ κ°μ²΄λ μκ°μ μΌλ‘ λ©λͺ¨λ¦¬μ λ‘λ©λμλ€ κ° νλ‘κ·Έλ¨μ΄ μ’ λ£λλ©΄ μ¬λΌμ§
- νμ§λ§ λλ‘λ μ΄λ κ² μ¬μ©λλ κ°μ²΄λ₯Ό μ μ₯μμΌ λκ³ ν μν λ λ€μ λΆλ¬μΌ νλ κ²½μ°κ° μμ
- μ΄ κ²½μ°λ₯Ό νλ‘κ·Έλλ° μΈμ΄μμλ μμνpersistenceλΌκ³ ν¨
- κ°λ¨ν νννλ©΄ νμν κ°μ²΄λ₯Ό νμΌλ‘ μ μ₯μμΌ λ€μ μ¬μ©ν μ μλλ‘ νλ κ²
- νμ΄μ¬μ pickle λͺ¨λμ μ 곡νμ¬ λ©λͺ¨λ¦¬μ λ‘λ©λ κ°μ²΄λ₯Ό μμνν μ μλλ‘ μ§μ
- 리 μ€νΈμ λ€μ΄κ° λ°μ΄ν°λ ν΄λμ€μ μ€λΈμ νΈ λ±μ νμΌλ‘ μ μ₯μμΌ λμ€μ λ€μ μ¬μ©ν μ μ λλ‘ ν΄μ€
- μμ§μ νμ μμ§λ§ μ μ₯ν΄μΌ νλ μ λ³΄κ° λ§μμ§κ³ κ³μ° κ²°κ³Όλ₯Ό μ μ₯νμλ€κ° λμ€μ λ€μ λΆλ¬ μ¬μ©ν κ²½μ°μλ μκΈ΄νκ² μΈ μ μλ κΈ°λ₯
- pickle λͺ¨λμ μ¬μ©νκΈ° μν΄μλ λ€μ μ½λμ κ°μ΄ νΈμΆν ν κ°μ²΄λ₯Ό μ μ₯ν μ μλ νμΌμ μ΄κ³ μ μ₯νκ³ μ νλ κ°μ²΄λ₯Ό λκΈ°λ©΄dump λ¨
- νμΌμ μμ±ν λλ ‘w’κ° μλ ‘Wb’λ‘ μ΄μ΄μΌ νλλ° μ¬κΈ°μ Bλ λ°μ΄λ리binaryλ₯Ό λ»νλ μ½μλ‘ ν μ€νΈ νμΌμ΄ μλ λ°μ΄λ리 νμΌλ‘ μ μ₯λλ€λ μλ―Έ
- dump() ν¨μμμλ μ μ₯ν κ°μ²΄, μ μ₯λ νμΌ κ°μ²΄λ₯Ό μ°¨λ‘λλ‘ μΈμ λ‘ λ£μΌλ©΄ ν΄λΉ κ°μ²΄κ° ν΄λΉ νμΌμ μ μ₯λ¨
- μ μ₯λ pickle νμΌμ λΆλ¬μ€λ νλ‘μΈμ€λ μ μ₯ νλ‘μΈμ€μ κ°μ
- λ¨Όμ list.pickle νμΌ μ ‘rb’ λͺ¨λλ‘ μ½μ΄μ¨ ν, ν΄λΉ νμΌ κ°μ²΄λ₯Ό pickle λͺ¨λμ μ¬μ©νμ¬ load() ν¨μλ‘ λΆλ¬μ€λ©΄ λ¨
- μ¬μ€ pickle κ°μ²΄λ₯Ό λΆλ¬μ¬ λ ν΄λΉ κ°μ²΄κ° μ΄λ€ κ°μ²΄μΈμ§μ λν μ λ³΄κ° μ ν μμ΄ μλΉν νΌλμ€λ¬μΈ λλ μμ§λ§, ν΄λΉ μ½λλ₯Ό κ°λ°ν κ°λ°μλΌλ©΄ μ½λμ μΈν°νμ΄μ€λ₯Ό μ νν μκ³ μμΌλ―λ‘ μ΄λ €μ μμ΄ μ¬μ©ν μ μμ
- λ€μ νμ΄μ¬ μ Έ μ½λλ μμμ 리μ€νΈ κ°μ²΄λ₯Ό list.pickle νμΌμ μ μ₯νκΈ° λλ¬Έμ ν΄λΉ νμΌμ λΆλ¬ μ¬μ©ν λλ λμΌνκ² λ¦¬μ€νΈ κ°μ²΄κ° λ°νλ κ²μ μ μ μμ
- pickle λͺ¨λμ λ¨μν μμ±λ κ°μ²΄λ₯Ό μ μ₯νλ κΈ°λ₯λ μμ§λ§ μ¬μ©μκ° μ§μ μμ±ν ν΄λμ€ κ°μ²΄λ μ μ₯
- λ€μ μ½λμ κ°μ΄ κ³±μ μ μ²λ¦¬νλ ν΄λμ€λ₯Ό μμ±νλ€κ³ κ°μ
- μ΄ μ½λμ ν΄λμ€λ μ²μ κ°μ²΄λ₯Ό μμ±ν λ μ΄κΉκ°μ μμ±νκ³ , multiply() ν¨μλ₯Ό λΆλ₯Ό λλ§λ€ ‘μ΄ κΉκ° * number’μ κ°μ νΈμΆνλ ν΄λμ€
- μΌμ’ μ κ³±μ ν΄λμ€λΌκ³ μκ°
- κ·Έλ¬λ νλ‘κ·Έλ¨μ μμ±νλ€ λ³΄λ©΄ λ§€μ° λ³΅μ‘ν μ°μ°λ λ°λ‘ μ μ₯νμ¬ μ¬μ©ν λκ° μμ
- μ΄λ¬ν μ μ₯ λͺ¨λμ ν¨μ¨μ μΌλ‘ μ¬μ©νκΈ° μν΄ λ€μ μ½λμ²λΌ pickle λͺ¨λμ μ¬μ©ν μ μμ
'π μ€ν°λ > νμ΄μ¬ μ€ν°λ κ°μμλ£' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[3ν/κΉκ²½μ] 10μ£Όμ°¨ νμ΄μ¬ μ€ν°λ - μμΈμ²λ¦¬ (0) | 2023.06.02 |
---|---|
[1ν/νμμ] 10μ°¨μ νμ΄μ¬ μ€ν°λ - μμΈμ²λ¦¬ (0) | 2023.06.01 |
[1ν/νκ·λ¦Ό] 10μ£Όμ°¨ νμ΄μ¬ μ€ν°λ - μμΈμ²λ¦¬ (0) | 2023.06.01 |
[2ν/κΉκ°λ¦Ό, μ΅λ€μ] 10μ£Όμ°¨ νμ΄μ¬ μ€ν°λ - μμΈμ²λ¦¬ (1) | 2023.06.01 |
[2ν/κΉμΈμ°] 10μ£Όμ°¨ νμ΄μ¬ μ€ν°λ - μμΈμ²λ¦¬ (0) | 2023.05.31 |