[python] 파이썬에서 지역 변수와 전역 변수의 개념에 대해 설명해주세요.

파이썬에서 변수는 전역 범위와 지역 범위를 가질 수 있습니다.

전역 변수(Global Variable)는 프로그램 전체에서 사용할 수 있는 변수로, 어디서든 접근할 수 있습니다. 전역 변수는 보통 함수 밖에서 정의되며, 프로그램의 어디서든 사용될 수 있습니다.

지역 변수(Local Variable)는 특정한 함수나 블록(scope) 안에서만 사용할 수 있는 변수입니다. 지역 변수는 해당 함수나 블록에서만 유효하며, 다른 함수나 블록에서는 접근할 수 없습니다.

예를 들어보겠습니다.

# 전역 변수
global_var = 10

def my_function():
    # 지역 변수
    local_var = 20
    print(global_var)  # 전역 변수에 접근 가능
    print(local_var)

my_function()
print(global_var)  # 전역 변수에 접근 가능
print(local_var)   # 에러 발생: local_var는 my_function()의 지역 변수이므로 접근할 수 없음

이 예제에서, global_var는 전역 변수로서 my_function() 안에서도 접근할 수 있습니다. 하지만 local_varmy_function()의 지역 변수로서 my_function() 외부에서는 접근할 수 없습니다. 따라서 print(local_var)를 실행하면 에러가 발생합니다.

지역 변수와 전역 변수는 동일한 이름을 가질 수 있습니다. 하지만 함수 안에서 변수를 사용할 때는 지역 변수를 우선으로 사용하며, 전역 변수에 접근하려면 global 키워드를 사용해야 합니다.

global_var = 10

def my_function():
    global global_var  # 전역 변수에 접근하기 위해 global 키워드 사용
    local_var = 20
    global_var = 30  # 전역 변수의 값을 변경
    print(global_var)  # 30 출력
    print(local_var)

my_function()
print(global_var)  # 30 출력

이 예제에서, my_function() 안에서 global global_var 구문을 이용하여 전역 변수 global_var에 접근하고, 값을 변경하였습니다. 따라서 print(global_var)를 실행하면 30이 출력됩니다.

전역 변수와 지역 변수를 올바르게 사용하는 것은 프로그램의 동작을 이해하고 유지보수하는 데 중요합니다. 변수의 범위를 정확히 이해하여 변수 충돌이나 오류를 방지하는 것이 좋습니다.