본문 바로가기
PYTHON

[PYTHON] 파이썬 - 변수

by Laplace 2024. 6. 20.

변수.

- 변수란, 데이터가 저장된 저장소를 이름 붙인 것

- 컴퓨터의 메모리에 저장됨.

 

변수 네이밍 규칙.

- 문자 또는 _로 시작해야 함 ( 3.6 이상 버전부터는 한글 변수명 지원 )

- 특수문자( !,@,#,$ ) 및 공백은 사용 불가.

- 대소문자 구분 됨 ( apple <> APPLE )

- 미리 정의된 단어(예약어)는 사용 불가.

- 문맥에 맞게, 읽는 사람이 이해할 수 있게 만들기

- 한 글자나, 너무 긴 변수명은 지양

- 단수와 복수를 구분

- 카멜 케이스( camelCase )와 스네이크 케이스( snake_case )를 통한 표기, 혼용금지!!

- 파이썬은 스네이크 케이스가 선호된다. ( 뱀이라 그런가? )

 

변수 선언

- 타입을 지정하지 않음

- 문자열은 홀따옴표 '' , 또는 쌍따옴표"" 로 감싸서 할당

- 변수를 다른 변수에 할당하는 것도 가능

name = "laplace"
age = 30
solo = True

 

 

데이터 타입

- 숫자, 문자열, Boolean

- Dynamic Typing - 자동으로 결정됨

- Type에 따라 사용할 수 있는 기능이 제한

# 숫자형
num = 123

# 문자형
str = '헬로'

# boolean
t = True
f = False
nt = not True # False

 

 

 

Dynamic Typing(동적 타이핑)

- Dynamic Typing(동적 타이핑)은 프로그래밍 언어의 변수에 대한 데이터 타입을 프로그램이 실행될 때(runtime)에 결정하는 것을 의미합니다. 이는 변수를 선언할 때 데이터 타입을 명시적으로 지정할 필요가 없고, 변수에 어떤 값을 할당하느냐에 따라 자동으로 데이터 타입이 결정된다는 것을 의미합니다.

# 변수 선언 및 초기화
x = 10  # x는 현재 정수형

print(x)       # 출력: 10
print(type(x)) # 출력: <class 'int'>

# 변수에 다른 타입의 값 할당
x = "Hello"  # 이제 x는 문자열

print(x)       # 출력: Hello
print(type(x)) # 출력: <class 'str'>

위 예시에서, x는 처음에 정수형 값 10을 가지다가 나중에 문자열 값 "Hello"를 가집니다. 파이썬은 이러한 변화를 허용하며, 변수의 타입은 런타임에 동적으로 변경됩니다.

 

장점

- 유연성: 변수에 다양한 타입의 값을 할당할 수 있어 코드 작성이 더 유연하고 간단합니다.

- 코드 간결성: 타입 선언이 필요 없으므로 코드가 더 간결해집니다.

- 빠른 프로토타이핑: 빠르게 코드를 작성하고 테스트할 수 있습니다.

 

단점

- 런타임 오류: 타입 오류가 런타임에 발생할 수 있어, 컴파일 타임에 잡아내기 어렵습니다.

- 유지보수 어려움: 큰 프로젝트에서 타입 혼동이 발생할 수 있어, 코드 유지보수가 어려울 수 있습니다.

- 성능: 런타임에 타입을 결정하고 체크해야 하므로, 정적 타이핑 언어에 비해 성능이 저하될 수 있습니다.

 

변수의 생명주기

- 정의된 변수는 정해진 생명주기( Life Cycle )를 가짐

- 변수의 선언과 초기화 : 변수를 선언하거나, 초기화하는 순간 메모리에 할당됨

- 변수 존재 : 선언된 이후 유효한 범위( Scope )에서 사용 가능

- 변수 소멸 : 더 이상 사용되지 않으면 소멸 ( 함수의 종료, 새로운 값의 할당, 변수의 삭제 ) 변수는 더 이상 참조되지 않을 때 소멸합니다.       - 파이썬의 가비지 컬렉터가 이러한 변수를 자동으로 메모리에서 해제합니다. 

   - 함수 내에서 선언된 지역 변수는 함수 실행이 종료되면 자동으로 소멸합니다.

   - 파이썬은 참조 카운트를 사용하여 객체가 더 이상 사용되지 않을 때 메모리에서 해제합니다. 객체의 참조 카운트가 0이 되면 가비지

     컬렉터가 이를 수집하여 메모리에서 제거합니다.

 

 

'PYTHON' 카테고리의 다른 글

[PYTHON] 파이썬 - 숫자 처리 함수  (0) 2024.07.01
[PYTHON] 파이썬 - 연산자  (0) 2024.07.01
[PYTHON] 파이썬 - 문자열  (0) 2024.06.21