λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
개발/Python

[μΈν”„λŸ° 리프 2κΈ°] μ„Ήμ…˜ 7~10. 파이썬 λ§ˆλ¬΄λ¦¬πŸƒ

by - 였트 - 2021. 4. 2.

κ°•μ˜λ₯Ό ν†΅ν•΄ λ°°μš΄ μ 

μ˜ˆμ™Έ(Exception)

μ˜ˆμ™Έ μ’…λ₯˜

SyntaxError(λ¬Έλ²•μ˜€λ₯˜), TypeError(μžλ£Œν˜•μ— λ§žμ§€ μ•ŠλŠ” 연산을 μˆ˜ν–‰ν•  경우), NameError(μ°Έμ‘°μ—†μŒ)

IndexError(μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” 인덱슀λ₯Ό 좜λ ₯ν•  λ•Œ λ°œμƒν•˜λŠ” 였λ₯˜), ValueError, KeyError(주둜 λ”•μ…”λ„ˆλ¦¬μ—μ„œ λ°œμƒν•˜λŠ” 였λ₯˜), ZeroDivisionError(무언가λ₯Ό 0으둜 λ‚˜λˆ΄μ„ λ•Œ λ‚˜νƒ€λ‚˜λŠ” 였λ₯˜->GET λ©”μ†Œλ“œ μ‚¬μš© μΆ”μ²œ(였λ₯˜λ₯Ό None으둜 좜λ ₯ν•΄μ€Œ)),

AttributeError(λͺ¨λ“ˆ, ν΄λž˜μŠ€μ— μžˆλŠ” 잘λͺ»λœ 속성을 μ‚¬μš©ν•  λ•Œ λ°œμƒν•˜λŠ” 였λ₯˜)

FileNotFoundError(μš”μ²­ν•˜λŠ” 파일이 없을 λ•Œ λ°œμƒν•˜λŠ” 였λ₯˜)

* λ¬Έλ²•μ μœΌλ‘œλŠ” μ˜ˆμ™Έκ°€ μ—†μ§€λ§Œ, μ½”λ“œ μ‹€ν–‰ ν”„λ‘œμ„ΈμŠ€(단계)μ—μ„œ λ°œμƒν•˜λŠ” μ˜ˆμ™Έλ„ μ€‘μš”ν•˜λ‹€

* λ¨Όμ € μ˜ˆμ™Έ 처리λ₯Ό ν•˜μ§€ 말고 μ˜ˆμ™Έ μ—†λŠ” 것을 κ°€μ •ν•˜κ³  ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•œ ν›„ λŸ°νƒ€μž„ μ˜ˆμ™Έ λ°œμƒ μ‹œ μ˜ˆμ™Έ 처리λ₯Ό ꢌμž₯ν•œλ‹€(EAFP)

 

μ˜ˆμ™Έ 처리

try : μ—λŸ¬κ°€ λ°œμƒν•  κ°€λŠ₯성이 μžˆλŠ” μ½”λ“œ μ‹€ν–‰

except μ—λŸ¬λͺ…1, 2, 3 ... : μ—¬λŸ¬κ°œ κ°€λŠ₯

else : try λΈ”λ‘μ˜ μ—λŸ¬κ°€ 없을 경우 μ‹€ν–‰

finally : 항상 μ‹€ν–‰

* else와 finally의 차이점을 κ΅¬λΆ„ν•˜λŠ” 것이 μ˜ˆμ™Έ 처리 νŒŒνŠΈμ—μ„œ μ€‘μš”ν•œ 것 κ°™λ‹€

 

λ‚΄μž₯ν•¨μˆ˜(Built-in Functions)

chr : μ•„μŠ€ν‚€ μ½”λ“œ -> 문자 λ³€ν™˜ / ord : 문자 -> μ•„μŠ€ν‚€ μ½”λ“œ λ³€ν™˜

enumerate : 인덱슀 + Iterable 객체 생성

filter : λ°˜λ³΅κ°€λŠ₯ν•œ 객체 μš”μ†Œλ₯Ό μ§€μ •ν•œ ν•¨μˆ˜ 쑰건에 λ§žλŠ” κ°’ μΆ”μΆœ

map : λ°˜λ³΅κ°€λŠ₯ν•œ 객체 μš”μ†Œλ₯Ό μ§€μ •ν•œ ν•¨μˆ˜ μ‹€ν–‰ ν›„ μΆ”μΆœ

