파이썬은 간결하고 읽기 쉬운 문법으로 인기 있는 프로그래밍 언어입니다.
파이썬의 기초 중 가장 중요한 개념은 “객체”와 “변수”, 그리고 “자료형” 입니다.
오늘은 파이썬 기초 첫번째 포스팅으로 이 개념들을 명확하게 설명 드리도록 하겠습니다.
혹시 아직 파이썬과 주피터 노트북을 설치 하지 않았을 경우 아래 링크를 통해 설치 후 실습을 진행하시기 바랍니다.
파이썬 다운로드, 설치방법 – 맥북(Mac OS)
아나콘다 주피터 노트북(Anaconda Jupyter Notebook) 설치하기
1. 객체와 변수의 개념
1) 객체(Object)
파이썬은 숫자, 문자열, 리스트, 함수 등 모든 것으을 객체로 간주됩니다.
객체는 데이터와 해당 데이터를 처리하는 메서드(Method)를 포함합니다.
이러한 객체는 각자 고유한 식별자(ID)를 가지고 있으며, 컴퓨터 메모리에 저장 됩니다.
예를 들어, 정수와 문자열은 파이썬의 기본적인 객체 중 일부입니다.
아래와 같이 변수를 사용하여 객체를 할당할 수 있습니다.
아래에서 x
변수에 숫자 10을, name
변수에 문자열 “Alice”를 할당했습니다.
이제 각 변수는 해당 객체를 참조하고 있습니다.
이들 객체는 id() 함수를 통해 id를 확인 할 수 있습니다.
어떤 id가 객체에 할당 될지는 알 수 없지만, 지금은 id가 같으면 같은 객체라고 이해하면 됩니다.
아래의 코드를 실제로 실행해보고 “x”와 “name”의 ID를 확인해 보세요.
# 숫자 객체 할당
x = 10
# 문자열 객체 할당
name = "Alice"
#id() 함수를 통해 각 객체의 id 확인
id(x)
id(name)
2) 변수
변수는 객체를 가리키는 이름표입니다.
객체를 메모리에 저장하고 접근하기 위해 변수를 사용합니다.
변수를 생성하고 값을 할당하는 것을 변수에 객체를 “참조(reference)”한다고 합니다.
예를 들어, 다음과 같이 숫자 객체를 변수에 할당할 수 있습니다.
x = 10
2. 변수 할당과 식별자
변수 할당은 객체를 변수에 저장하는 것을 의미하며,
이렇게 변수를 통해 객체를 참조할 수 있습니다.
파이썬에서 식별자는 변수, 함수, 클래스 등에 붙이는 이름을 말합니다. 아래 코드에서
x
라는 변수를 생성하고, 값이 10인 숫자 객체를 할당합니다.x
라는 변수가 객체를 가리키는 식별자가 됩니다.
# 숫자 10을 변수 x에 할당합니다.
x = 10
# x 변수가 객체를 참조한 후, y 변수도 x와 같은 객체를 참조하게 됩니다.
y = x
파이썬에서 여러 변수가 하나의 객체를 참조할 수 있습니다.
이는 여러 변수가 같은 메모리 위치를 가리킨다는 의미입니다.
3. 뮤터블(Mutable)과 이뮤터블(Immutable) 객체
뮤터블(Mutable)과 이뮤터블(Immutable) 객체는 값이 변경 가능한지에 따라 결정 됩니다.
1) 뮤터블(Mutable) 객체
아래의 예시에서 my_list
는 뮤터블 객체인 리스트입니다. append()
메서드를 사용하여 리스트에 값을 추가하고,
인덱스를 이용해 특정 원소의 값을 변경할 수 있습니다.
# 리스트 할당
my_list = [1, 2, 3]
# 뮤터블 객체의 값 변경
my_list.append(4) # 리스트에 4를 추가
print(my_list) # 출력: [1, 2, 3, 4]
my_list[1] = 5 # 인덱스 1의 값을 5로 변경
print(my_list) # 출력: [1, 5, 3, 4]
2) 이뮤터블(Immutable) 객체
이뮤터블 객체는 객체의 값이 변경 불가능하다는 의미입니다.
객체를 생성한 후에는 해당 값을 변경할 수 없습니다.
문자열과 튜플이 이뮤터블 객체의 대표적인 예시입니다.
아래의 예시에서 my_string
은 이뮤터블 객체인 문자열입니다.
문자열은 한 번 생성되면 내부 값을 변경할 수 없기 때문에 my_string[0]
에 새로운 값을 할당하려고 하면 오류가 발생합니다.
# 문자열 할당
my_string = "Hello"
# 이뮤터블 객체의 값 변경 (오류 발생)
my_string[0] = "h" # 오류: 문자열은 변경 불가능한 객체입니다.
3) 뮤터블과 이뮤터블 객체의 차이
뮤터블 객체는 값을 변경할 수 있으므로 원본 객체가 변경되면 해당 객체를 참조하는
모든 변수에도 영향을 미칩니다. 이뮤터블 객체는 값을 변경할 수 없기 때문에 새로운 객체가
생성되어 기존 객체에 영향을 미치지 않습니다.
뮤터블 객체를 사용하면 원본 객체를 직접 변경할 수 있기 때문에 주의가 필요합니다.
이뮤터블 객체는 값의 불변성을 보장하기 때문에 안전하게 사용될 수 있습니다.
4. 객체와 변수의 상호작용
변수를 사용하여 객체에 접근하고 조작할 수 있습니다.
변수를 다른 변수에 할당하면 두 변수가 같은 객체를 참조하게 됩니다.
뮤터블 객체의 경우 원본이 변경되면 모든 변수에 영향을 미치므로 주의 해야 합니다.
1) 객체와 변수의 상호작용
아래의 예시에서 fruits
라는 변수는 빈 리스트를 참조하고 있습니다. append()
메서드를 사용하여 fruits
변수에 연속적으로 “apple”, “banana”, “orange” 값을
추가했습니다. 이렇게 변수를 사용하여 객체에 접근하고 값을 조작할 수 있습니다.
# 빈 리스트를 생성하고 변수에 할당
fruits = []
# 변수를 이용하여 리스트에 값 추가
fruits.append("apple")
fruits.append("banana")
fruits.append("orange")
# 변수를 이용하여 리스트의 값 출력
print(fruits) # 출력: ['apple', 'banana', 'orange']
2) 여러 변수가 하나의 객체를 참조
파이썬에서 여러 변수가 하나의 객체를 참조할 수 있습니다.
이는 여러 변수가 같은 메모리 위치를 가리킨다는 의미입니다.
아래의 예시에서 numbers
변수는 리스트 [1, 2, 3]
를 참조하고 있습니다.
그리고 copy_numbers
변수도 numbers
와 같은 리스트 객체를 참조하게 됩니다.
이로 인해 numbers
변수에 값을 추가하면 copy_numbers
변수에도 동일한 변경 사항이
반영되는 것을 확인할 수 있습니다.
# 리스트 객체를 생성하고 변수에 할당
numbers = [1, 2, 3]
# 다른 변수에도 같은 리스트 객체를 할당
copy_numbers = numbers
# 변수를 이용하여 리스트의 값을 변경
numbers.append(4)
# 두 변수 모두 같은 객체를 참조하므로 결과가 동일합니다.
print(numbers) # 출력: [1, 2, 3, 4]
print(copy_numbers) # 출력: [1, 2, 3, 4]
3) 객체의 값 변경이 다른 변수에 영향을 미침
뮤터블(Mutable) 객체의 경우 객체의 값 변경이 다른 변수에 영향을 미칩니다.
아래의 예시에서 numbers
변수와 copy_numbers
변수는 모두 같은 리스트 객체를 참조합니다.
따라서 numbers
변수에 값을 추가하면 copy_numbers
변수에도 동일한 변경 사항이 반영되는 것을 확인할 수 있습니다.
# 리스트 객체를 생성하고 변수에 할당
numbers = [1, 2, 3]
# 다른 변수에도 같은 리스트 객체를 할당
copy_numbers = numbers
# 변수를 이용하여 리스트의 값을 변경
numbers.append(4)
# 두 변수 모두 같은 객체를 참조하므로 결과가 동일합니다.
print(numbers) # 출력: [1, 2, 3, 4]
print(copy_numbers) # 출력: [1, 2, 3, 4]
5. 파이썬 자료형
파이썬은 동적 타이핑(dynamic typing)을 지원하는 언어로, 변수의 자료형을 자동으로 추론하여 할당된 값에 따라 결정하는 특징을 가지고 있어, 변수를 선언할 때 자료형을 명시적으로 지정하지 않아도 됩니다.
아래는 7가지 주요 파이썬 자료형의 대한 설명과 예시 코드입니다.
료형 | 설명 | 예시 |
---|---|---|
숫자형 | 정수, 실수, 복소수 등의 숫자 데이터 | age = 25 , pi = 3.14 , complex_num = 2 + 3j |
문자열 | 문자들의 시퀀스로 텍스트 데이터 | name = "Alice" , message = 'Hello, world!' , multi_line = '''This is a\nmulti-line string.''' |
리스트 | 여러 개의 항목을 저장하는 시퀀스 자료형 | numbers = [1, 2, 3, 4, 5] |
튜플 | 여러 개의 항목을 저장하는 시퀀스 자료형 (수정 불가능) | coordinates = (10, 20) |
집합 | 중복을 허용하지 않는 값들의 집합 자료형 | fruits_set = {'apple', 'banana', 'orange'} |
딕셔너리 | 키(key)와 값(value)의 쌍으로 이루어진 자료형 | person = {'name': 'Bob', 'age': 30, 'city': 'New York'} |
불린 | 참(True) 또는 거짓(False) 값을 나타내는 자료형 | is_raining = True , is_sunny = False |
# 숫자형
age = 25
pi = 3.14
complex_num = 2 + 3j
# 문자열
name = "Alice"
message = 'Hello, world!'
multi_line = '''This is a
multi-line string.'''
# 리스트
numbers = [1, 2, 3, 4, 5]
# 튜플
coordinates = (10, 20)
# 집합
fruits_set = {'apple', 'banana', 'orange'}
# 딕셔너리
person = {'name': 'Bob', 'age': 30, 'city': 'New York'}
# 불린
is_raining = True
is_sunny = False
파이썬에서 객체와 변수의 개념은 프로그래밍에 있어 기반을 이루는 중요한 개념입니다.
다음 포스팅부터 공부할 파이썬의 자료형도 매우 중요합니다. 위에 포함 되지 않은 자세한
내용은 공식 개발 문서를 참조하시기 바랍니다.
그럼 다음 시간에는 파이썬 자료형에 대해 하나씩 자세하게 알아 보도록 하겠습니다.
감사합니다. “끝”