[파이썬] 조건문과 변수의 적절한 범위 설정

조건문과 변수의 적절한 범위 설정은 프로그래밍에서 중요한 부분입니다. 이는 코드의 실행 흐름과 변수의 사용 여부를 결정하며, 올바르게 설정되지 않으면 원하는 결과를 얻기 어려울 수 있습니다. 이번 글에서는 Python에서 조건문과 변수의 범위를 어떻게 설정하는지 알아보겠습니다.

변수의 범위 (Scope of Variables)

변수의 범위는 해당 변수가 어디에서 유효한지를 결정합니다. Python에는 다음과 같은 변수의 범위가 있습니다.

  1. 전역 범위 (Global Scope): 전역 범위는 프로그램 전체에서 유효한 변수입니다. 함수 내부가 아닌 어디에서든지 접근할 수 있습니다.

    x = 10  # 전역 변수
       
    def my_function():
        print(x)  # 전역 변수에 접근 가능
       
    my_function()  # 출력: 10
    
  2. 지역 범위 (Local Scope): 지역 범위는 함수 내부에서 유효한 변수입니다. 함수 내부에서 정의된 변수는 해당 함수에서만 접근할 수 있습니다.

    def my_function():
        y = 20  # 지역 변수
        print(y)
       
    my_function()  # 출력: 20
       
    print(y)  # NameError: name 'y' is not defined
    

    주의: 지역 범위에서 정의된 변수는 해당 함수 내에서만 유효하기 때문에 외부에서 접근하면 NameError가 발생합니다.

조건문의 범위 (Scope of Conditionals)

Python에서 조건문(if 문)의 범위도 주의해야 합니다. 조건문은 다음과 같은 형식으로 사용됩니다.

if 조건:
    # 실행할 코드 블록

조건문의 범위는 특별한 표기법 없이, 들여쓰기(indentation)를 통해 구분됩니다. 조건문 내부에 있는 코드 블록은 조건이 참(True)일 때 실행됩니다.

x = 5

if x > 0:
    print("x는 양수입니다.")
    print("조건이 참일 때 실행됩니다.")
else:
    print("x는 음수입니다.")
    print("조건이 거짓일 때 실행됩니다.")

print("조건문 종료 후에도 실행됩니다.")

범위 설정 주의사항

조건문과 변수의 범위 설정에는 몇 가지 주의해야 할 사항이 있습니다.

  1. 들여쓰기: Python에서는 들여쓰기를 통해 코드 블록의 범위를 나타냅니다. 따라서 들여쓰기를 일관되게 사용해야 합니다. 일반적으로 4개의 공백을 사용하는 것이 권장됩니다.

  2. 전역 변수와 지역 변수: 전역 변수는 어디서든 접근할 수 있지만, 지역 변수는 함수 내부에서만 접근할 수 있습니다. 전역 변수와 동일한 이름을 가진 지역 변수를 사용하면 지역 변수가 우선하여 사용됩니다.

    x = 10
       
    def my_function():
        x = 20  # 전역 변수와 같은 이름의 지역 변수
        print(x)
       
    my_function()  # 출력: 20
    print(x)  # 출력: 10
    
  3. 조건문 안에서의 변수 설정: 조건문 내부에서 변수를 설정하면 해당 변수는 조건문의 범위 내에서만 유효합니다. 조건문 외부에서도 사용해야 한다면, 조건문 외부에서 미리 변수를 초기화해야 합니다.

    if x > 10:
        y = 5  # 조건문 안에서 변수 설정
       
    print(y)  # NameError: name 'y' is not defined
    

    주의: 조건문 내부에서 변수를 설정하면 해당 변수는 조건문이 실행되지 않을 경우 초기화되지 않아 NameError가 발생할 수 있습니다.

조건문과 변수의 범위 설정은 Python 프로그래밍에서 매우 중요한 부분입니다. 올바른 범위 설정을 통해 코드를 효율적이고 가독성 좋게 작성할 수 있습니다. 이를 지켜가며 프로그래밍을 연습해 봅시다!