range : λ°˜λ³΅κ°€λŠ₯ν•œ 객체(Iterable) λ°˜ν™˜

round : 반올림

sorted : λ°˜λ³΅κ°€λŠ₯ν•œ 객체(Iterable) μ •λ ¬ ν›„ λ°˜ν™˜ / sum : λ°˜λ³΅κ°€λŠ₯ν•œ 객체(Iterable) ν•© λ°˜ν™˜

zip : λ°˜λ³΅κ°€λŠ₯ν•œ 객체(Iterable)의 μš”μ†Œλ₯Ό λ¬Άμ–΄μ„œ λ°˜ν™˜

 

μ™Έμž₯ν•¨μˆ˜(External Functions)

μ‹€μ œ ν”„λ‘œκ·Έλž¨ 개발 쀑 자주 μ‚¬μš©, μ’…λ₯˜ : sys, pickle, shutil, temfile, time, random λ“±

> import sys

파이썬 νŒ¨ν‚€μ§€ μœ„μΉ˜ 확인 -> print(sys.path)

> import pickle (객체 파일 μ“°κΈ°)

예제) f = open("test.obj", 'wb') # w : write
obj = {1: 'Inflearn', 2:'leaf', 3:'python'}
pickle.dump(obj, f)
f.close() # openν–ˆμœΌλ©΄ closeκ°€ ν•„μš”

예제) f = open('test.obj', 'rb') # r : read
data = pickle.load(f)
print(data, type(data))
f.close()

> import os : ν™˜κ²½ λ³€μˆ˜, 디렉토리(파일) 처리 κ΄€λ ¨, 운영체제 μž‘μ—… κ΄€λ ¨

mkdir, rmdir(λΉ„μ–΄μžˆμœΌλ©΄ μ‚­μ œ), rename

> import time : μ‹œκ°„ κ΄€λ ¨ 처리

> import random : λ‚œμˆ˜ 리턴

random.shuffle() : μ„žμ–΄μ£ΌκΈ° κΈ°λŠ₯

random.choice : λ¬΄μž‘μœ„ ν•˜λ‚˜ 선택

> import webbrowser : 본인os의 μ›Ή λΈŒλΌμš°μ € μ‹€ν–‰

