본문 바로가기
CS/Python

[파이썬 개발자 로드맵] Python 변수 와 데이터 타입에 대해

by Warehaus 2022. 5. 5.

2022.04.27 - [CS/Python] - python 개발자 로드맵 ( developer roadmap ) 에 따라서 개발공부하기

 

python 개발자 로드맵 ( developer roadmap ) 에 따라서 개발공부하기

예전에 DevOps 업무를 수행하기 위해서 어떤 능력이 필요한지 roadmap.sh 에서 확인해 본 적이 있다. 파이썬을 현업에서 적극적으로 사용하고 있지만 가끔 기본적인 내용에 대해 엦어버릴 때가 있는

armin.tistory.com

 

로드맵의 첫 시작.

변수에 대한 이해이다.

 

근데 진짜 언어라는게 깊게 파기 시작하면 한도끝도 없다.

 

내 개인적인 추천방식은

온라인에서 가볍게 한번 훑고나서 일단 개발이 가능한 수준 정도의 실력을 쌓은 뒤

디테일하게 정리 된 책을 구매해서  Deep dive하는 것을 추천한다.

 

그럼 변수를 봐보자.

 


변수란? 

 

데이터를 저장하기 위한 공간이다.

 

컴퓨터 입장에서는 이 공간에 이진수가 저장되어 있기를 기대한다.

왜냐하면 프로세서가 이해할 수 있는 값이 그것 뿐 이기 때문이다.

 

그런데 Python레벨에서는 그렇지 않다.

Python도 엄연히 프로그래밍 언어이고, 개발자의 언어를 컴퓨터가 이해할 수 있게 만들어 준다.

 

개발자는 Python이라는 언어를 이용해서 변수에 값을 저장하는 일련의 명령문을 만들고

Python은 그 구문을 해석해서 시키는대로 따르게 된다.

 

 

 


자료형 (Python Data Types)

 

Python은 개발자가 필요한 다양한 작업을 위해서 여러 유형의 데이터 타입을 지원한다.

이런 데이터 타입 없이 개발을 하려면 정말 너무나 힘이 든다.

 

직접 자료구조를 다 만들어야하고.. 그  자료구조를 테스트 하는 것 부터가 개발의 시작이 될텐데

요즘같은 세상에 그렇게 개발하면...

자료구조 다 만들었을 때 쯤 회사가 망해서 이직 준비를 해야할 지도 모른다.

 

무튼.. 각설하고

 

Python  에서 내가 주로 사용하는 타입은 str, int, float, list, tuple, range, dict, set, bool, None type 정도이다.

 

complex나  frozen set, bytes, bytearray, memoryview는 상대적으로 덜 사용하는데,

익숙한 것 부터 훑고 난 뒤 그 외 타입에 대해 알아볼까 한다.

 

파이썬에서 사용되는 데이터 타입은 다음 표와 같다.

하나씩 살펴보자.

Category Data type
 Text type str
Numeric type int, float, complex
Sequence type list, tuple, range
Mapping types dict
Set types set, frozenset
Boolean type bool
Binary type bytes, bytearray, memoryview
Nonte type NoneType

 

 

str

문자열 타입이다. 문자열을 변수에 저장하면 str 타입의 변수가 된다.

 

>>> a = "I'm str"
>>> a
"I'm str"
>>> type ( a)
<class 'str'>

 

 

int

정수형 타입이다.  파이썬의 정수타입은 다른 언어와 조금 다르게 숫자 제한이 정의되어 있지 않다.

예전에 좀 찾아봤던 기억이 있는데, 메모리에 따라서 달라진다나 모라나..

나에게는 조금 불분명한 개념으로 받아들여 졌다.

 

>>> a = 1234
>>> a
1234
>>> type(a)
<class 'int'>

 

 float

실수형 변수타입이다. 파이썬은 float 를 기본 실수형 변수타입으로 사용한다.

실수형 값을 변수에 저장하면 float타입으로 사용이 가능하다.

double은 따로 없는것으로 확인된다.

>>> a = 1.23
>>> a
1.23
>>> type(a)
<class 'float'>
>>> a = double(1.23)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'double' is not defined