10μ£Όμ°¨ κ°μ μ£Όμ λ μμΈμ²λ¦¬μ νμΌ λ€λ£¨κΈ° μ λλ€.
1. μμΈ μ²λ¦¬
1) μμΈμ κ°λ κ³Ό μ¬λ‘
μμΈ exception : νλ‘κ·Έλ¨μ κ°λ°νλ©΄μ μμνμ§ λͺ»ν μν©μ΄ λ°μνλ κ²
- μ λ ₯ μ€λ₯ - μΉ μ¬μ΄νΈμ κ°μ νμ¬ μμ΄λλ₯Ό μμ±νλ € νλ μν©. μΌλ°μ μΌλ‘ μμ΄λλ μλ¬Έμλ μ«μλ₯Ό μ§μνλλ° λλ‘λ μ¬μ©μκ° νκΈλ‘ μμ΄λλ₯Ό λ§λ€κΈ° μν΄ νκΈ μ λ ₯μ μλν λκ° μμ. μ΄λ¬ν κ²½μ° μ λ ₯λ νκΈμ΄ κ·Έλλ‘ λ°μ΄ν°λ² μ΄μ€μ μ μ₯λλ©΄ μμΉ« μ¬μ©μκ° ν΄λΉ μΉ μ¬μ΄νΈμ λ‘κ·ΈμΈνμ§ λͺ»ν μλ μμ. νλ‘κ·Έλλ¨Έμ μ€μλ‘ μΈμ½λ©μ λ¬Έμ κ° λ°μνμ¬ λ°μ΄ν°λ² μ΄μ€μ νκΈμ΄ μλͺ» μ μ₯λ μλ μλ μν©. μ¬μ©μκ° μ΄λ¬ν μ€μλ₯Ό νμ§ μλλ‘ ν΄μΌν¨.
- μλ μ μ₯ κΈ°λ₯(autosave) - μ»΄ν¨ν°κ° κ°μκΈ° μ’ λ£λμμ λλ₯Ό λλΉνμ¬ μμ ν κ²μ μ€κ°μ μλμΌλ‘ μ μ₯ν΄μ£Όλ κΈ°λ₯
μ΄λ¬ν μ¬λ‘μ²λΌ νλ‘κ·Έλ¨μ μ€μ λ‘ μμ±νκ³ μ€ννλ€ λ³΄λ©΄ μμμΉ λͺ»ν μΌλ€μ΄ λ§μ΄ λ°μνλλ°, μ΄λ₯Ό μμΈλΌκ³ νλ€.
2) μμΈ‘ κ°λ₯ν μμΈ & μμΈ‘ λΆκ°λ₯ν μμΈ
- μμΈ‘ κ°λ₯ν μμΈ
- λ°μ μ¬λΆλ₯Ό κ°λ°μκ° μ¬μ μ μΈμ§ν μ μλ μμΈλ₯Ό λ§ν¨
- μ) ν μ€νΈ λ°μ€μ μ¬μ©μκ° μ€μλ‘ μλͺ»λ κ°μ μ λ ₯ν κ² κ°λ€, μ¬μ©μκ° μ€μ λ‘ μ‘΄μ¬νμ§ μλ νμΌμ μ μ₯ν κ² κ°λ€ λ±… μΌλ§λ μ§ μμΈ μ²λ¦¬κ° κ°λ₯ν¨.
- ifλ¬Έ μ¬μ© λ±μΌλ‘ λμμ΄ λμ²΄λ‘ μ¬μ
- μμΈ‘ λΆκ°λ₯ν μμΈ
- μ) λ§€μ° λ§μ νμΌμ μ²λ¦¬ν λ
- μΈν°ν리ν°κ° μλμΌλ‘ μμΈλΌκ³ μ¬μ©μμκ² μλ €μ€
νλ‘κ·Έλ¨λ μΌμ’ μ μ νμ΄λ―λ‘ μμΈ μ²λ¦¬λ μ€μν¨. μ νμ μμ±λλ₯Ό λμ΄λ μ°¨μμμ μμΈ μ²λ¦¬λ λ§€μ° μ€μν κ°λ μ.
3) μμΈ μ²λ¦¬ ꡬ문
- 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
- try-except-else문
- if-elseλ¬Έκ³Ό λΉμ·ν¨. ν΄λΉ μμΈκ° λ°μνμ§ μλ κ²½μ° μνν μ½λλ₯Ό elseλ¬Έμ μμ±νλ©΄ λ¨.
tryλ¬Έμ μμΈ λ°μ κ°λ₯ μ½λ, except μμΈ νμ λ€μ μμΈ λ°μ μ μ€νλλ μ½λ, elseλ¬Έμ μμΈκ° λ°μνμ§ μμ λ μ€νλλ μ½λλ₯Ό μμ±
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
μλ¬κ° λ°μνμ§ μλ κ²½μ°μ μνλ¬Έμ μ μν΄ λμΌλ©΄ μλ¬κ° λ°μνμ§ μλ κ²½μ°μλ μΌμ΄λ μΌμ μ¬μ©μκ° μ νν μμΈ‘ν μ μμ
- try-except-finally문
- finallyλ¬Έ : try-exceptλ¬Έ μμ μλ μν μ½λκ° μλ¬΄λ° λ¬Έμ μμ΄ μ’ λ£λμμ κ²½μ° μ΅μ’ μΌλ‘ νΈμΆνλ μ½λ. forλ¬Έμμ μ¬μ©νλ finallyλ¬Έκ³Ό μ©λκ° λΉμ·νλ€κ³ μκ°νλ©΄ λ¨
- tryλ¬Έ λ€μ μμΈ λ°μ κ°λ₯ μ½λ, except μμΈ νμ λ€ μμΈ λ°μμ μ€νλλ μ½λ, finallyλ¬Έ λ€μ μμΈ λ°μ μ¬λΆμ μκ΄μμ΄ μ€νλλ μ½λλ₯Ό μμ±
try:
for i in range(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
μ’
λ£λμλ€.
- 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 "C:\\Users\\hahnp\\PycharmProjects\\study_only\\dsob_week10\\raise.py", line 5, in <module>
raise ValueError("μ«μκ°μ μ
λ ₯νμ§ μμμ΅λλ€.")
ValueError: μ«μκ°μ μ
λ ₯νμ§ μμμ΅λλ€.
while Trueλ¬ΈμΌλ‘ λ°λ³΅λ¬Έμ΄ κ³μ λμκ°λ μνμμ μ¬μ©μμκ² μ λ ₯μ λ°λ μ½λ. μ¬μ©μκ° μ λ ₯ν κ°μ΄ μ«μκ° μλ κ²½μ° μ«μκ°μ μ λ ₯νμ§ μμλ€κ³ μΆλ ₯νλ©° νλ‘κ·Έλ¨μ μ’ λ£ν¨.
- 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
Traceback (most recent call last):
File "C:\\Users\\hahnp\\PycharmProjects\\study_only\\dsob_week10\\assert.py", line 5, in <module>
print(get_binary_number("10"))
File "C:\\Users\\hahnp\\PycharmProjects\\study_only\\dsob_week10\\assert.py", line 2, in get_binary_number
assert isinstance(decimal_number, int)
AssertionError
assertλ¬Έμ μ½λλ₯Ό μμ±ν λ μλͺ»λ μ λ ₯ μ¬λΆλ₯Ό μ¬μ μ νμΈνμ¬ λμ€μ νμμλ μ°μ°μ λ§μμ£Όκ³ , κ²°κ΅ λ€λ₯Έ μ¬λμ΄ λ§λ μ½λλ₯Ό μ¬μ©νλ λ° μ’μ κ°μ΄λκ° λλ€.
2. νμΌ λ€λ£¨κΈ°
1) νμΌμ κ°λ
νμΌμ μ»΄ν¨ν°λ₯Ό μ€νν λ κ°μ₯ κΈ°λ³Έμ΄ λλ λ¨μμ΄λ€. νλ‘κ·Έλ¨μ μ€ννλ κ²μ λ νμΌμ μ€ννλ κ²μ΄λ€.
2) νμΌμ μ’ λ₯
- λ°μ΄λ리 νμΌ(binary file)
- μ»΄ν¨ν°λ§ μ΄ν΄ν μ μλ μ΄μ§ μ λ³΄λ‘ μ μ₯λ νμΌ
- λΉνΈ ννλ‘ μ μ₯λμ΄ λ©μ‘°μ₯μΌλ‘ μ΄λ©΄ λ΄μ©μ΄ 보μ΄μ§ μκ±°λ λ΄μ© νμΈμ΄ λμ§ μλ νμΌ
2. ν μ€νΈ νμΌ(text file)
- μ¬λμ΄ μ΄ν΄ν μ μλ λ¬Έμμ΄λ‘ μ μ₯λ νμΌλ‘, λ©λͺ¨μ₯μΌλ‘ λ΄μ© νμΈ κ°λ₯ν¨
- ν μ€νΈ νμΌλ μ»΄ν¨ν°κ° μ²λ¦¬νκΈ° μν΄ λ°μ΄λ리 ννλ‘ μ μ₯λ νμΌμ.
- ν μ€νΈ νμΌμ μ»΄ν¨ν°κ° μ΄ν΄ν μ μλ ννλ‘ λ³κ²½νμ¬ μ μ₯λλλ°, λ³κ²½νλ κΈ°μ€μ μμ€ν€μ½λλ μ λμ½λλ‘ νκ³ νμ€μ λ°λΌ μ»΄ν¨ν°κ° μ΄μ ν μ μλλ‘ λ°κΎΌλ€.
3) νμΌ μ½κΈ°
- open( ) ν¨μ μ¬μ©
- νμΌ μ¬λ λͺ¨λμλ μ½κΈ° λͺ¨λ, μ°κΈ° λͺ¨λ, μΆκ° λͺ¨λ λ±μ΄ μμ
- r : μ½κΈ° λͺ¨λ (νμΌμ μ½κΈ°λ§ ν λ μ¬μ©)
- w : μ°κΈ° λͺ¨λ (νμΌμ λ΄μ©μ μΈ λ μ¬μ©)
- a : μΆκ° λͺ¨λ (νμΌμ λ§μ§λ§μ μλ‘μ΄ λ΄μ©μ μΆκ°ν λ μ¬μ©)
1. νμΌ μ½κΈ°
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
open( ) ν¨μμ read( ) ν¨μλ₯Ό ν΅ν΄ ν μ€νΈλ₯Ό μΆλ ₯ν¨
2. withλ¬Έκ³Ό ν¨κ» μ¬μ©νκΈ°
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
close( ) ν¨μλ₯Ό λͺ μμ μΌλ‘ μ°μ§ μμλ νμΌμ μ¬μ©μ μ’ λ£ν μ μμ
3. ν μ€μ© μ½μ΄ 리μ€νΈνμΌλ‘ λ°ννκΈ°
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']
readlines( ) ν¨μλ₯Ό μ¬μ©νμ¬ ν μ€μ© λ΄μ©μ μ½μ΄μ λ¬Έμμ΄ ννλ‘ μ μ₯ν¨.
4. μ€νν λλ§λ€ ν μ€μ© μ½μ΄μ€κΈ°
with open("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===if you fail I believe in angels
5===something good in everything
5. νμΌμ μ μ₯λ κΈμμ ν΅κ³ μ 보 μΆλ ₯νκΈ°
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))
# μΆλ ₯κ²°κ³Ό
μ΄ κΈμμ μ: 187
μ΄ λ¨μ΄μ μ: 35
μ΄ μ€μ μ: 6
split( ) ν¨μμ len( ) ν¨μλ₯Ό ν¨κ» μ¬μ©
4) νμΌ μ°κΈ°
μΈμ½λ© : ν μ€νΈ νμΌμ μ μ₯νκΈ° μν΄μλ μ μ₯ μ μ¬μ©νλ νμ€μ μ§μ ν΄μΌ νλλ°, μ΄λ₯Ό μΈμ½λ©μ΄λΌκ³ ν¨.
μΈμ½λ© μ΅μ μΌλ‘ μΈμ½λ© νμ€μ μ§μ ν μ μμΌλ©° μΌλ°μ μΌλ‘ utf8μ λ§μ΄ μ¬μ©
5) pickle λͺ¨λ
- μμν : νμ΄μ¬ νλ‘κ·Έλ‘κ·Έλ¨μ μ€νν λ μμ±λλ μ¬λ¬ λ³μμ κ°μ²΄λ μκ°μ μΌλ‘ λ©λͺ¨λ¦¬μ λ‘λ©λμλ€κ° νλ‘κ·Έλ¨μ΄ μ’ λ£λλ©΄ μ¬λΌμ§λ€. νμ§λ§ λλ‘λ μ΄λ κ² μ¬μ©λλ κ°μ²΄λ₯Ό μ μ₯μμΌ λκ³ νμ μ λ€μ λΆλ¬μΌ νλ κ²½μ°κ° μλλ° μ΄ κ²½μ°λ₯Ό μμνλΌκ³ ν¨.
- pickle λͺ¨λ μ¬μ©μ μν΄ νΈμΆ ν κ°μ²΄λ₯Ό μ μ₯ν μ μλ νμΌμ μ΄κ³ μ μ₯νκ³ μ νλ κ°μ²΄λ₯Ό dumpνλ©΄ λ¨.
- dump( ) ν¨μμμλ μ μ₯ν κ°μ²΄, μ μ₯λ νμΌ κ°μ²΄λ₯Ό μ°¨λ‘λλ‘ μΈμλ‘ λ£μΌλ©΄ ν΄λΉ κ°μ²΄κ° ν΄λΉ νμΌμ μ μ₯λ¨
'π μ€ν°λ > νμ΄μ¬ μ€ν°λ κ°μμλ£' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[1ν/νμμ] 10μ°¨μ νμ΄μ¬ μ€ν°λ - μμΈμ²λ¦¬ (0) | 2023.06.01 |
---|---|
[3ν/κΉκ·λ¦¬] 10μ°¨μ νμ΄μ¬ μ€ν°λ - μμΈμ²λ¦¬ (0) | 2023.06.01 |
[2ν/κΉκ°λ¦Ό, μ΅λ€μ] 10μ£Όμ°¨ νμ΄μ¬ μ€ν°λ - μμΈμ²λ¦¬ (1) | 2023.06.01 |
[2ν/κΉμΈμ°] 10μ£Όμ°¨ νμ΄μ¬ μ€ν°λ - μμΈμ²λ¦¬ (0) | 2023.05.31 |
[2ν/κΉκ°λ¦Ό, μ΅λ€μ] 9μ°¨μ λͺ¨λκ³Ό ν¨ν€μ§ (0) | 2023.05.26 |