[처음 시작하는 파이썬] ch.2 데이터: 타입, 값, 변수, 이름

2023. 1. 18. 17:44파이썬

2.1 파이썬 데이터는 객체다

컴퓨터는 모든 것이 비트입니다.

 

개발자가 정의한 타입에 따라 같은 비트는 다른 것을 의미하게 됩니다.

=> 비트 패턴 속 정수 65는 텍스트 문자 A를 나타냅니다.

 

다른 타입은 다른 수의 비트를 사용합니다.

 

파이썬은 데이터 값을 메모리에 객체로 래핑합니다.

 

메모리 선반 비유법.

객체는 선반에서 공간을 차지하는 가변 크기 상자입니다.

파이썬은 이 상자를 만들어서 선반의 빈 곳에 놓고 더 이상 사용하지 않을 때 제거해줍니다.

 

파이썬에서 객체는 최소한으로 다음을 포함하고 있는 데이터 덩어리입니다.

  • 타입 정의  # 상자에 있는 공장 스탬프와 같음
  • 다른 객체와 구별하기 위한 고유 ID  # 선반 위의 위치와 같은 고유 식별자
  • 타입과 연관된 값  # 투명 상자 안의 내용
  • 객체의 사용 빈도 추적하는 참조 횟수

 

=> 파이썬 객체가 정수라면 타입은 int

2.2 타입 

파이썬의 기본 데이터 타입

2.3 가변성  ( Mutable? Immutable?)

타입에 따라 상자에 포함된 데이터 값을 변경할 수 있거나 일정하게 유지할 수 있습니다.

 

불변 객체는 밀봉된 상자

  • 값 보기 : O
  • 값 변경 : X

가변 객체는 뚜껑이 있는 상자

  • 값 보기 : O
  • 값 변경 : O

파이썬은 strong type 언어입니다.

이 의미는 값은 변경 가능하지만, 객체의 타입은 변경할 수 없다는 것입니다.

 


파이썬에서 데이터 값을 명시하는 두가지 방법

  1. 리터럴
  2. 변수

2.4 리터럴 값

2.5 변수

파이썬 변수 이름을 정의할 때는

소문자, 대문자, 숫자, 언더바(_)만 사용가능 합니다.

 

대소 문자를 구분하기 때문에

love와 LOVE는 다른 변수가 됩니다.

 

2.6 할당

파이썬은 =를 사용하여 변수에 값을 할당합니다.

 

수학에서의 기호 =는 "양변이 같다"는 것을 의미하지만,

프로그램에서는 

오른쪽 값을 왼쪽 변수에 대입함을 의미합니다.

 

x = 5
y = x + 12

x=5

변수 x에 5를 대입합니다.

 

y=x+12

x가 참조한 객체 값인 5를 가져와서 변수 x에 대입합니다.

5 + 12를 계산합니다.

계산 결과 17을 y에 대입합니다.

 

2.7 변수는 장소가 아니라 이름이다

변수는 단지 이름입니다.

값을 복사하는 게 아니라 그 값을 가리키고 참조하고 있을 뿐입니다.

 

객체 자체가 아닌 객체에 대한 참조입니다.

 

type() 메서드 : 변수의 타입을 알고 싶다.

print(type(7))
<class 'int'>

 

isinstance() 내장함수 : 변수가 특정 타입의 객체를 가리키는지 확인하고 싶다.

print(isinstance(7, int))
True

 

2.8 여러 이름 할당하기

두 개 이상의 변수 이름에 동시에 값을 지정할 수 있습니다.

 

two = deux = 2

print(two)
print(deux)
2
2

 

2.9 이름 재할당

이름은 객체를 가리키기 때문에 이름에 지정된 값을 변경하면 이름이 새 객체를 가리킵니다.

 

2.10 복사

두 이름이 모두 가변 객체를 가리킨다면, 두 이름 중 하나를 통해 객체 값을 변경할 수 있습니다.

 

1. 두 이름 모두 불변 객체를 가리킬 경우 // 불면객체 int

x = 5  # 불변객체 5
y = x
print(y)  # 5출력

x = 9
print(x)  # 9 출력
print(y)  # 5 출력

2. 두 이름 모두 가변 객체를 가리킬 경우 // 가변객체 list

a = [2, 4, 6]
b = a
print(a)
print(b)

a[0] = 99
print(a)
print(b)
[2, 4, 6]
[2, 4, 6]
[99, 4, 6]
[99, 4, 6]