pressure = 103.9
def adjust(t):
temperature = t * 1.43 / pressure
return temperature변수의 범위 (Scope)
Tip학습 목표
- 매개변수(parameters)가 지역 변수(local variables)의 일종임을 이해합니다.
- 오류 메시지(traceback)를 읽고 오류가 발생한 위치, 종류 및 내용을 파악합니다.
Note질문
- 함수 내부에서 정의된 변수를 함수 외부에서도 사용할 수 있나요?
- 오류 메시지에서 유용한 정보를 어떻게 찾아내나요?
변수의 범위 (Variable Scope)
- 함수 내부에서 정의된 매개변수나 변수는 함수 외부에서는 보이지 않습니다. 이를 변수의 범위(scope)라고 합니다.
- 함수 내부에서만 유효한 변수를 지역 변수(local variables)라고 부릅니다.
- 위 코드에서
pressure는 함수 외부에서 정의된 전역 변수(global variable)입니다. 함수 내부에서도 이 값을 읽을 수 있습니다. - 반면
adjust함수 내부의t와temperature는 지역 변수입니다. 함수 실행이 끝나면 이 변수들은 더 이상 존재하지 않습니다.
# print(temperature) # NameError 발생: temperature는 정의되지 않음오류 메시지(Traceback) 읽기
오류가 발생하면 파이썬은 트레이스백(traceback)이라는 메시지를 출력합니다. 이 메시지에는 오류를 해결하는 데 필요한 핵심 정보가 담겨 있습니다.
- 에러의 종류: 마지막 줄의 첫 단어 (예:
NameError,IndexError,KeyError등). - 에러 내용: 종류 뒤에 이어지는 구체적인 설명.
- 발생 위치: 오류가 발생한 파일 이름과 줄 번호.
- 호출 경로: 함수가 중첩되어 호출된 경우, 어떤 경로를 거쳐 오류 지점에 도달했는지 보여줍니다.
Important연습 문제
지역 변수 확인하기
다음 코드의 실행 결과를 예측해 보세요.
limit = 100
def clip(value):
return min(max(0, value), limit)
print(clip(120))
# print(value)
Caution해답
clip(120)은 100을 반환합니다. 하지만 print(value)를 실행하면 NameError가 발생합니다. value는 clip 함수 내부에서만 사용되는 지역 변수이기 때문입니다.
Note핵심 요약
- 함수 내부의 변수는 외부에서 접근할 수 없는 지역 범위를 가집니다.
- 오류 메시지를 통해 발생 위치와 원인을 파악하는 습관을 기르세요.