webbrowser.open("http://naver.com')

webbrowser.open_new("http://naver.com") : μƒˆλ‘œμš΄ μ°½ μ—΄κΈ°

 

파일 μ“°κΈ°

읽기 λͺ¨λ“œ r, μ“°κΈ°λͺ¨λ“œ w, μΆ”κ°€λͺ¨λ“œ a, ν…μŠ€νŠΈ λͺ¨λ“œ t, λ°”μ΄λ„ˆλ¦¬ λͺ¨λ“œ b

μƒλŒ€κ²½λ‘œ(' ../(μƒμœ„ ν΄λ”λ‘œ 이동), ./(ν˜„μž¬ 폴더)')

μ ˆλŒ€ 경둜('C:/Django/example..') 루트 경둜 κΈ°μ€€

f.open('./resource/it_news.txt', 'r', encoding-"UTF-8')
print(dir(f)) # 속성 확인
print(f.encoding) # 인코딩 확인
print(f.name) # 파일 이름
print(f.mode) # λͺ¨λ“œ 확인

read() : 전체 읽기, read(10) : 10byte

readline : ν•œ 쀄씩 읽기

readlines : 전체λ₯Ό 읽은 ν›„ 라인 λ‹¨μœ„ 리슀트둜 μ €μž₯

writelines : 리슀트 -> 파일

 

CSV 파일 : 데이터 μ‚¬μ΄μ–ΈμŠ€ λΆ„μ•Όμ—μ„œ 주둜 μ‚¬μš©, 데이터 μ „μ²˜λ¦¬μ— ν™œμš©

 

μ‹€μ „ ν”„λ‘œμ νŠΈ

μ½”λ“œ ν™”λ©΄ -> μ‹€ν–‰ ν™”λ©΄


ν•™μŠ΅ν•˜λ©° λŠλ‚€ μ 

이번 μ£Όμ—λŠ” μ„Ήμ…˜7λΆ€ν„° 10κΉŒμ§€ μ˜ˆμ™Έμ²˜λ¦¬, κΈ°λ³Έ ν•¨μˆ˜, 파일 μ“°κΈ°, μ‹€μ „ ν”„λ‘œμ νŠΈκΉŒμ§€ λ°°μ› λ‹€

사싀 μ–΄λ–€ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ“  상관없이 κ°€μž₯ 처음 λΆ€λΆ„(ex. μžλ£Œν˜•, ν•¨μˆ˜, 반볡문)은  잘 ν•΄μ˜€λ‹€κ°€ 항상 λ§ˆμ§€λ§‰ λΆ€λΆ„(ex. 파일 읽기/μ“°κΈ° λ“±)은 νμ§€λΆ€μ§€ν•˜κ²Œ 마무리 ν•˜κ²Œ λœλ‹€ ꡐ내 μˆ˜μ—…μ€ 기말고사 기간에 λ§žμΆ°μ„œ 끝내야 ν•΄μ„œ λ§ˆμ§€λ§‰ 뢀뢄을 짧게 λ°°μš°κΈ°λ„ ν•˜κ³   독학할 λ•ŒλŠ” μˆ˜μ—…μ—μ„œ μ€‘μš”ν•˜κ²Œ μƒκ°ν•˜μ§€ μ•Šκ³  λ„˜μ–΄κ°”λ‹€λŠ” 이유둜 덩달아 λ„˜μ–΄κ°€κ²Œ λœλ‹€πŸ˜‚

λ”°λΌμ„œ 이번 μ™Έμž₯ν•¨μˆ˜λ‚˜ 파일 μ“°κΈ° 뢀뢄은 μΈν”„λŸ° 리프 ν™œλ™μ΄ λλ‚œ 후에 λ‹€μ‹œ ν•œλ²ˆ μ°¨κ·Όμ°¨κ·Ό 듀을 μ˜ˆμ •μ΄λ‹€

νŒŒμ΄μ¬μ„ κ³΅λΆ€ν•˜λ©΄μ„œ λΆ€μ‘±ν•˜λ‹€κ³  μƒκ°ν–ˆλ˜ 뢀뢄듀이 λ‹€ λ‚˜μ€‘μ— μ•žμœΌλ‘œ μƒκ°ν•˜κ³  μžˆλŠ” λΆ„μ•Όμ—μ„œ 지식을 μš”κ΅¬ν•˜κ³  있기 λ•Œλ¬Έμ— λ”λ”μš± λ…Έλ ₯ν•  것이닀


μΈν”„λŸ° ν™ˆνŽ˜μ΄μ§€ : www.inflearn.com/

 

μΈν”„λŸ° - ν”„λ‘œκ°€ λ˜λŠ” 온라인 클래슀 | 온라인 κ°•μ˜ ν”Œλž«νΌ

ν”„λ‘œκ·Έλž˜λ°, 인곡지λŠ₯, 데이터, λ§ˆμΌ€νŒ…, λ””μžμΈ, μ—‘μ…€ 싀무 λ“± μž…λ¬ΈλΆ€ν„° μ‹€μ „κΉŒμ§€ 업계 졜고 μ„ λ°°λ“€μ—κ²Œ 배울 수 μžˆλŠ” κ³³. μš°λ¦¬λŠ” μ„±μž₯ 기회의 평등을 μΆ”κ΅¬ν•©λ‹ˆλ‹€.

www.inflearn.com

좜처 : <μΈν”„λŸ°-ν”„λ‘œκ·Έλž˜λ° μ‹œμž‘ν•˜κΈ° : 파이썬 μž…λ¬Έ (Inflearn Original)>/inf.run/GawB

 

ν”„λ‘œκ·Έλž˜λ° μ‹œμž‘ν•˜κΈ° : 파이썬 μž…λ¬Έ (Inflearn Original) - μΈν”„λŸ° | κ°•μ˜

이미 8000λͺ… 이상이 ν•™μŠ΅ν•˜κ³  λ§Œμ‘±ν•œ 졜고의 ν”„λ‘œκ·Έλž˜λ° μž…λ¬Έ κ°•μ˜. μΈν”„λŸ°μ΄ λΉ„μ „κ³΅μž μœ„μΉ˜μ—μ„œ 직접 κΈ°νšν•˜κ³  μ€€λΉ„ν•œ ν”„λ‘œκ·Έλž˜λ° μž…λ¬Έ κ°•μ˜λ‘œ, ν”„λ‘œκ·Έλž˜λ°μ„ μ „ν˜€ 접해보지 λͺ»ν•œ μ‚¬λžŒλΆ€ν„° μ‹€

www.inflearn.com

ν•΄λ‹Ή κΈ€ μ•„μ΄μ½˜ 좜처 : 'flaticon.com'

This cover has been designed using resources from Flaticon.com