Python - 문제 미리보기

문제 2066

medium
다음 코드의 실행 결과는? ```python x = 500 def my_function(): x = 200 print("함수 내부:", x) my_function() print("함수 외부:", x) ```
A. 함수 내부: 500, 함수 외부: 500
B. 함수 내부: 200, 함수 외부: 500
C. 함수 내부: 200, 함수 외부: 200
D. 오류 발생

정답: B

동일 이름 변수의 스코프 분리: 변수 이름 충돌 시 Python 규칙: ⦁ 지역 변수 우선: 함수 내부에서는 지역 변수가 전역 변수보다 우선 ⦁ 독립적 존재: 같은 이름이어도 서로 다른 메모리 공간에 저장 ⦁ 스코프별 관리: 각 스코프에서 별도로 관리됨 변수 탐색 순서 (LEGB Rule): 1. Local: 현재 함수의 지역 스코프 2. Enclosing: 상위 함수의 스코프 (중첩 함수) 3. Global: 전역 스코프 4. Built-in: 내장 스코프 코드 실행 과정: 1. 전역 변수 정의: ```python x = 500 # 전역 스코프의 x ``` 2. 함수 정의 및 호출: ```python def my_function(): x = 200 # 지역 스코프의 x (전역 x와 별개) print("함수 내부:", x) # 지역 x 참조 → 200 ``` 3. 함수 실행: ⦁ `my_function()` 호출 ⦁ 함수 내부에서 `x = 200` → 새로운 지역 변수 생성 ⦁ `print("함수 내부:", x)` → 지역 변수 x 참조 → "함수 내부: 200" 출력 4. 함수 외부 실행: ```python print("함수 외부:", x) # 전역 x 참조 → 500 ``` ⦁ 전역 스코프에서 x 참조 → "함수 외부: 500" 출력

💡 학습 팁

이 문제를 포함한 Python 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.