728x90
def solution(str1, str2):
answer=''
for i in range(0,len(str1)):
answer += str1[i] + str2[i]
return answer
설명
answer=' '를 해주는 이유는 뭘까? 저 코드를 안 넣어주면 UnboundLocalError: local variable 'answer' referenced before assignment라는 에러가 발생한다.
UnboundLocalError란? 묶여있지 않은 위치 에러 -> 정확한 위치를 알수 없어서 발생한 에러
(answer 같은) 변수를 함수 내부에서 먼저 읽기 전에 값을 할당하려고 할 때 발생한다. 이는 함수 내부에서 변수를 사용하기 전에 해당 변수를 초기화하지 않아서 발생한다. Python은 변수를 참조할 때, 먼저 로컬 변수(변수가 저장된 메모리 장소)를 찾고, 그다음에 전역 변수를 찾습니다. 만약 로컬 변수가 참조되었는데 초기화되지 않았다면, UnboundLocalError가 발생한다.
- 내 방식으로 이해
변수를 초기화 해주는 이유는 컴퓨터한테 소개하기 위해서입니다. 예를 들어 상자가 있는데 안에 내용물을 모릅니다. 그래서 이 상자를 어디에 쓰는 건지 모르는 거죠 그래서 그 상자에 이름을 붙입니다. 이건 answer이라는 상자예요~ 내용물은 ' '입니다~느낌으로 표시를 해두는 거죠. 그래면 컴퓨터는 아하! 하면서 answer이랑 변수를 사용할 때 그 이름표를 확인하면서 가져올 수 있는 겁니다.
728x90
'Python' 카테고리의 다른 글
시간복잡도 - 개념 (0) | 2024.09.13 |
---|---|
프로그래머스/ python/ 등차수열의 특정한 항만 더하기 + 설명 (2) | 2024.09.10 |
코딩 테스트 대소문자 바꿔서 출력하기/ Python + 추가 문제, 설명 (0) | 2024.07.08 |
코딩테스트 문자열 돌리기/Python + string 정리 (0) | 2024.07.08 |
groomlevel/ 이진수 정렬/ python + 설명 (0) | 2024.07.08 |