Day3. 파이썬 활용

추가적인 기능에 대하여 알아도록 합니다

예외 처리

코딩을 하다보면 생각하지 못한 여러가지 오류가 발생할 것입니다.

이런 상황에서 에러를 핸들링 하기 위해 파이썬에서 "try", "except문"을 사용 할 수 있습니다.

try, except 문

try:
    ...
except :
    ...

위 경우 에러 종류에 상관없이 에러가 발생하면 except 블록을 수행합니다.

try:
    ...
except 발생오류:
    ...

이 경우에는 정해 놓은 오류와 동일한 오류가 발생 했을 때만 except 블록을 수행하게 됩니다.

try:
    4 / 0
except ZeroDivisionError as e:
    print(e)

# division by zero

위 경우는 오류의 내용까지 알고 싶을때 쓰는 방법 입니다.

에러가 발생하면 "e" 라는 변수에 해당 에러의 종류가 저장되고 이것을 "print()"를 이용해서 출력할 수 있게 만들어 주는 것 입니다.

외부 라이브러리 작업(NumPy, Pandas)

Numpy?

📚 Numpy는 C언어로 구현된 파이썬 라이브러리로써, 고성능의 수치 계산을 위해 제작되었습니다. Numpy는 벡터 및 행렬 연산에 있어서 매우 편리한 기능을 제공합니다.

import numpy as np

# 1차원 배열
vec = np.array([1, 2, 3, 4, 5])
print(vec)

################
[1 2 3 4 5]
################

# 2차원 배열
mat = np.array([[10, 20, 30], [ 60, 70, 80]]) 
print(mat)

################
[[10 20 30]
 [60 70 80]]
################

# 1씩 증가하는 1차원 배열(시작이 0부터)

print(np.arange(10)) 

################ 
[0 1 2 3 4 5 6 7 8 9]
################

# 1씩 증가하는 1차원 배열(시작이 5부터)

print(np.arange(5, 10)) 

################
[5 6 7 8 9]
################

# 영행렬 생성

print(np.zeros((2,2)))  

################
 [[0. 0.]
  [0. 0.]]
################

# 유닛행렬

print(np.ones((2,3)))  

################
 [[1. 1. 1.]
  [1. 1. 1.]]
################

# 모든 원소가 5인 2*3행렬

print(np.full((2,3), 5)) 

################
 [[5 5 5]
  [5 5 5]]
################

# 단위행렬

print(np.eye(3)) 

################
 [[1. 0. 0.]
  [0. 1. 0.]
  [0. 0. 1.]]
################

Pandas?

📚 데이터 처리와 분석을 위한 파이썬 라이브러리로, 대용량의 데이터들을 처리하는데 매우 편리한 특징을 가지고 있습니다

행과 열로 이루어진 데이터 객체를 만들어 다룰 수 있습니다.

Pandas는 총 세가지 데이터 구조를 사용됩니다.

  • Series

  • DataFrame

  • Panel

이 중에서 가장 많이 사용되는 데이터 프레임을 보겠습니다.

DataFrame

  • 데이터 프레임은 2차원 리스트를 매개변수로 전달합니다. 2차원이므로 행방향 인덱스(index)와 열방향 인덱스(column)가 존재합니다. 즉 행과 열을 가지는 자료구조입니다.

values = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
index = ['one', 'two', 'three']
columns = ['A', 'B', 'C']

df = pd.DataFrame(values, index=index, columns=columns)

print('데이터프레임 출력 :')

print(df)

데이터프레임 출력 :
A  B  C
one    1  2  3
two    4  5  6
three  7  8  9

외부 데이터를 가지고 데이터 프레임 생성하고 조회하기

"example.csv"의 모습 예시

df = pd.read_csv('example.csv')
print(df)

######################################

   student id      name  score
0        1000     Steve  90.72
1        1001     James  78.09
2        1002    Doyeon  98.43
3        1003      Jane  64.19
4        1004  Pilwoong  81.30
5        1005      Tony  99.14

# 위의 경우 인덱스가 자동으로 부여 됩니다.

print(df.index)

RangeIndex(start=0,stop=6,step=1)

### 데이터 프레임 조회 하기 ###

#앞 부분 2개까지 보기
print(df.head(2))

#########################
   student id      name  score
0        1000     Steve  90.72
1        1001     James  78.09
#########################

# 뒷 부분 4개 까지 보기
print(df.tail(4))

#########################
   student id      name  score
2        1002    Doyeon  98.43
3        1003      Jane  64.19
4        1004  Pilwoong  81.30
5        1005      Tony  99.14
#########################

# 'name'에 해당하는 열을 보기
print(df['name'])

#########################

0    Steve
1    James
2    Doyeon 
3    Jane
4    Pilwoong 
5    Tony 
Name: name, dtype: object
#########################

Flask를 사용한 웹 개발 소개

💡 Flask는 웹사이트의 백엔드 개발을 위해 사용돼요 Flask의 가볍고 , 빠른 속도, 편리한 사용성 때문에 소셜미디어, 온라인 마켓플레이스, 교육 기관에 이르기까지 다양하게 사용 되고 있습니다.

Flask로 구축된 웹사이트

Flask를 사용하고 있는 대기업

Python 개발 모범 사례(PEP 8)

💡 PEP 8은 "Style Guide for Python Code"로 파이썬 코드를 어떻게 구상해야할 지 알려주는 스타일 가이드입니다.

네이밍 스타일 [ 중요!!!! ]

PEP 8에 대한 내용은 많기 때문에 이 문서를 참고해서 사용 하시는게 좋습니다.

PEP 8 - Style Guide for Python Code

Black 을 사용하여 코드 스타일 통일하기

📚 Black은 PEP 8을 준수하는 독창적인 포맷터입니다.

https://pypi.org/project/black/

Last updated