코딩/파이썬

[새싹 성동 2기] 파이썬 변수와 관련된 기초 정리

insu90 2024. 12. 6. 19:44

1. 변수와 동적 타이핑(Dynamic Typing)

파이썬의 변수 특성

  • 파이썬은 동적 타이핑을 지원합니다.
    x = 10
    print(type(x))  # <class 'int'>
    
    x = "hello"
    print(type(x))  # <class 'str'>

    • 변수의 데이터 타입은 값을 할당할 때 자동으로 설정됩니다.
    • 변수 선언 시 별도의 데이터 타입 지정이 필요 없습니다.
  • 자바(Java)처럼 변수의 타입을 선언해야 하는 언어와 대조적입니다.
    int i;
    int j = 100;

2. 강력한 타입 검사(Strong Typing)

타입 변경 없이 연산 불가능

x = "123"
y = 456

print(x + y)  # TypeError: can only concatenate str (not "int") to str
  • 파이썬은 변수 타입 간의 자동 변환을 지원하지 않습니다.
  • 서로 다른 타입의 값을 연산하면 오류가 발생합니다.

명시적 형변환

x = "123"
y = 456

print(int(x) + y)  # 579
print(x + str(y))  # 123456
  • 타입 변환 함수(int(), str() 등)를 사용해 명시적으로 타입을 변환해야 합니다.

3. 가변성(Mutability)과 불변성(Immutability)

가변 데이터 타입

x = [1, 2, 3]
x[0] = 10
print(x)  # [10, 2, 3]
  • 데이터 변경 가능.
  • 대표적인 예: 리스트(list)

불변 데이터 타입

s = "Hello"
s[1] = "x"  # TypeError: 'str' object does not support item assignment​
  • 데이터 변경 불가능.
  • 대표적인 예: 문자열(str)

4. 변수 할당과 참조

참조(Reference) 개념

a = [1, 2, 3]
b = a  # a와 b는 동일한 객체를 참조
a[1] = 200
print(a, b)  # [1, 200, 3] [1, 200, 3]
  • 파이썬의 변수는 객체를 가리키는 참조(레퍼런스)로 동작합니다.
  • 여러 변수가 동일 객체를 참조할 수 있습니다.

값 교환

x, y = 10, 20
x, y = y, x
print(x, y)  # 20, 10
  • 파이썬에서는 간단히 값을 교환할 수 있습니다.
 

5. 변수 초기화

  • 변수 선언 전에 값을 할당하지 않으면 오류가 발생합니다.
    x  # NameError: name 'x' is not defined

  • 초기화 시 None을 사용합니다.
    x = None
    print(x)  # None

6. 변수 명명 규칙

  1. **문자(A-Z, a-z), 숫자(0-9), 밑줄(_)**로 구성.
  2. 숫자로 시작할 수 없음.
  3. 대소문자를 구분.
  4. **예약어(키워드)**는 변수 이름으로 사용할 수 없음.

7. 지역 변수와 전역 변수

지역 변수(Local Variable)

  • 함수 내부에서 선언된 변수로, 함수 외부에서 접근할 수 없습니다.
    def my_function():
        local_variable = 42
        print(local_variable)
    
    my_function()
    print(local_variable)  # NameError: name 'local_variable' is not defined

전역 변수(Global Variable)

  • 함수 외부에서 선언된 변수로, 프로그램 전체에서 접근 가능합니다.
    global_variable = "Hello, World"
    
    def my_function():
        print(global_variable)  # Hello, World
    
    my_function()
    print(global_variable)  # Hello, World

8. 전역 변수 수정하기

Shadowing(섀도잉)

  • 함수 내부에서 전역 변수와 동일한 이름으로 지역 변수를 선언하면, 전역 변수가 가려집니다.
a = 10

def f():
    a = 100  # 지역 변수
    print(a)  # 100

print(a)  # 10
f()
print(a)  # 10​
 

global 키워드 사용

  • 함수 내부에서 전역 변수를 수정하려면 global 키워드를 사용해야 합니다
a = 10

def f():
    global a
    a = 100
    print(a)  # 100

print(a)  # 10
f()
print(a)  # 100
 

9. 전역 변수와 오류

  • 함수 내부에서 전역 변수를 선언하기 전에 사용하면 오류가 발생합니다.
global_variable = "Hello, World"

def my_function():
    print(global_variable)  # UnboundLocalError 발생
    global_variable = "Hello, Python"

my_function()
  • 해결 방법: 함수 내부에서 global 키워드로 전역 변수 선언.
global_variable = "Hello, World"

def my_function():
    global global_variable
    print(global_variable)  # Hello, World
    global_variable = "Hello, Python"
    print(global_variable)  # Hello, Python

my_function()
print(global_variable)  # Hello, Python

 

파이썬의 변수는 동적 타이핑과 강력한 타입 검사 덕분에 유연하면서도 안정적인 코드를 작성할 수 있게 합니다. 변수의 가변성과 불변성, 참조 개념, 그리고 지역/전역 변수의 구분을 잘 이해하면 더 효과적으로 파이썬을 사용할 수 있습니다.

 

 

 

 

 

*생성형 AI 활용한 클라우드&보안 전문가 양성캠프 과정의 교육내용 정리 자료입니다.