데이터 분석가:Applied Data Analytics/파이썬

전역 변수(Global variable), 모듈, 패키지, 라이브러리

데이터분석 2025. 1. 24. 17:04
320x100
728x90

전체에서 접근할 수 있는 변수를 전역 변수(Global variable)라고 부르고,

전역 변수에 접근할 수 있는 범위를 전역 범위(Global scope)라고 합니다.

함수 안에서 만든 변수는 지역 변수(Local variable)라고 합니다. 지역 변수는 만든 함수 안에서만 접근할 수 있고, 함수 바깥에서는 접근할 수 없다. 지역 변수를 접근할 수 있는 범위는 지역 범위(Local scope) 라고 한다. (출처 : 모두연 교육강의)

 

변수를 함수 안에서 변경할 수 있는 방법은 함수 안에 global 예약어를 사용하면 된다. 

주의할 점은 global 예약어와 할당하는 코드(=)를 같이 쓰면 안된다.

name = 'aiffel'  # 전역 변수

def hi4():
    global name = 'python' # global 예약어와 할당을 동시에
    print(f'hi {name}!')  

hi4()
print(name)      결과 : 에러
 
 

클로저

  • 조건 1 : 어떤 함수의 내부 함수일 것
  • 조건 2 : 그 내부 함수가 외부 함수의 변수를 참조할 것
  • 조건 3 : 외부 함수가 내부 함수를 리턴할 것

쉽게 설명하면 

조건 1: "어떤 함수의 내부 함수일 것"

  • 클로저는 항상 함수 안에 또 다른 함수가 있어야 해.
  • 왜냐하면 내부 함수가 외부 함수의 환경(변수 등)을 기억해야 하니까.

비유:

  • 마치 다락방 안에 상자가 있는 상황이야. 상자가 밖으로 나갈 수 있으려면, 다락방(외부 함수) 안에 있어야 해!

예제:

 예외처리

오류(Error)

  • 프로그래밍 실행 에 발생하는 오류 → 구문 오류(Syntax error) :구문 오류는파이썬 문법에 맞지 않아서 프로그래밍 실행도 전에 오류(코드를 알맞게 수정해야 해야 합니다)

 

  • 프로그래밍 실행 에 발생하는 오류 → 예외(Exception) 또는 런타임 오류(Runtime error) : 이는 프로그래밍이 실행된 후에 나오는 에러입니다.
  • 이런 예외를 해결하는 모든 것을예외 처리(Exceptional Handling) 라고 하며 처리방법은 아래 두가지(조건문 사용 / try 구문 사용)

 

try - except 구문

어떤 상황에서 예외가 발생하는지 완벽하게 이해하지 않아도 프로그램이 강제로 죽어 버리는 상황을 막을 수 있습니다.

 
 
try:
    # 예외 걱정 없이 입력값에 float 함수를 씌움
    num = float(input('수를 입력하세요 : '))
    print(f'입력한 수는 {num}입니다.')

# try에서 예외가 발생했을 때 실행할 코드
except:
    print('수가 아닙니다.')

 

 

try - except - pass 구문 

 

 

 

try - except - else - finally 구문 

   try 구문은 단독으로 쓰일 수 없고 except 또는 finally 구문과 함께 쓰여야 합니다.
   else 구문은 except와 함께 쓰이고, except 구문 뒤에 사용해야 합니다.
  • try + except
  • try + except + else
  • try + except + finally
  • try + except + else + finally
  • try + finally
# 에러를 일부러 발생시켜 봅시다. 예외를 발생시킬 때는 raise에 에러를 지정하고 에러 메시지를 넣음.
raise Exception('에러를 일부러 발생시킴'

 

SyntaxError : 잘못된 문법

NameError : 참조변수 없음

ZeroDivisionError : 0으로 나눌 수 없음

IndexError : 인덱스 범위 벗어남

ValueError : 참조 값이 없음
KeyError : 키 없음 에러 (주로 딕셔너리 사용시)
AttributeError : 모듈, 클래스의 잘못된 속성을 사용함
FileNotFoundError : 파일 못 찾음
TypeError : 타입이 맞지 않음

 

 

 

모듈, 패키지, 라이브러리

표준 모듈 (기본 내장 모듈)

  • 표준 모듈 : 파이썬 내장 모듈 :
    random( 난수를 발생시키는 모듈 ) , math( 수학과 관련된 모듈입니다. 출력값은 대부분 float 자료형 ), time(  시간과 관련된 모듈 ), keyword( 키워드를 출력하거나 그 값이 키워드인지 확인할 수 있는 모듈)
  • 외부 모듈 : 개발자들이 새롭게 만든 모듈 : 

from import를 사용하면 모듈의 일부분만 가져올 수 있다.2

from import as : 모듈 일부분만 가져오기 + 키워드

패키지(package) :  

여러 모듈을 묶은 것입니다. 따라서 패키지에 들어있는 모듈도 import를 사용하여 가져온다.

 

라이브러리( 여러 패키지와 모듈을 모아둔 것 )

프레임워크( 프로그래밍을 진행할 때 필수적인 코드, 알고리즘 등과 같이 어느 정도의 구조를 제공해준다 )

 

라이브러리 / 프레임워크 차이점

내가 원하는 걸 직접 골라서 사용 정해진 규칙에 따라 작업을 진행해야 함
내가 주도적으로 일을 진행함 프레임워크가 나를 주도해서 작업을 진행함
예: 연필, 자, 가위 등 도구를 골라 사용하는 것 예: 요리 학원에서 레시피대로 요리하는 것