TIL. (Today I Learned)

Day13. 파이썬 에러 대처법 TIL. 20240501

체대이터 2024. 5. 1. 18:41

 

To do list.

-sql코드카타 알고리즘 코드카타  문제풀이

-파이썬 종합 강의 완강 / 복습

-sqld 강의 2일차

 

 


파이썬 종합 강의

 

데코레이션 사용

데코레이터(Decorator)는 파이썬에서 함수나 메서드의 기능을 확장하거나 수정

기존의 함수를 따로 수정하지 않고도 추가 기능을 넣고 싶을 때 사용

 

def decorator_function(original_function):
    def wrapper_function(**kwargs):
        # 함수 호출 전에 실행되는 코드
        result = original_function(**kwargs)                               => 기존의 함수
        # 함수 호출 후에 실행되는 코드
        return result
    return wrapper_function

 

@my_decorator 를 추가하면 거기 명시된 작업들 수행가능

 


 

 

파이썬 에러 대처법

 

'int' object is not subscriptable => sequence type의 데이터가 아닌 정수형(int) 데이터를 인덱싱하려는 실수를 했을때

뜨는 오류

 

여기서 subscriptable  인덱싱이나 슬라이싱 오류를 칭할때 등장하는 단어

 

대표적인 에러들

 

SyntaxError (구문 오류)

에러 메시지: 코드 문법에 오류가 있음을 나타냄

대처법: 코드의 문법을 확인하고 괄호, 따옴표, 콜론 등을 올바르게 사용했는지 확인하세요. 코드 블록의 들여쓰기도 확인

 => 아주 사소한 문법 오류 등 확인!!

 

IndentationError (들여쓰기 오류)

에러 메시지: 코드 블록의 들여쓰기가 잘못되었음을 나타냅니다.

대처법: 들여쓰기를 일관되게 맞추세요. 보통 스페이스 4개 또는 탭을 사용

 

NameError (이름 오류)

에러 메시지: 정의되지 않은 변수나 함수를 사용하려고 할 때 발생

대처법: 사용된 변수나 함수가 정의되었는지 확인 /  오탈자나 변수명의 대소문자를 확인하고, 정의되지 않은 변수나 함수를 정의하면 된다.

 

TypeError (타입 오류)

에러 메시지: 데이터 타입이 일치하지 않는 연산이나 함수 호출을 시도할 때 발생

대처법: 연산이나 함수 호출에서 사용되는 데이터 타입을 확인하고, 필요한 형 변환을 수행 예를 들어, 문자열과 숫자를 연산할 때는 문자열을 숫자로 변환 => 문자 + 숫자할때 에러 뜸

 

IndexError (인덱스 오류)

에러 메시지: 리스트나 튜플에서 존재하지 않는 인덱스를 접근하려고 할 때 발생

대처법: 인덱스 범위를 확인하고, 존재하지 않는 인덱스에 접근하는 것을 피해야함. 리스트 슬라이싱을 사용하여 안전하게 데이터에 접근할 수도 있습니다.

 

KeyError (키 오류)

에러 메시지: 딕셔너리에서 존재하지 않는 키를 사용하려고 할 때 발생

대처법: 사용되는 키가 딕셔너리에 존재하는지 확인 -> 딕셔너리에 존재하지 않는 키를 사용하지 않도록 주의

 

FileNotFoundError (파일을 찾을 수 없음 오류)

에러 메시지: 파일을 찾을 수 없을 때 발생

대처법: 파일 경로를 올바르게 지정했는지 확인-> 파일이 존재하는지, 경로가 정확한지 확인

 

+++ 이외의 에러법들은 구글링

 

 

Check point.

 

에러타입 구글링 tip

 

에러 타입 구글링할때는 모든 사람들에게 공통적으로 나타날만한 에러타입을 검색

내 코드에만 있는 파일경로 같은 것들을 검색하면 당연히 안나올 확률이 높다.

 

🚩에러에 대한 세부정보 구글링

 


A left join B 사용시  A와 B의 위치 확인해주기

=> 코드카타 풀면서 두개의 위치를 바꿔서 오류뜸;

 


lamda함수

lambda 인자 : 표현식

 

파이썬 나누기, 나머지, 몫 구하기

 

/ => 나누기 연산자 , 실수형으로 값을 리턴함

// => 몫을 구하는 연산자

% => 나머지를 구하는 연산자

divmod함수 => 몫과 나머지를 한번에 구함 

a,b = divmod(20,4)
 
a= 5 몫
b= 0 나머지

 


파일불러오기 (확장자가 csv인 파일)

import pandas as pd

df = pd.read_csv('file.csv')

=> 데이터프레임이 판다스인 csv파일 읽기로 불러오는 것

 

파일저장하기 (확장자가 csv인 파일)

import pandas as pd

data = {
    'Name': ['John', 'Emily', 'Michael'],
    'Age': [30, 25, 35],
    'City': ['New York', 'Los Angeles', 'Chicago']                *데이터 값
}

df = pd.DataFrame(data)
excel_file_path = '/content/sample_data/data.csv'           *파일경로
df.to_csv(excel_file_path, index = False)                         *index 는 왼쪽 대표열 표시 False는 표시x  / True는 표시o

print("csv 파일이 생성되었습니다.")

 


리스트 캄프리헨션

# 기본적인 구조

[표현식 for 항목 in iterable if 조건문]

 

패키지

다양한 모듈을 포함하는 디렉토리

재사용성을 높이고 적재적소에 알맞게 사용가능 

import pandas as pd

import numpy as np

import tensorflow as tf

import matplotlib.pyplot as plt

import seaborn

 

glob 함수

파일 시스템에서 파일을 찾을때 사용하는 함수

 

import glob

 

# 현재 경로의 모든 파일을 찾기

file_list1 = glob.glob('*')

 

 

 

 


Fin.