지역변수, 전역변수
575
작성한 질문수 1
y = 100
def test2():
# y = 1000
# y *= 10
return y
# 실행
print(f'ex2 결과 : {test2()}')y = 100
def test2():
# y = 1000
y *= 10
return y
# 실행
print(f'ex2 결과 : {test2()}')이거 두 개의 차이점을 잘 모르겠습니다
위 코드는 실행이 되고, 아래 코드는 실행이 되지 않는데,
위 코드에서도 결국에는 y를 리턴하기전에 y라는 변수가 함수
내에서는 선언이 되어있지 않은 것은 마찬가지 아닌가요??
할당 이전에 참조되었기 때문에 UnboundLocalError가
발생하는건데, return이라는 것을 실행하는 것 또한 할당 이전
에 참조 된 것이라고 볼 수 있는거 아닌가용
답변 2
2
첫 번째 코드에서는 test2() 함수 내에서 y를 정의하지 않았으므로, y는 전역 변수로 간주됩니다. 이 경우에는 test2()에서 전역 변수 y를 반환하는 데 아무 문제가 없습니다.
하지만 두 번째 코드에서는 test2() 함수 내에서 y를 선언하고 y 값을 변경했습니다. 이때, y는 지역 변수로 간주되며, 전역 변수 y와는 별개의 변수로 취급됩니다.
Chat GPT 답변도 남겨요~
1
안녕하세요.
스코프에 대해서 질문주셨네요.
아래 함수 지역내에 y 변수가 초기화 되어 있지 않기 때문에 에러가 발생해요.
함수 지역내에서 y 랑 외부의 y랑 영역이 다르기 때문에 발생하는 에러입니다.
주석을 해제하시면 실행이 될거예요.(변수를 찾는 순서와 관련이 있어요.)
스코프에 대해 자세히 나와 있는 링크를 드릴테니 한 번 읽어보세요!
dict, zip
0
34
2
for, range 추가 방법
0
47
0
오타: 20-1 예시 코드에 c = 135가 아니고 a = 135이죠?
0
79
1
방법2, 방법3의 결과가 요구 출력결과와 다릅니다.
0
125
4
glob.glob문 오류
0
72
1
질문입니다.
0
66
1
기초적인 질문입니다.
0
59
1
딕셔너리 인트문제
0
58
0
아나콘다 설치 시 오류가 뜨면서 인스톨이 끝까지 안 되네요...
0
129
1
실행오류
0
65
2
주피터 노트북 새버전
0
137
2
with open
0
132
2
PowerShell Prompt에서 주피터노트북 기본 드라이버/폴더 위치변경 후 주피터노트북 실행
0
189
2
기초적인 질문입니다만
0
113
1
새로운 dict를 생성한 이유에 대해서 궁금합니다.
0
169
2
안녕하세요 전 버전이 상위버전인지 달라서
0
246
2
주피터 token
0
143
2
주피터 token
0
169
2
아나콘다를 D드라이브에 설치했는데
0
730
4
python 3 (ipykernel)이 뜨지 않음
0
205
1
안돼요ㅜㅜ in[]으로 뜨지도 않고 초록색으로 변하지도 않아요...
1
348
3
주피터를 크롬말고 엣지에서 그대로 써도 괜찮은가요?
0
261
2
오류
0
149
1
주피터 실행 불가 에러
0
417
2





