파이썬 변수 개념 및 사용법
**변수**는 데이터를 저장하기 위해 사용하는 이름을 가진 메모리 공간입니다. 파이썬에서는 변수에 값을 할당하면 자동으로 해당 값을 저장하고, 데이터의 타입을 추론하여 관리합니다.
변수의 특징
- 동적 타이핑(Dynamic Typing)
-
변수의 데이터 타입을 명시적으로 선언하지 않아도 됩니다.
x = 10 # 정수형(int) y = 3.14 # 실수형(float) name = "Alice" # 문자열(str) -
타입 변경 가능
-
변수에 다른 타입의 값을 자유롭게 재할당할 수 있습니다.
x = 10 # 정수형 x = "Hello" # 문자열 -
강력한 타입(Type Checking)
-
타입 간의 불일치는 오류를 발생시킵니다.
x = 10 y = "20" print(x + y) # TypeError: 정수와 문자열은 더할 수 없음 -
파이썬 변수는 참조값을 저장
- 변수는 데이터 값을 직접 저장하지 않고, 메모리의 주소를 참조합니다.
변수 이름 규칙
- 문자, 숫자, 밑줄(_)만 사용 가능
-
변수 이름은 반드시 문자 또는 밑줄로 시작해야 함.
valid_variable = 10 _another_variable = 20 -
대소문자 구분
-
variable과Variable은 서로 다른 변수.name = "Alice" Name = "Bob" print(name) # Alice print(Name) # Bob -
예약어 사용 금지
-
파이썬의 예약어는 변수 이름으로 사용할 수 없음.
(예:if,else,while,for,True,False,None등)
if = 10 # SyntaxError -
의미 있는 이름 사용 권장
- 변수 이름은 변수의 목적을 나타내는 의미 있는 이름으로 작성.
total_price = 1000
변수의 할당 및 동작
- 값 할당
-
=연산자를 사용하여 값을 변수에 할당.age = 25 pi = 3.14 -
여러 변수에 동시에 할당
-
동일한 값을 여러 변수에 동시에 할당.
a = b = c = 10 print(a, b, c) # 10 10 10 -
여러 값 동시 할당 (언패킹)
- 여러 변수를 한 번에 초기화.
x, y, z = 1, 2, 3 print(x, y, z) # 1 2 3
변수의 스코프(Scope)
- 지역 변수(Local Variable)
-
함수 내부에서 정의된 변수는 해당 함수 내에서만 사용 가능.
def my_function(): x = 10 print(x) # 10 my_function() # print(x) # NameError: x is not defined -
전역 변수(Global Variable)
-
함수 밖에서 정의된 변수는 모든 함수에서 사용 가능.
x = 10 def my_function(): print(x) # 10 my_function() print(x) # 10 -
global키워드 -
함수 내에서 전역 변수 값을 수정하려면
global키워드를 사용.x = 10 def my_function(): global x x = 20 my_function() print(x) # 20 -
nonlocal키워드 - 중첩 함수에서 상위 함수의 변수를 수정하려면 사용.
def outer_function(): x = 10 def inner_function(): nonlocal x x = 20 inner_function() print(x) # 20 outer_function()
변수의 타입 확인 및 변환
- 타입 확인
-
type()함수로 변수의 데이터 타입 확인.x = 10 print(type(x)) # <class 'int'> -
타입 변환
int(),float(),str()등을 사용해 타입 변환 가능.x = "100" y = int(x) # 문자열을 정수로 변환 print(y + 10) # 110
변수의 활용 예
# 사용자 입력을 받아 두 숫자를 더하기
num1 = int(input("첫 번째 숫자 입력: "))
num2 = int(input("두 번째 숫자 입력: "))
result = num1 + num2
print("두 숫자의 합:", result)
변수는 파이썬 프로그램의 데이터를 관리하는 기본적인 도구이며, 적절히 사용하면 코드의 가독성과 유지보수성이 크게 향상됩니다.