Python은 동적 타이핑 언어이기 때문에, 변수 선언 시 타입을 명시할 필요가 없으며 = 연산자로 언제든지 값을 재할당할 수 있습니다.
변수는 메모리에 저장된 객체를 가리키는 이름(name)이며, 모든 값은 객체(object)입니다.
python
#기본 할당
a = 10 #int 객체 생성 후 a가 참조
b = 5.2 #float 객체 생성 후 b가 참조
c = "kopo" #str 객체 생성 후 c가 참조
#다중 할당
x, y, z = 1, 2, 3
#체인 할당(모두 같은 객체를 참조)
m = n = o = 100
python
PI = 3.14159
MAX_RETRY = 5
실제로 재할당은 가능하므로, "변경 금지"는 개발자 간 약속입니다.
리터럴(Literal)은 소스 코드에 직접 쓰인 "원시 데이터"를 가리킵니다.
Python
a = 0b1010 # 이진 리터럴 → 10
b = 100 # 십진 리터럴
c = 0o310 # 8진 리터럴 → 200
d = 0x12c # 16진 리터럴 → 300
f1 = 10.5 # 부동소수점 리터럴
f2 = 1.5e2 # 지수 표기법 → 150.0
z = 3.14j # 복소수 리터럴
Python
s1 = "Hello, Python" # 작은/큰따옴표
s2 = 'kopo' # 한 글자도 str
s3 = """여러 줄
문자열 예제""" # 멀티라인 문자열
s4 = r"raw \n string" # 원시 문자열 (이스케이프 무시)
s5 = u"\u00dcnic\u00f6de" # 유니코드 리터럴
Python
flag = True # True, False
nothing = None # 값 없음 표시
Python의 주요 컬렉션 타입들은 모두 리터럴 문법을 제공합니다.
Python
fruits = ["apple", "mango", "orange"]
print(fruits[0]) # apple
fruits.append("banana") # ["apple","mango","orange","banana"]
fruits[1:3] = ["kiwi"] # 슬라이싱으로 치환
Python
coords = (10, 20)
# coords[0] = 5 # TypeError: 튜플은 재할당 불가
nested = (1, 2, [3, 4])
nested[2].append(5) # 내부 리스트는 변경 가능
Python
person = {"name": "Jack", "age": 26}
print(person["name"]) # Jack
print(person.get("email")) # None (KeyError 방지)
person["age"] = 27 # 값 변경
person["city"] = "Seoul" # 새 키 추가
-생성 방법: dict(), 리스트 튜플 페어, 딕셔너리 컴프리헨션
python
squares = {i: i*i for i in range(1, 6)}
Python
vowels = {"a", "e", "i", "o", "u"}
vowels.add("y") # 요소 추가
vowels.update(["a", "i"]) # 중복은 자동 제거
vowels.remove("e") # 요소 삭제
다음은 5편 데이터 타입에 대해서 알아보도록 하겟습니다.