λ°μ΄ν° κ³Όνμ μν νμ΄μ¬ νλ‘κ·Έλλ° κ΅μ¬λ₯Ό μ¬μ©νμ¬ μμ±ν κ°μμλ£μ λλ€.
μμΈμ κ°λ κ³Ό μ¬λ‘
- μ€μ νλ‘κ·Έλ¨μ λ§λ€κΈ° μν΄ μμμΌ νλ μμΈ μ²λ¦¬
- μμΈ (exception)λ νλ‘κ·Έλ¨μ κ°λ°νλ©΄μ μμνμ§ λͺ»ν μν©μ΄ λ°μνλ κ²μ΄λ€.
- λνμ μΈ μ¬λ‘λ‘ μ¬μ©μμ μ λ ₯ μ€λ₯κ° μλ€. μλ₯Ό λ€μ΄, μλ‘μ΄ μΉ μ¬μ΄νΈμ κ°μ νμ¬ μμ΄λλ₯Ό μμ±νλ €κ³ νλ€. μΌλ°μ μΌλ‘ μμ΄λλ μλ¬Έμλ μ«μλ₯Ό μ§μνλλ°, λλ‘λ μ¬μ©μκ° νκΈλ‘ μμ΄λλ₯Ό λ§λ€κΈ° μν΄ νκΈ μ λ ₯μ μλν λκ° μλ€. μ΄ κ²½μ° μ λ ₯λ νκΈμ΄ μλ¬΄λ° λ¬Έμ μμ΄ λ°μ΄ν°λ² μ΄μ€μ μ μ₯λλ©΄ μμΉ« μ¬μ©μκ° ν΄λΉ μΉ μ¬μ΄νΈμ λ‘κ·ΈμΈνμ§ λͺ»ν μλ μλ€. νλ‘κ·Έλλ¨Έμ μ€μλ‘ μΈμ½λ©μ λ¬Έμ κ° λ°μνμ¬ λ°μ΄ν°λ² μ΄μ€μ νκΈμ΄ μλͺ» μ μ₯λ μ λ μκΈ° λλ¬Έμ΄λ€. λ°λΌμ μ¬μ©μκ° μ΄λ¬ν μ€μλ₯Ό νμ§ μλλ‘ λ§λ κ²μ΄ μ€μνλ€.
- λ λ€λ₯Έ μ¬λ‘λ‘ MS μ€νΌμ€μμ μ§μνλ μλ μ μ₯(autosave) κΈ°λ₯μ΄ μλ€. μ΄ κΈ°λ₯μ MS μ€νΌμ€ νλ‘κ·Έλ¨μΌλ‘ μμ νλ μ€ μ μ λ±μ μ΄μ λ‘ κ°μκΈ° μ»΄ν¨ν°κ° μ’ λ£λμμ λλ₯Ό λλΉνμ¬ μμ ν κ²μ μ€κ°μ μλμΌλ‘ μ μ₯ν΄μ£Όλ κΈ°λ₯μ΄λ€. μλ μ μ₯ κΈ°λ₯μ κ²μμ΄λ μν κ±°λ λ± μμ λ§€μ° μ€μν μν μ νκ³ μλ€.
- μ΄λ¬ν μ¬λ‘μ²λΌ νλ‘κ·Έλ¨μ μ€μ λ‘ μμ±νκ³ μ€ννλ€ λ³΄λ©΄ μμνμ§ λͺ»ν μΌμ΄ λ§μ΄ λ°μ νλλ°, μ΄λ₯Ό μμΈλΌκ³ νλ€.
μμΈ‘ κ°λ₯ν μμΈμ μμΈ‘ λΆκ°λ₯ν μμΈ
μμΈ‘ κ°λ₯ν μμΈ
- μμΈ‘ κ°λ₯ν μμΈλ λ°μ μ¬λΆλ₯Ό κ°λ°μκ° μ¬μ μ μΈμ§ν μ μλ μμΈμ΄λ€.
- μλ₯Ό λ€μ΄ ‘ν μ€νΈ λ°μ€μ μ¬μ©μκ° μ€μλ‘ μλͺ»λ κ°μ μ λ ₯ν κ² κ°λ€.’λΌλ κ° ‘μ¬μ©μκ° μ€μ λ‘ μ‘΄μ¬νμ§ μλ νμΌμ μ μ₯ν κ² κ°λ€.’ λ±μ κ°λ°μκ° μ¬μ μ μμΈ‘ν μ μλ κ²μΌλ‘ μΌλ§λ μ§ μμΈ μ²λ¦¬κ° κ°λ₯νλ€.
- μ¦, κ°λ°μλ μμΈλ₯Ό μμΈ‘νμ¬ λͺ μμ μΌλ‘ μμΈκ° λ°μν λλ μ΄λ»κ² λμνλΌκ³ λμ± μ λ§λ ¨ν΄ λμ μ μλ€.
- λνμ μΌλ‘ μ¬μ©μ μ λ ₯λμ κ°μ΄ μλͺ» μ λ ₯λμλ€λ©΄ ifλ¬Έμ μ¬μ©νμ¬ μλͺ» μ λ ₯νμλ€κ³ μλ΅νλ λ°©λ²μ΄ μλ€. μμ£Ό μ½κ² λμμ΄ κ°λ₯νλ€.
μμΈ‘ λΆκ°λ₯ν μμΈ
- λνμ μΌλ‘ λ§€μ° λ§μ νμΌμ μ²λ¦¬ν λ λ¬Έμ κ° λ°μν μ μλ€.
- μλ₯Ό λ€μ΄ 5,000κ°μ νμΌμ΄ ν λλ ν°λ¦¬μ μκ³ κ·Έ νμΌλͺ λ€μ λ겨 λ°μ νμΌμ νλμ© μ½μ΄λ€μ΄λ νλ‘κ·Έλ¨μ λ§λ λ€κ³ νμ. κ·Έλ°λ° νμΌμ μ½λ€κ° μ΄λ€ νμΌμ μ€μ λ‘ μμ λ΄μ©μ΄ μμ μ μλλ°, μ΄λ° κ²½μ°μλ μ΄λ€ μ²λ¦¬λ₯Ό νμ§ λͺ»νκ³ λμ΄κ°λ€. λλ νμΌμ μ½κ³ μλλ° λ€λ₯Έ μ¬μ©μμ μν΄ ν΄λΉ νμΌμ΄ μμ λμ΄ μ½μ΄λ€μ΄λ μμ μ ν΄λΉ νμΌμ΄ μ¬λΌμ§λ κ²½μ°λ λ°μν μ μλ€. μ΄μΈμλ μΈλ±μ€μ λ²μλ₯Ό λμ΄κ°λ 리μ€νΈμ νΈμΆμ΄λ μ μλ₯Ό 0μΌλ‘ λλλ κ² λ±μ λν λ¬Έμ κ° μκΈΈ μ μλ€.
- μ΄λ¬ν μμΈ‘ λΆκ°λ₯ν μμΈκ° λ°μνμ κ²½μ° μΈν°ν리ν°κ° μλμΌλ‘ μ΄κ²μ΄ μμΈλΌκ³ μ¬μ©μμκ² μλ €μ€λ€. λλΆλΆμ μ΄λ¬ν μμΈκ° λ°μνλ©΄μ νλ‘κ·Έλ¨μ΄ μ’ λ£λλ―λ‘ μ μ ν μ‘°μΉλ₯Ό ν΄μΌ νλ€. λ¨μν νμΌμ΄ μλ€κ³ μλ €μ£Όλ κ²μ΄ μλλΌ νμΌμ΄ μκΈ° λλ¬Έμ μΆκ°λ‘ ν΄μΌ νλ μ‘°μΉκ° μλ€λ©΄ κ·Έκ²μ μμΈ μ²λ¦¬ ꡬ문μ μΆκ°ν΄μΌ νλ€. μλ₯Ό λ€μ΄, μ²λ¦¬ν΄μΌ ν νμΌμ΄ μλ€ λ©΄ νμΌμ΄ μλ€κ³ κΈ°λ‘μ λ¨κΈ°κ³ λ€μ νμΌμ μ²λ¦¬νλ λ°©μμΌλ‘ νλ‘κ·Έλ¨μ μμ±ν΄μΌ νλ€.
- μμΈ μ²λ¦¬κ° μ€μν μ΄μ λ νλ‘κ·Έλ¨λ μΌμ’ μ μ νμ΄κΈ° λλ¬Έμ΄λ€. μ°λ¦¬κ° μ νμ μ¬μ©ν λ μμΈν μ€λͺ μ΄ μκ±°λ μ¬μ©μ μΉνμ μ΄μ§ μμ κ²½μ° λ§€μ° νκ° λ μ μλ€. TV 리λͺ¨μ»¨μ μ‘°κΈ λ§ μλͺ» λλ¬λ TVκ° κΊΌμ§λ€λ©΄ μ¬μ©μλ κ·Έ νμ¬ μ νμ λλ μ¬μ©νμ§ μμ κ²μ΄λ€. μ΄λ¬ν μ΄μ λ‘ μμΈ μ²λ¦¬λ μ νμ μμ±λλ₯Ό λμ΄λ μ°¨μμμ λ§€μ° μ€μν κ°λ μ΄λ€.
μμΈ μ²λ¦¬ ꡬ문
- μμΈ μ²λ¦¬ ꡬ문μ νμ΄μ¬μΌλ‘ ꡬννλ λ°©λ²
try-except문
try:
μμΈ λ°μ κ°λ₯ μ½λ
except μμΈ νμ
:
μμΈ λ°μ μ μ€νλλ μ½λ
- νμ΄μ¬μμ μμΈ μ²λ¦¬μ κΈ°λ³Έ λ¬Έλ²μ try-exceptλ¬Έμ΄λ€.
- μ¬μ€ λλΆλΆμ νλ‘κ·Έλλ° μΈμ΄μμ μμΈλ₯Ό μ²λ¦¬νλ ꡬ문μ μ΄μ λΉμ·νλ€. μμ±νλ λ°©μμ tryλ¬Έμ μμΈ λ°μμ΄ μμλλ μ½λλ₯Ό μ κ³ , exceptλ¬Έμ μμΈ λ°μ μ λμνλ μ½λλ₯Ό μμ±νλ€.
for i in range(10):
try:
print(10 / i)
except ZeroDivisionError:
print("Not divided by 0")
Not divided by 0
10.0
5.0
3.3333333333333335
2.5
2.0
1.6666666666666667
1.4285714285714286
1.25
1.1111111111111112
- μμ μ½λλ 0λΆν° 9κΉμ§μ μ«μλ₯Ό i μ νλμ© ν λΉ νλ©΄μ 10 μΌλ‘ λλ κ°μ μΆλ ₯νλ μ½λμ΄λ€.
- μ΄ νλ‘κ·Έλ¨μ 1μ΄ μλ 0λΆν° μμνλ€ λ³΄λ 10μ 0μΌ λ‘ λλλ κ³μ°μ΄ κ°μ₯ λ¨Όμ μ€νλλ€. μ²μμ ‘10δΈ0(10/0)’μ κ³μ°νλ©΄ 0μΌλ‘λ 10μ λλ μ μμΌλ―λ‘ μμΈκ° λ°μνλ€.
- νμ§λ§ μ΄λ¬ν μμΈμ λ°μμ μμ κ°λ₯νλ―λ‘ tryλ¬ΈμΌλ‘ ν΄λΉ μμΈμ λ°μμ λλΉν μ μλ€. ZeroDivisionError, μ¦ 0μΌλ‘ λλ μ§λ κ²½μ°μλ exceptλ¬Έ μμΌλ‘ λ€μ΄κ° ν΄λΉ ꡬ문μ μ²λ¦¬νλ€. μ¬κΈ°μλ print("Not divided by 0") μ½λ κ° μ€νλλ€.
- κ·Έλ°λ° λ§μ½ μ¬κΈ°μ tryλ¬Έμ΄ forλ¬Έ λ°μ μμΌλ©΄ λ°λ³΅λ¬Έ μ μ²΄κ° μ’ λ£λλ€. μ¦, tryλ¬Έ λ΄λΆμμ μμΈκ° λ°μνλ©΄ exceptλ¬Έ μμμ μλ μ½λκ° μ€νλκ³ try- exceptλ¬Έμ΄ μ’ λ£λλ€. μ΄λ κ² tryλ¬Έμ μ λΉν κ³³μ μ½μ νμ¬ μμΈ μ²λ¦¬λ₯Ό ν μ μλ€.
[μ°Έκ³ ] μμΈμ μ’ λ₯μ μμΈμ λν μλ¬ λ©μΈμ§
- μμΈμ μ’
λ₯
- νμ΄μ¬μμ κΈ°λ³Έμ μΌλ‘ μ¬μ©ν μ μλ μμΈμ μ’ λ₯λ λ€μνλ€.
- λ¨Όμ , IndexErrorλ 리μ€νΈμ μΈλ±μ€ λ²μλ₯Ό λμ΄κ° λ μ²λ¦¬νλ μμΈμ΄λ€. μ½λλ₯Ό μμ±νλ€ λ°μ΄ν°κ° 150κ°μΈ μ€ μμλλ°, 151 κ°κ° μμ΄ μ²λ¦¬λ₯Ό μμ²νλ κ²½μ° IndexErrorκ° νΈμΆλλ€.
- λ€μμΌλ‘ NameErrorλ μ½λμμ νΈμΆνλ νΉλ³ν λ³μλͺ μ΄ μμ λ νΈμΆλλ μλ¬μ΄λ€. μ΄ μΈμ΄κ° μΈν°νλ¦¬ν° μΈμ΄μ΄λ€ 보λ μ‘΄μ¬νμ§ μμ λ³μλ μ€ν μμ μμ μ‘μλΈλ€ μ»΄νμΌλ¬ μΈμ΄μ κ²½μ° μ€ν μ μ΄λ μ»΄νμΌλ¬ μμ μ μλ¬κ° λ°μνλ κ²κ³Όλ λμ‘°μ μ΄λ€.
- κ·Έ μΈμ νμ΄μ¬μμ μμ£Ό μ¬μ©νλ λ΄μ₯ μμΈλ μλμ κ°λ€.
IndexError 리μ€νΈμ μΈλ±μ€ λ²μλ₯Ό λμ΄κ° λ NameError μ‘΄μ¬νμ§ μλ λ³μλ₯Ό νΈμΆν λ ZeroDivisionError 0μΌλ‘ μ«μλ₯Ό λλ λ ValueError λ³νν μ μλ λ¬Έμλ μ«μλ₯Ό λ³νν λ FileNotFoundError μ‘΄μ¬νμ§ μλ νμΌμ νΈμΆν λ - μλ¬μ λν μλ¬ λ©μΈμ§
- λ΄μ₯ μμΈμ ν¨κ» μ¬μ©νκΈ° μ’μ κ²μ΄ μμΈμ λν μλ¬ λ©μμ§μ΄λ€.
- μλ μ½λμ κ°μ΄ exceptλ¬Έμ λ§μ§λ§μ ‘as e’ λλ ‘as λ³μλͺ ’μ μ λ ₯νκ³ , ν΄λΉ λ³μλͺ μ μΆλ ₯νλ©΄ λλ€. μ€ν κ²°κ³Ό 'division by zero’λΌλ μλ¬ λ©μμ§λ₯Ό νμΈν μ μλλ°, μ΄ μλ¬λ©μμ§λ νμ΄μ¬ κ°λ°μλ€μ΄ μ¬μ μ μ μν κ²μΌλ‘, νΉμ ν μλ¬λ₯Ό λΉ λ₯΄κ² μ΄ν΄ν μ μλλ‘ ν΄μ€λ€.
for i in range(10):
try:
print(10 / i)
except ZeroDivisionError as e:
print(e)
print("Not divided by 0")
division by zero
Not divided by 0
10.0
5.0
3.3333333333333335
2.5
2.0
1.6666666666666667
1.4285714285714286
1.25
1.1111111111111112
try-except-else λ¬Έ
- try-except-elseλ¬Έμ if-else λ¬Έκ³Ό λΉμ·νλ°, ν΄λΉ μμΈκ° λ°μνμ§ μλ κ²½μ° μνν μ½λλ₯Ό elseλ¬Έμ μμ±νλ©΄ λλ€.
#try-except-elseλ¬Έμ κΈ°λ³Έ νν
try:
μμΈ λ°μ κ°λ₯ μ½λ
except μμΈ νμ
:
μμΈ λ°μ μ μ€νλλ μ½λ
else:
μμΈκ° λ°μνμ§ μμ λ μ€νλλ μ½λ
- μ μ½λλ 10μ iλ‘ λλλ μ½λλ₯Ό μ€ννμ¬ μ λλ‘ λλμμ κ²½μ° elseλ¬Έμ μν κ²°κ³Όκ° νλ©΄μ μΆλ ₯λκ³ , κ·Έλ μ§ μμ κ²½μ° exceptλ¬Έμ μν΄ μ¬μ μ μ μλ μλ¬κ° λ°μνλ μ½λμ΄λ€.
for i in range(10):
try:
result = 10 / i
except ZeroDivisionError:
print("Not divided by 0")
else:
print(10 / i)
Not divided by 0
10.0
5.0
3.3333333333333335
2.5
2.0
1.6666666666666667
1.4285714285714286
1.25
1.1111111111111112
- μ΄ μ½λμμμ²λΌ μλ¬κ° λ°μνμ§ μλ κ²½μ°μ μνλ¬Έμ μ μν΄ λμΌλ©΄ μλ¬κ° λ°μνμ§ μλ κ²½μ°μλ μΌμ΄λ μΌμ μ¬μ©μκ° μ νν μμΈ‘ν μ μλ€λ μ₯μ μ΄ μλ€. νμ§λ§ μΌλ°μ μΌλ‘ λ§μ΄ μ¬μ©νμ§ μλ μ½λμ΄λ©° μμΈκ° λ§μ΄ λ°μνλ μν©μμ κ°νΉ μ¬μ©ν μ μλ μ½λμ΄λ€. μλ₯Ό λ€μ΄, μλ²μ μνκ° λΆμν΄ μ°κ²° λκΉ (connection loss)μ΄ μμ£Ό λ°μνλ€λ©΄ μ°κ²°μ΄ λμμ λ μ²λ¦¬ν μ½λλ₯Ό λͺ νν νλ κ²μ΄ μ’λ€.
try-except-finally문
- try-except-finallyλ¬Έμμ finallyλ¬Έμ try—exceptλ¬Έ μμ μλ μν μ½λκ° μλ¬΄λ° λ¬Έμ μμ΄ μ’ λ£λμμ κ²½μ° μ΅μ’ μΌλ‘ νΈμΆνλ μ½λμ΄λ€. forλ¬Έμμ μ¬μ©νλ finallyλ¬Έκ³Ό μ©λκ° λΉμ·νλ€κ³ μκ°νλ©΄ λλ€
#try-except-finallyλ¬Έμ κΈ°λ³Έ νν
try:
μμΈ λ°μ κ°λ₯ μ½λ
except μμΈ νμ
:
μμΈ λ°μ μ μ€νλλ μ½λ
finally:
μμΈ λ°μ μ¬λΆμ μκ΄μμ΄ μ€νλλ μ½λ
- try-except-finallyλ¬Έ μ½λ
try:
for i in ranged(1, 10):
result =10 // i
print(result)
except ZeroDivisionError:
print("Not divided by 0")
finally:
print("μ’
λ£λμλ€.")
10
5
3
2
2
1
1
1
1
μ’
λ£λμλ€.
- μ΄ μ½λλ tryλ¬Έμ΄ forλ¬Έ λ°μ μ μΈλμ΄ μκ³ , i κ° 1λΆν° μμνλ€.
- μ¬μ€μ ZeroDivision- Errorκ° λ°μν μ μλ μ½λμ΄λ€.
- μ΄λ¬ν μ½λλ₯Ό μμ±νλ©΄ exceptλ¬Έμ μ€νλμ§ μκ³ λ§μ§λ§μΌλ‘ finallyλ¬Έλ§ μ€νλλ€. try-except-finallyλ¬Έλ forλ¬Έμμ finallyλ¬Έμ μ¬μ©νλ κ²κ³Ό λμΌνκ² μμΈ λ°μ μ¬λΆμ μκ΄μμ΄ λ°λμ μ€νλλ μ½λμ΄λ€.
raise λ¬Έ
- raiseλ¬Έμ try—exceptλ¬Έκ³Ό λ¬λ¦¬ νμν λ μμΈλ₯Ό λ°μμν€λ μ½λμ΄λ€.
- while Trueλ¬Έμ μ¬μ©ν΄ κ³μ λ°λ³΅λ¬Έμ λλ €μΌ νλ νλ‘κ·Έλ¨μ μμ±νλ€κ³ κ°μ νμ. μλλ°© μ»΄ν¨ν°μ κ³μ 무μμΈκ°λ₯Ό μμ²ν΄μΌ νλ νλ‘κ·Έλ¨μ΄κ³ , μμ²ν λλ§λ€ λΉμ©μ΄ μ²κ΅¬λλ€.
- λ§μ½ μλλ°© μ»΄ν¨ν°κ° κ³ μ₯λκ±°λ λ¬Έμ κ° μ겨 μ¬μ©νμ§ λͺ»νκ² λλ μν©μ΄ λ°μνλ€λ©΄ μ΄λ»κ² ν΄μΌ ν κΉ? νλ‘κ·Έλ¨μ μμ±ν λ μλλ°© μ»΄ν¨ν°μμ μλ΅μ΄ μλ€λ©΄ κ°μ λ‘ νλ‘κ·Έλ¨μ΄ μ’ λ£λλλ‘ μμΈλ₯Ό λ°μμν¬ μ μλ€. λ€μμ raiseλ¬Έμ κΈ°λ³Έ ννμ΄λ€.
π‘ raise μμΈ νμ (μμΈ μ 보)
- raise λ¬Έ μ½λ
while True:
value = input("λ³νν μ μκ°μ μ
λ ₯ν΄ μ£ΌμΈμ: ")
for digit in value:
if digit not in "0123456789":
raise ValueError("μ«μκ°μ μ
λ ₯νμ§ μμμ΅λλ€.")
print("μ μκ°μΌλ‘ λ³νλ μ«μ-", int(value))
λ³νν μ μκ°μ μ
λ ₯ν΄ μ£ΌμΈμ: 10
μ μκ°μΌλ‘ λ³νλ μ«μ -10
λ³νν μ μκ°μ μ
λ ₯ν΄ μ£ΌμΈμ: ab
Traceback (most recent call last):
File "raise.py", line 5, inγmoduleγ
raise ValueError("μ«μκ°μ μ
λ ₯νμ§ μμμ΅λλ€.")
ValueError: μ«μκ°μ μ
λ ₯νμ§ μμμ΅λλ€.
- μ μ½λλ while Trueλ¬ΈμΌλ‘ λ°λ³΅λ¬Έμ΄ κ³μ λμκ°λ μνμμ μ¬μ©μμκ² μ λ ₯μ λ°λλ€.
- νμ§λ§ μ¬μ©μκ° μ λ ₯ν κ°μ΄ μ«μκ° μλ κ²½μ°μλ μ«μκ°μ μ λ ₯νμ§ μμλ€κ³ μΆλ ₯νλ©΄μ νλ‘κ·Έλ¨μ μ’ λ£νλ κ²μ λͺ©μ μΌλ‘ μμ±λ νλ‘κ·Έλ¨μ΄λ€. μ΄λ, μλ¬μ μ’ λ₯λ ValueErrorλ‘ μ¬μ©μκ° μ λ ₯μ μλͺ»νμ λ μ λ ₯μ΄ μλͺ»λ κ²μ μλ €μ£Όλ©΄μ μ’ λ£νλ€.
assert λ¬Έ
- 미리 μμμΌ ν μμΈ μ λ³΄κ° μ‘°κ±΄μ λ§μ‘±νμ§ μμ κ²½μ° μμΈλ₯Ό λ°μμν€λ assertλ¬Έ
- μμμ ifλ¬Έκ³Ό ν¨κ» raiseλ¬Έμ μ¬μ©νμ¬ κ°μ λ‘ μμΈλ₯Ό λ°μμμΌ°λλ°, assertλ¬Έμ λ§€μ° κ°λ¨νκ² μμΈλ₯Ό λ°μ μν¬ μ μλ€. assertλ¬Έμ True λλ Falseμ λ°νμ΄ κ°λ₯ν ν¨ μλ₯Ό μ¬μ©νλ©΄ λλ€. λ§μ½ Falseκ° λ°νλλ©΄ μμΈκ° λ°μνλ€. λ€μμ assertλ¬Έμ κΈ°λ³Έ νν μ΄λ€.
π‘ assert μμΈ μ‘°κ±΄
- assert λ¬Έ μ½λ
def get_binary_number(decimal_number):
assert isinstance(decimal_number, int)
return bin(decimal_number)
print(get_binary_number(10))
print(get_binary_number("10"))
0b1010 #4νμ€νκ²°κ³Ό
Traceback (most recent caU last): #5ν μ€ν κ²°κ³Ό
File "<C:/.../assert.py>", line 5, in <module>
print (get_binary_number("10"))
File "C:/.../assert.py", line 2, in get_binary_number
assert isinstance(decimal_number, int)
AssertionError
- 1νμμ get_binary_number() ν¨μλ₯Ό ν΅ν΄ μμ§μλ₯Ό μ λ ₯λ°λλ€.
- νμ§λ§ ν¨μλ₯Ό μ¬μ©νλ μ¬μ©μκ° μλͺ»λ μΈμ, μλ₯Ό λ€μ΄ λ¬Έμμ΄κ°μ μ λ ₯ν μλ μλ€. μ΄λ₯Ό λ°©μ§νκΈ° μν΄ 2νμμ assertλ¬Έμ μ¬μ©νμλ€.
- isinstance() ν¨μλ μ λ ₯λ κ°μ΄ λ€μμ λμ€λ ν΄λμ€μ μΈμ€ν΄μ€μΈμ§λ₯Ό νμΈνλ ν¨μμ΄λ€. μ΄ μ½λμμ decimal_number λ³μκ° μ μν μΈμ§λ 4γ 5νμμ νμΈν μ μλ€.
- assertλ¬Έμ μ½λλ₯Ό μμ±ν λ μλͺ»λ μ λ ₯ μ¬λΆλ₯Ό μ¬μ μ νμΈνμ¬ λμ€μ νμ μλ μ°μ°μ λ§μμ£Όκ³ , κ²°κ΅ λ€λ₯Έ μ¬λμ΄ λ§λ μ½λλ₯Ό μ¬μ©νλλ° μ’μ κ°μ΄λκ° λλ€.
νμΌμ κ°λ
- νμΌ(file)μ μ»΄ν¨ν°λ₯Ό μ€νν λ κ°μ₯ κΈ°λ³Έμ΄ λλ λ¨μμ΄λ€.
- νλ‘κ·Έλ¨μ μ€ννλ κ²μ λ νμΌμ μ€ννλ κ²μ΄λ€. νμ§λ§ μΌλ°μ μΌλ‘ μλμ GUI νκ²½μμλ νμΌμ μ€ννλ κ²μ΄ μλλΌ, μλμ κ°μ μμ΄μ½μ λλΈν΄λ¦νμ¬ μ€ννλ€.
μ¬μ€ μ΄κ²λ μμ΄μ½μ λλΈν΄λ¦νμ¬ νλ‘κ·Έλ¨μ μ€ννλ κ²μ²λΌ 보μ΄μ§λ§ μ€μ λ‘λ μμ΄μ½ κ³Ό μ°κ²°λ νμΌμ΄ μ€νλλ ꡬ쑰μ΄λ€. μμ΄μ½μμ λ§μ°μ€ μ€λ₯Έμͺ½ λ²νΌμ ν΄λ¦νκ³ [μμ±]μ μ ννλ©΄ μλμ κ°μ νλ©΄μ λ³Ό μ μλ€.
- μμ± νλ©΄μμ ‘λμ’ νλͺ©μ μ€νλλ νμΌμ κ²½λ‘κ° μλ€. μ΄ κ²½λ‘λ₯Ό κ·Έλλ‘ λ³΅μ¬νμ¬ μ½μ μ°½μ λΆμ¬ λ£κ³ μ€ννλ©΄ ν΄λΉ νλ‘κ·Έλ¨μ΄ μ€νλλ€. λͺ¨λ νλ‘κ·Έλ¨μ μ΄λ κ² νμΌμ΄ μκΈ° λ λ¬Έμ μ€νλλ κ²μ΄λ€.
- λ¨μ§ μ¬μ©μκ° νΈνκ² μ°κΈ° μν΄ κ°λ¨ν μμ΄μ½μ λ§λ€μ΄ μ¬μ©ν λΏμ΄μ§, κ·Έ μ΄λ©΄μλ λͺ¨λ νμΌμ΄ μ¨μ΄ μλ€κ³ ν μ μλ€.
[μ°Έκ³ ]
- νμΌμ μ΄ν΄νκΈ° μν΄ λ¨Όμ νμΌκ³Ό λλ ν°λ¦¬μ λν΄ μμ보μ.
- μλμμ μ¬μ©νλ νμκΈ°λ [μλ]μ [E]ν€λ₯Ό ν¨κ» λλ₯΄λ©΄ λνλλ€. μ΄κ²μ΄ κΈ°λ³Έ νμΌ μμ€ν μ΄λ€. κΈ°λ³Έμ μΌλ‘ νμΌ μμ€ν μ νμΌκ³Ό λλ ν°λ¦¬λ‘ ꡬλΆνλλ°, μλμμλ λλ ν°λ¦¬λΌλ μ©μ΄ λμ ν΄λλΌλ μ©μ΄λ₯Ό μ¬μ©νλ€.
- λλ ν°λ¦¬λ νμΌμ λ΄λ λ νλμ νμΌλ‘, μ¬λ¬ νμΌμ ν¬ν¨ν μ μλ κ·Έλ¦μ΄λ€.
- νμΌκ³Ό λ€λ₯Έ λλ ν°λ¦¬λ₯Ό ν¬ν¨ν μ μμΌλ―λ‘ μ§μ νλ‘κ·Έλ¨μ μ€ννμ§λ μμ§λ§ λ€λ₯Έ νμΌλ€μ ꡬλΆνκ³ λ Όλ¦¬μ μΈ λ¨μλ‘ νμΌμ λ¬Άμ μ μλ€.
- νμΌμ μ»΄ν¨ν°μμ λ Όλ¦¬μ μΌλ‘ μ 보λ₯Ό μ μ₯νλ κ°μ₯ μμ λ¨μμ΄λ€. νμΌμ μΌλ°μ μΌλ‘ νμΌλͺ κ³Ό νμ₯μλ‘ κ΅¬λ³ νλ€. μλ₯Ό λ€μ΄, νμ΄μ¬ νμΌλ‘ μ μ₯ κ΄λ¦¬νλ νμΌλ€μ pyλΌλ νμ₯μλ₯Ό κ°μ§κ³ μλ€. νμ₯μλ κ·Έ νμΌμ μ°μμ ꡬλΆνλ κΈμλ‘, hwp, ppt, doc κ°μ κ²λ€μ΄ μλ€.
- νμΌμ λ€λ₯Έ μ 보λ₯Ό μ μ₯νκ±°λ νλ‘κ·Έλ¨μ μ€ννκ³ λ€λ₯Έ νλ‘κ·Έλ¨μ΄ μ€νλ λ νμν μ 보λ₯Ό μ 곡νλ λ± μ¬λ¬ κ°μ§ μν μ νλ€. νν νμκΈ° νλ‘κ·Έλ¨μμ νμΌκ³Ό λλ ν°λ¦¬λ νΈλ¦¬ κ΅¬μ‘°λ‘ ννλλλ°, κ·Έ μ΄μ κ° λ°λ‘ λλ ν°λ¦¬μ νμΌμ΄ μλ‘ ν¬ν¨ κ΄κ³λ₯Ό κ°μ§κΈ° λλ¬Έμ΄λ€.
νμΌμ μ’ λ₯
- μ»΄ν¨ν°μμ νμΌμ μ’ λ₯λ λ€μνμ§λ§ κΈ°λ³Έμ μΌλ‘ λ°μ΄λ리 νμΌκ³Ό ν μ€νΈ νμΌ λ κ°μ§λ‘ λΆλ₯ν μ μλ€.
- λ°μ΄λ리 νμΌμ μ»΄ν¨ν°λ§ μ΄ν΄ν μ μλ μ΄μ§ μ λ³΄λ‘ μ μ₯λ νμΌμ΄λ€. μ¦, λΉνΈ ννλ‘ μ μ₯λμ΄ λ©λͺ¨μ₯μΌλ‘ μ΄λ©΄ λ΄μ©μ΄ 보μ΄μ§ μκ±°λ λ΄μ©μ νμΈν μ μλ νμΌμ λ§νλ€. μ 보 λ₯Ό ν¨μ¨μ μΌλ‘ μ μ₯νκΈ° μν΄ νμΌ μμ€ν λλΆλΆμ μ΄μ§ μ λ³΄λ‘ μ μ₯λλ€. μμ μ΄λ μλ νλ‘κ·Έλ¨λ€μ΄ λͺ¨λ μ΄μ§ μ λ³΄λ‘ μ μ₯λ μ΄μ§ νμΌμ΄λ€.
- ν μ€νΈ νμΌμ μ¬λμ΄ μ΄ν΄ν μ μλ λ¬Έμμ΄λ‘ μ μ₯λ νμΌμ΄λ€. μ΄λ¬ν νμΌμ λ©λͺ¨μ₯μΌλ‘ κ·Έ λ΄μ©μ νμΈν μ μλ€. μ§κΈκΉμ§ μμ±ν νμ΄μ¬ νμΌμ΄λ HTML μ½λ νμΌ λ±λ λͺ¨λ ν μ€νΈ νμΌμ΄λ€. μκ°λ³΄λ€ λ§μ νμΌμ΄ ν μ€νΈ νμΌλ‘ μ μ₯λμ΄ μλ€.
λ°μ΄λ리 νμΌ ν μ€νΈ νμΌ
- μ»΄ν¨ν°λ§μ΄ν΄ν μμλννμΈ μ΄μ§(λ²)νμμΌλ‘ μ μ₯ λ νμΌ |
- μΌλ°μ μΌλ‘ λ©λͺ¨μ₯μΌλ‘ μ΄λ©΄ λ΄μ©μ΄ κΉ¨μ Έ 보μ(λ©λͺ¨μ₯μμ ν΄μ λΆκ°)
- μμ μ΄λ μλμ κ°μ νλ‘κ·Έλ¨ νμΌ | - μ¬λλ μ΄ν΄ν μ μλ ννμΈ λ¬Έμμ΄ νμ μΌλ‘ μ μ₯λ νμΌ, λ©λͺ¨μ₯μΌλ‘ μ΄λ©΄ λ΄μ© νμΈμ΄ κ°λ₯
- λ©λͺ¨μ₯μ μ μ₯λ νμΌμ΄λ HTML νμΌ, νμ΄μ¬ μ½λ νμΌλ± |
- μ¬κΈ°μ μμμΌ ν μ μ ν μ€νΈ νμΌλ μ¬μ€ μ»΄ν¨ν°κ° μ²λ¦¬νκΈ° μν΄ λ°μ΄λ리 ννλ‘ μ μ₯ λ νμΌμ΄λΌλ κ²μ΄λ€.
- μ¬λμ΄ νμΈν μ μλ νμΌμ΄λΌκ³ ν΄μ μ»΄ν¨ν°κ° κ·Έλ° ννλ‘ μ μ₯λ νμΌμ νμΈν μ μλ κ²μ μλλ€. ν μ€νΈνμΌμ μ»΄ν¨ν°κ° μ΄ν΄ν μ μλ ννλ‘ λ³κ²½νμ¬ μ μ₯λλ€.
- νν μ΄λ κ² λ³κ²½νλ κΈ°μ€μ μμ€ν€= ASCIIλ μ λμ½λUnicodeλ‘ νκ³ , μ΄ νμ€μ λ°λΌ ν μ€νΈ νμΌμ μ»΄ν¨ν°κ° μ΄ν΄ν μ μλλ‘ λ°κΎΌλ€. μ¦, μ»΄ν¨ν°λ μ€μ§ μ΄μ§μλ§ μ΄ν΄ν μ μμΌλ―λ‘ λͺ¨λ λ¬Έμμ΄κ°λ μ λΆ μ΄μ§μλ‘ λ³κ²½νμ¬ μ μ₯νλ€.
- μλ₯Ό λ€μ΄, ‘AλΌλ λ¬Έμμ΄κ°μ΄ μ΄μ§μλ‘ 0100010μ΄λ€.’λΌλ νμ€μ λ°λΌ μ°λ¦¬ λμ Aλ‘ λ³΄μ΄λ ν μ€νΈλ μ€μ λ‘ 0100010μΌλ‘ μ μ₯λλ€. λ°λλ‘ 0100010μΌλ‘ μ μ₯λμ΄ μλ ν μ€νΈ νμΌμ λΆλ¬μ¬ λ νμ€μ λ°λΌ Aλ‘ λ€μ λ³κ²½νμ¬ λ³΄μ¬μ€λ€.
[μ°Έκ³ ]
- λͺ¨λ ν μ€νΈλ μ΄μ§μλ‘ λ³νλμ΄ μ μ₯λλ―λ‘ κΈ°λ³Έμ μΈ λ³ν νμ€μ΄ λ§λ€μ΄μ‘κ³ κ·Έ νμ€μ μ¬μ©νμ¬ μ 보λ₯Ό μ½κ² μ μ₯ν μ μλ€. μ΄λ¬ν νμ€μ μμ€ν€μ½λλ μ λμ½λμ²λΌ λλΌλ³, μΈμ΄λ³λ‘ μ‘΄μ¬νλ€. μ΄λ€ ν μ€νΈλ₯Ό μ΄λ¬ν 체κ³μ λ§κ² μ μ₯νλ κ²μ μΈμ½λ© (encoding)μ΄λΌκ³ νλ€.
νμΌ μ½κΈ°
- νμ΄μ¬μμλ ν μ€νΈ νμΌμ λ€λ£¨κΈ° μν΄ open() ν¨μλ₯Ό μ¬μ©νλ€.
- μΌλ°μ μΌλ‘ open() ν¨μμ νμΌλͺ , νμΌ μ΄κΈ° λͺ¨λλ₯Ό μ λ ₯νλ©΄ κ·Έ μ΅μ μ λ°λΌ νμΌμ λ€λ£° μ μλ€.
f = open("νμΌλͺ
", "νμΌ μ΄κΈ° λͺ¨λ")
f.close()
- νμΌμ μ¬λ λͺ¨λμλ μ½κΈ° λͺ¨λ, μ°κΈ° λͺ¨λ, μΆκ° λͺ¨λ λ±μ΄ μλ€. νμ΄μ¬μμλ μν©μ λ°λΌ μ΄λ¬ν νμμ μ‘°ν©νμ¬ νμΌμ λ€λ£¨κ² λλ€.
μ’ λ₯ μ€λͺ
r | μ½κΈ° λͺ¨λ:νμΌμ μ½κΈ°λ§ ν λ μ¬μ© |
w | μ°κΈ° λͺ¨λ:νμΌμ λ΄μ©μ μΈ λ μ¬μ© |
a | μΆκ° λͺ¨λ:νμΌμ λ§μ§λ§μ μλ‘μ΄ λ΄μ©μ μΆκ°ν λ μ¬μ© |
νμΌ μ½κΈ°
f = open ("dream.txt", "r")
contents = f.read()
print(contents)
f.close()
I have a dream a song to sing
to help me cope with anything
if you see the wonder of a fairy tale
you can take the future even
if you fail I believe in angels
something good in everything
- 1νμμ open() ν¨μ λ€μμ νμΌλͺ κ³Ό ‘r’μ μ λ ₯ν΄ νμΌμ λν μ 보λ₯Ό λ³μ fμ μ μ₯νμλ€. μ΄λ₯Ό μΌλ°μ μΌλ‘ νμΌ κ°μ²΄λΌκ³ νλ€.
- 2νμμ λ³μ fλ₯Ό μ΄μ©ν΄ read() ν¨μλ₯Ό μ€ννλ©΄ ν΄λΉ νμΌμ ν μ€νΈλ₯Ό contents λ³μμ λ¬Έμμ΄λ‘ μ μ₯νλ€.
- 3νμμλ contents λ³μμ λ΄μ©, μ¦ ‘dream.txt’ νμΌμ μλ ν μ€νΈλ₯Ό νλ©΄μ μΆλ ₯νλ€.
- 4νμμλ λ§μ§λ§μΌλ‘ close() ν¨μλ₯Ό μ¬μ©νμ¬ νμΌμ μ’ λ£νλ€.
- λλλ‘ ν μ€νΈ νμΌμ λ€λ£° λ μ΄λ―Έ μμ νκ³ μλ νμΌμ λ€λ₯Έ νλ‘κ·Έλ¨μμ λμμ νΈμΆνλ©΄ μλ¬κ° λ°μνλ€. μ΄λ κ² νλμ νμ΄μ¬ νλ‘κ·Έλ¨μ΄ νλμ νμΌμ μ¬μ©ν λ μ¬μ©μ μλ£νλ©΄ λ°λμ ν΄λΉ νμΌμ μ’ λ£ν΄μΌ νλ€.
with λ¬Έκ³Ό ν¨κ» μ¬μ©νκΈ°
- withλ¬Έκ³Ό ν¨κ» open() ν¨μλ₯Ό μ¬μ©ν μ μλ€.
- withλ¬Έμ λ€μ¬μ°κΈ°λ₯Ό νλ λμμλ open() ν¨μκ° μ μ§λκ³ , λ€μ¬μ°κΈ°κ° λλλ©΄ open() ν¨μλ μ’ λ£λλ λ°©μμ΄λ€.
- μ°¨μ΄μ μ close() ν¨μλ₯Ό λͺ μμ μΌλ‘ μ°μ§ μμλ νμΌμ μ¬μ©μ μ’ λ£ν μ μλ€λ μ μ΄λ€. νΉν ν΄λΉ νμΌ κ°μ²΄λ =λ‘ ν λΉνλ λ°©μμ΄ μλλΌ asλ¬Έμ μ¬μ©νμ¬ λ³μλͺ μ ν λΉ νλ€.
with open("dream.txt", "r") as my_file:
contents = my_file.read()
print(type(contents), contents)
<class 'str'> I have a dream a song to sing
to help me cope with anything
if you see the wonder of a fairy tale
you can take the future even
if you fail I believe in angels
something good in everything
ν μ€μ© μ½μ΄ 리μ€νΈνμΌλ‘ λ°ννκΈ°
- νμΌ μ 체μ ν μ€νΈλ₯Ό λ¬Έμμ΄λ‘ λ°ννλ read() ν¨μ λμ , readlines() ν¨μλ₯Ό μ¬μ©νμ¬ ν μ€μ© λ΄μ©μ μ½μ΄μ λ¬Έμμ΄ ννλ‘ μ μ₯ν μ μλ€.
- ν μ€μ κΈ°μ€μ \nμΌλ‘ λλμ΄μ§κ³ 리μ€νΈλ‘ λ°νλ λ forλ¬Έ λ± λ€μν ννλ‘ νμ©ν μ μλ€.
with open("dream.txt","r") as my_file:
content_list = my_file.readlines() # νμΌ μ 체λ₯Ό 리μ€νΈλ‘ λ°ν
print (type(content_list)) # μλ£ν νμΈ
print(content_list) # 리μ€νΈκ° μΆλ ₯
<class 'list'γ
['I have a dream a song to sing \\n', 'to help me cope with anything \\n', 'if you
see the wonder of a fairy tale \\n', 'you can take the future even \\n', 'if you
fail. I believe in angels \\n', 'something good in everything \\n']
μ€νν λλ§λ€ ν μ€μ© μ½μ΄ μ€κΈ°
- μ€νν λλ§λ€ μ°¨λ‘λλ‘ ν μ€μ© μ½μ΄μ€λ ν¨μμΈ readline()μ λν΄ μμ보μ.
- κΈ°μ‘΄ read() ν¨μλ νμΌμ ν λ² μ΄ λ νμΌμ μ²μλΆν° λκΉμ§ λͺ¨λ νμΌμ λ΄μ©μ μ½μ΄μ€λ ν¨μμ΄μ§λ§, readline() ν¨μλ νΈμΆλ λλ§λ€ ν μ€μ© μ½μ΄μ€λ νΉμ§μ΄ μλ€.
with openC'dream.txt", "r") as my_file:
i=0
while 1:
line = my_file.readline()
if not line:
break
print(str(i)+" === "+ line.replace("\\n","")) #ν μ€μ© κ° μΆλ ₯
i=i+1
0 === I have a dream a song to sing
1 === to help me cope with anything
2 === if you see the wonder of a fairy tale
3 === you can take the future even
4 ===ifyoufailIbelieveinangels
5 === something good in everything
- μ½λλ₯Ό 보면 3νμμ while 1λ‘ μ½λκ° νμ μνλλλ‘ λ§λ λ€μ, 4νμ line = my_file.readline()μΌλ‘ ν μ€μ© νμΌμ μ½μ΄λ€μΈλ€.
- λ§μ½ μ½μ΄μ¨ μ€μ λ΄μ©μ΄ μλ€λ©΄ 5νμ if not line: break μ½λμ μν΄ λ°λ³΅λ¬Έμ΄ μ’ λ£λμ΄ νμΌ μ½κΈ°λ₯Ό μ’ λ£νλ€. νμ§λ§ νμΌμ λ¨μ λ΄μ©μ΄ μλ€λ©΄ whileλ¬Έμ΄ κ³μ μ€νλλ©΄μ λͺ¨λ μ½λλ₯Ό λ€ μ½μ΄μ€κ² λλ€. μΌλ°μ μΌλ‘ νμΌμ λ΄μ©μ μ°Ύλ€κ° μ€κ°μ λ©μΆ°μΌ ν νμκ° μλ λμ©λ λ°μ΄ν°λ μμ κ°μ μ½λλ₯Ό λ§μ΄ μ¬μ©νλ€.
νμΌμ μ μ₯λ κΈμμ ν΅κ³ μ 보 μΆλ ₯νκΈ°
- λλ‘λ νμΌμ μ μ₯λ ν μ€νΈμ ν΅κ³ μ 보λ₯Ό μ½μ΄μμΌ ν λκ° μλ€. μ΄λ₯Ό μν΄ λ§μ΄ μ¬μ©νλ λ°©λ²μ μ΄λ―Έ λ°°μ΄ split() ν¨μμ len() ν¨μλ₯Ό ν¨κ» μ¬μ©νλ κ²μ΄λ€.
- μλ μ½λλ νμΌμ μ μ₯λ λͺ¨λ ν μ€νΈλ₯Ό μ½μ΄μ¨ ν μ°¨λ‘λλ‘ κΈμ μ, λ¨μ΄ μ, μ€ μλ₯Ό μΆλ ₯νλ νλ‘κ·Έλ¨μ΄λ€.
with open("dream.txt", "r") as my_file:
contents = my_file.read()
word_list = contents.split("") #λΉμΉΈ κΈ°μ€μΌλ‘ λ¨μ΄λ₯Ό λΆλ¦¬νμ¬ λ¦¬μ€νΈ
line_list = contents.split("\\n") #ν μ€μ© λΆλ¦¬νμ¬ λ¦¬μ€νΈ
print("μ΄κΈμμμ:",len(contents))
print("μ΄ λ¨μ΄μ μ:", len(word_list))
print("μ΄ μ€μ μ:,', len(line_list))
μ΄ κΈμμ μ 188 #6ν μ€νκ²°κ³Ό
μ΄ λ¨μ΄μ μ: 35 #7ν μ€νκ²°κ³Ό
μ΄ μ€μ μ: 7 #8ν μ€νκ²°κ³Ό
νμΌ μ°κΈ°
- νμΌμ 무μμΈκ°λ₯Ό μ°κΈ° μν΄μλ νμΌ μ΄κΈ° λͺ¨λλ₯Ό ‘W’λ‘ μ€μ νλ κ²κ³Ό ν¨κ» μΈμ½λ©μ΄λΌλ κ°λ μ μμμΌ νλ€.
- ν μ€νΈ νμΌμ μ μ₯νκΈ° μν΄μλ μ μ₯ν λ μ¬μ©νλ νμ€μ μ§ μ ν΄μΌ νλλ°, μ΄κ²μ μΈμ½λ©μ΄λΌκ³ νλ€.
- μΈμ½λ© μ΅μ μΌλ‘ μΈμ½λ© νμ€μ μ§μ ν μ μλ€. μΌλ°μ μΌλ‘ μΈμ½λ©μ utf 8μ λ§μ΄ μ¬μ©νλ©°, νμΌμ μλμμλ§ μ¬μ©νλ€λ©΄ cp949λ μ¬μ©ν μ μλ€. μΈμ½λ©μ μ΄μ체μ λ νμΌμ μ¬μ© νκ²½μ λ°λΌ λ€λ₯΄κ² μ€μ ν΄μΌ νλ€.
- μλ μ½λλ₯Ό μ€ννλ©΄ ‘count_log.txt’λΌλ νμΌμ ‘w’ μ΅μ μΌλ‘ μ½μ΄μ¨ ν 1λΆν° 10κΉμ§ μ μ«μλ₯Ό λ£μ΄ ‘1λ²μ§Έ μ€μ΄λ€.’λΆν° ‘10λ²μ§Έ μ€μ΄λ€.’κΉμ§ λ¬Έμμ΄μ λ§λ λ€μ f .write(data)μ½λλ‘ count_log.txt νμΌμ μ°¨λ‘λλ‘ κΈ°λ‘νλ€. λͺ¨λ λ΄μ©μ κΈ°λ‘ν νμ f.close() μ½λλ‘ ν΄λΉ νμΌμ λ«λλ€.
f = open("count_log.txt", 'w', encoding = "utf8")
for i in range(l,ll):
data ="%dλ²μ§Έ μ€μ΄λ€.\\n"%i
f.write(data)
f.close()
- κΈ°μ‘΄μ count_ log.txt νμΌμ΄ μμμλ λ€μ νλ² wλ‘ νμΌμ λΆλ₯΄λ©΄ κΈ°μ‘΄ νμΌμ΄ μμ λκ³ μλ‘μ΄ νμΌμ΄ μ겨 μλ‘μ΄ λ΄μ©λ§ κΈ°λ‘λλ€. μν©μ λ°λΌ κΈ°μ‘΄ νμΌμ κ³μ μΆκ°ν΄μΌ νλ μμ μ΄ μμ μλ μλ€. μ΄ κ²½μ° λ§μ΄ μ¬μ©νλ λ°©λ²μ μΆκ° λͺ¨λ aλ₯Ό μ¬μ©νλ κ²μ΄λ€.
νμΌ μ΄κΈ° λͺ¨λ aλ‘ μλ‘μ΄ κΈ μΆκ°νκΈ°
- μ°κΈ° λͺ¨λμΈ wλ λ μλ‘μ΄ νμΌμ μμ±νλ€.
with open("count_log.txt", 'a', encoding = "utf8") as f:
for i in range(1, 11):
data = "%dλ²μ§Έ μ€μ΄λ€.\\n"%i
f.write(data)
- κΈ°μ‘΄μ countjog.txt νμΌμ΄ μλ€λ κ°μ μμ ‘a’ λͺ¨λλ‘ νμΌμ μ°λ€. μ½λλ₯Ό μνν λ λ§λ€ ν΄λΉ νμΌμ ‘1λ²μ§Έ μ€μ΄λ€.’λΆν° ‘10λ²μ§Έ μ€μ΄λ€.’λΌλ ν μ€νΈκ° κ³μ μΆκ°λλ€.
λλ ν°λ¦¬ λ§λ€κΈ°
- νμ΄μ¬μΌλ‘λ νμΌλ§ λ€λ£¨λ κ²μ΄ μλλΌ λλ ν°λ¦¬λ ν¨κ» λ€λ£° μ μλ€.
- os λͺ¨λμ μ¬μ©νλ©΄ λλ ν°λ¦¬λ₯Ό μ½κ² λ§λ€ μ μμΌλ©° λλ ν° λ¦¬λ₯Ό μμ±νλ μ½λλ logμ΄λ€.
import os
os.mkdir("log")
ν΄λ μλμ logλΌλ μλ‘μ΄ ν΄λκ° μμ±
- νμ§λ§ νλ‘κ·Έλ¨ λλΆλΆμ΄ μλ‘ μ€νλλ―λ‘ κΈ°μ‘΄μ ν΄λΉ λλ ν°λ¦¬κ° μλμ§ νμΈνλ μ½λκ° νμνλ€. μ΄ κ²½μ° os.path.isdir μ½λλ₯Ό μ¬μ©νμ¬ κΈ°μ‘΄ λλ ν°λ¦¬μ μ‘΄μ¬ μ¬λΆλ₯Ό νμΈνλ©΄ λλ€.
import os
os.mkdir("log")
if not os.path.isdir("log"):
os.mkdir("log")
Traceback (most recent call last):
File "mkdir2.py", line 2, in <modulo>
os.mkdir("log")
FileExistsError: [WinError 183] νμΌμ΄ μ΄λ―Έ μμΌλ―λ‘ λ§λ€ μ μμ΅λλ€: 'log'
λ‘κ·Έ νμΌ λ§λ€κΈ°
- μ΄λ²μλ μ€μ νλ‘κ·Έλ¨μμ μ¬μ©ν μ μλ λ‘κ·Έ νμΌ log file
- λ‘κ·Έ νμΌμ νλ‘κ·Έλ¨μ΄ λμνλ λμ μ¬λ¬ κ°μ§ μ€κ° κΈ°λ‘μ μ μ₯νλ μν μ νλ νμΌμ΄λ€. μλ₯Ό λ€μ΄ μΉ νλ‘κ·Έλ¨μ κ²½μ° μΈλΆ μ μμμ μ μ κΈ°λ‘μ΄λ μ μ μκ° λ±μ μ μ₯νλ νμΌμ΄ λ‘κ·Έ νμΌμ΄λ€.
#λ‘κ·Έ νμΌμ μμ±νλ μ½λ
import os
if not os.path.isdir("log"):
os.mkdir("log")
if not os .path .exists("log/count_log .txt"):
f = open("log/count_log.txt", 'w', encoding = "utf8")
f.write("κΈ°λ‘μ΄ μμλλ€.\\n")
f.close()
with open("log/count_log.txt", 'a', encoding = "utf8") as f:
import random, datetime
for i in range(1, 11):
stamp = str(datetime .datetime .now())
value = random.random()* 1000000
logJLine = stamp + "\\t" + str(value) + "κ°μ΄ μμ±λμλ€."+"\\n"
f.write(log_line)
- 3γ4νμμλ log λλ ν°λ¦¬κ° μ‘΄μ¬νμ§ μμ κ²½μ° μλ‘κ² λλ ν°λ¦¬λ₯Ό λ§λ λ€.
- 6γ9νμμλ κΈ°μ‘΄μ ν λ²λ λ‘κ·Έ κΈ°λ‘μ΄ μμλ€λ©΄ ‘w’ λͺ¨λλ‘ count_log.txt νμΌμ μμ±νκ³ κΈ°λ‘μ μμμ μ리λ 문ꡬλ₯Ό μ μ₯νλ€.
- 11γ17νμ μμλ₯Ό λ§λ€κΈ° μν΄ μμλ‘ μκ° κΈ°λ‘κ³Ό ν¨κ» μμμ μ«μλ₯Ό 문ꡬ μμ κ³μ κΈ°λ‘νμ¬ μ μ₯νλ€.
- μ μ½λλ₯Ό μ€ννλ©΄ λ± 10λ²μ κΈ°λ‘μ μννμ§λ§ μ€μ λ‘λ ν΄λΉ μ½λκ° νΈμΆν λλ§λ€ μκ°κ³Ό ν¨κ» μμμ μ«μκ° κ³μ κΈ°λ‘λλ€.
pickle λͺ¨λ
- νμ΄μ¬ νλ‘κ·Έλ¨μ μ€νν λ μμ±λλ μ¬λ¬ λ³μμ κ°μ²΄λ μκ°μ μΌλ‘ λ©λͺ¨λ¦¬μ λ‘λ©λμλ€κ° νλ‘κ·Έλ¨μ΄ μ’ λ£λλ©΄ μ¬λΌμ§λ€. νμ§λ§ λλ‘λ μ΄λ κ² μ¬μ©λλ κ°μ²΄λ₯Ό μ μ₯μμΌ λκ³ νμν λ λ€μ λΆλ¬μΌ νλ κ²½μ°κ° μλ€.
- μ΄ κ²½μ°λ₯Ό νλ‘κ·Έλλ° μΈμ΄μμλ μμνλΌκ³ νλ€.
- κ°λ¨ν νννλ©΄ νμν κ°μ²΄λ₯Ό νμΌλ‘ μ μ₯μμΌ λ€μ μ¬μ©ν μ μλλ‘ νλ κ²μ΄λ€. νμ΄μ¬μ pickle λͺ¨λμ μ 곡νμ¬ λ©λͺ¨λ¦¬μ λ‘λ©λ κ°μ²΄λ₯Ό μμν ν μ μλλ‘ μ§μνλ€. 리μ€νΈμ λ€μ΄κ° λ°μ΄ν°λ ν΄λμ€μ μ€λΈμ νΈ λ±μ νμΌλ‘ μ μ₯μμΌ λμ€μ λ€μ μ¬μ©ν μ μλλ‘ ν΄μ€λ€.
- pickle λͺ¨λμ μ¬μ©νκΈ° μν΄μλ λ€μ μ½λμ κ°μ΄ νΈμΆν ν κ°μ²΄λ₯Ό μ μ₯ν μ μλ νμΌμ μ΄κ³ μ μ₯νκ³ μ νλ κ°μ²΄λ₯Ό λκΈ°λ©΄ λλ€.
- νμΌμ μμ±ν λλ ‘w’κ° μλ ‘wb’λ‘ μ΄μ΄μΌ νλλ°. μ¬κΈ°μ Bλ λ°μ΄λ리λ₯Ό λ»νλ μ½μλ‘ ν μ€νΈ νμΌμ΄ μλ λ°μ΄λ리 νμΌλ‘ μ μ₯λλ€λ μλ―Έμ΄λ€. dump() ν¨μμμλ μ μ₯ν κ°μ²΄, μ μ₯λ νμΌ κ°μ²΄λ₯Ό μ°¨λ‘λλ‘ μΈμλ‘ λ£μΌλ©΄ ν΄λΉ κ°μ²΄κ° ν΄λΉ νμΌμ μ μ₯λλ€.
>>> import pickle
>>>
>>> f = open("list.pickle", "wb")
>>> test = [1, 2, 3, 4, 5]
>>> pickle.dump(test, f)
>>> f.close()
- μ μ₯λ pickle νμΌμ λΆλ¬μ€λ νλ‘μΈμ€λ μ μ₯ νλ‘μΈμ€μ κ°λ€.
- λ¨Όμ list.pickle νμΌμ ‘rb’ λͺ¨λλ‘ μ½μ΄μ¨ ν, ν΄λΉ νμΌ κ°μ²΄λ₯Ό pickle λͺ¨λμ μ¬μ©νμ¬ load() ν¨μλ‘ λΆλ¬μ€λ©΄ λλ€.
- μ¬μ€ pickle κ°μ²΄λ₯Ό λΆλ¬μ¬ λ ν΄λΉ κ°μ²΄κ° μ΄λ€ κ°μ²΄μΈμ§μ λν μ λ³΄κ° μ ν μμ΄ μλΉν νΌλμ€λ¬μΈ λλ μμ§λ§, ν΄λΉ μ½λλ₯Ό κ°λ°ν κ°λ°μλΌλ©΄ μ½λμ μΈν°νμ΄μ€λ₯Ό μ νν μκ³ μμΌλ―λ‘ μ΄λ €μ μμ΄ μ¬μ©ν μ μλ€. λ€μ νμ΄μ¬ μ Έ μ½λλ μμμ 리μ€νΈ κ°μ²΄λ₯Όnlist.pickle νμΌμ μ μ₯νκΈ° λλ¬Έμ ν΄λΉ νμΌμ λΆλ¬ μ¬μ©ν λλ λμΌνκ² λ¦¬μ€νΈ κ°μ²΄κ° λ°νλ κ²μ μ μ μλ€.
>>> f = open("list.pickle", "rb")
>>> test_pickle = pickle.load(f)
>>> print(test_pickle)
[1, 2, 3, 4, 5]
>>> f.close()
- pickle λͺ¨λμ λ¨μν μμ±λ κ°μ²΄λ₯Ό μ μ₯νλ κΈ°λ₯λ μμ§λ§ μ¬μ©μκ° μ§μ μμ±ν ν΄λμ€ κ°μ²΄λ μ μ₯νλ€.
- λ€μ μ½λμ κ°μ΄ κ³±μ μ μ²λ¦¬νλ ν΄λμ€λ₯Ό μμ±νλ€κ³ κ°μ νμ. μ΄ μ½λμ ν΄λμ€λ μ²μ κ°μ²΄λ₯Ό μμ±ν λ μ΄κΉκ°μ μμ±νκ³ , multiply() ν¨μλ₯Ό λΆλ₯Ό λλ§λ€ ‘μ΄κΉκ° * number’μ κ°μ νΈμΆνλ ν΄λμ€μ΄λ€. μΌμ’ μ κ³±μ ν΄λμ€λΌκ³ μκ°νλ©΄ λλ€.
>>> class Mutltiply(object):
... def__init__(self,multiplier):
... self.multiplier =multiplier
... def multiply(self, number):
... return number*self.multiplier
>>> muliply =Mutltiply(5)
>>> muliply.multiply(10)
50
- νλ‘κ·Έλ¨μ μμ±νλ€ λ³΄λ©΄ λ§€μ° λ³΅μ‘ν μ°μ°λ λ°λ‘ μ μ₯νμ¬ μ¬μ©ν λκ° μλ€. μ΄λ¬ν μ μ₯ λͺ¨λμ ν¨μ¨μ μΌλ‘ μ¬μ©νκΈ° μν΄ λ€μ μ½λμ²λΌ pickle λͺ¨λμ μ¬μ©ν μ μλ€
>>> import pickle
>>>
>>> f = open("multiply_object.pickle", "wb")
>>> pickle.dump(muliply, f)
>>> f.closeO
>>>
>>> f = open("multiply_object.pickle", "rb")
>>>multiply_pickle=pickle.load(f)
>>> multiply_pickle.multiply(5)
25