13.1.3 활동범위가 다른 지역변수와 전역변수

    지금까지 사용자 정의 함수를 정의하고 호출하는 방법을 배웠습니다. 이번에는 사용자 정의 함수를 사용할 때 오류가 가장 많이 발생하는 부분인 지역변수와 전역변수의 개념을 다뤄 보겠습니다.

     

    특정 지역에서만 사용하는 지역변수

    다음 코드를 실행해 봅시다.

    def hi():
        name = input('이름은? ')
        print('hi!')
        print('My name is', name, '!')
    
    print('자기소개를 시작합니다.')
    hi()
    print(name, '님 안녕하세요.')
    실행결과
    자기소개를 시작합니다.
    이름은? 제임스
    hi!
    My name is 제임스 !
    ---------------------------------------------------------------------------
    ----> 8 print(name, '님 안녕하세요.')
    NameError: name 'name' is not defined

    name 변수가 정의되지 않았다며 NameError 오류가 발생합니다. 분명 코드에 name 변수가 있는데 왜 정의되지 않았다고 나올까요?

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.