[Python] 데이터 타입(자료형), 변수 선언 그리고 주석 처리


Study/Python  2019. 12. 3. 09:00

안녕하세요. 명월입니다.


이 글은 Python에서 취급하는 데이터 타입(자료형)과 변수 선언, 주석 처리에 대한 글입니다.


어느 프로그래밍이던지 프로그램 언어를 처음 접하게 되면 제일 먼저 데이터 타입(자료형)을 살펴보게 됩니다.

이전에 Java와 C#를 처음 시작할 때도 제일 먼저 데이터 타입을 먼저 확인했었습니다.


링크 - [C# 강좌 - 4] 자료형(데이터 타입)과 리터럴

링크 - [Java강좌 - 3] 자료형 (데이터 타입)


데이터 타입(자료형)을 살펴보기 전에 간단하게 파이썬에서 변수 선언하는 것을 소개하겠습니다.

파이썬은 Java와 C#등과 같은 컴파일 언어와 다르게 변수 선언할 때, 따로 지시어로 변수 형태를 선언할 필요는 없습니다. 그렇다고 Javascript처럼 var를 쓸 필요조차 없습니다.

그냥 변수명을 사용하고 값을 넣으면 파이썬 내부에서 자동으로 변수 타입을 지정하고 값을 저장하게 됩니다.

#a 변수에 1을 넣는다.
a = 1
#a 값을 출력한다.
print(a)
#a 변수의 데이터 타입을 출력한다.
print(type(a))

#개행
print("")

#a 변수에 hello world을 넣는다.
a = "hello world"
#a 값을 출력한다.
print(a)
#a 변수의 데이터 타입을 출력한다.
print(type(a))

결과를 보시면 a의 변수에 1를 넣었을 때는 int형으로 선언이 되었다가 나중에 "hello world"를 넣으니 자동으로 string 타입으로 변환이 되었습니다.

python에서는 이렇게 자동으로 데이터 타입을 설정해주고 데이터를 변수에 넣게 됩니다.

※이게 사실 스크립트 언어의 장점이기는 하지만, 개인적으로는 프로그램이 복잡해질 수록 이 데이터 타입(자료형)이 고정 설정이 되지 않기 때문에 오히려 더 헤갈리는 요소입니다.


그럼 python에는 어떤 데이터 타입이 있는지 확인해 보겠습니다.

#문자열 타입
str_var = "Hello World"
print(type(str_var))
print(str_var)
print("")

#정수 타입
int_var = 20
print(type(int_var))
print(int_var)
print("")

#실수 타입
float_var = 20.5
print(type(float_var))
print(float_var)
print("")

#부울(참 거짓) 타입
bool_var = True
print(type(bool_var))
print(bool_var)
print("")

#복소수 타입
complex_var = 1j
print(type(complex_var))
print(complex_var)
print("")

#리스트 타입
list_var = ["apple", "banana", "cherry"]
print(type(list_var))
print(list_var)
print("")

##튜플 타입##
tuple_var = ("apple", "banana", "cherry")
print(type(tuple_var))
print(tuple_var)
print("")

#range 타입(=리스트 타입)
range_var = range(6)
print(type(range_var))
print(range_var)
print("")

#Dictionary 타입(맵 타입)
dict_var = {"name" : "John", "age" : 36}
print(type(dict_var))
print(dict_var)
print("")

#집합 타입
set_var = {"apple", "banana", "cherry"}
print(type(set_var))
print(set_var)
print("")

#frozenset 집합 타입
frozenset_var = frozenset({"apple", "banana", "cherry"})
print(type(frozenset_var))
print(frozenset_var)
print("")

#byte 타입
bytes_var = b"Hello"
print(type(bytes_var))
print(bytes_var)
print("")

#byte 배열 타입
bytearray_var = bytearray(5)
print(type(bytearray_var))
print(bytearray_var)
print("")

#byte 메모리 타입
memoryview_var = memoryview(bytes(5))
print(type(memoryview_var))
print(memoryview_var)
print("")

자료형 종류가 일반 언어보다 많네요... 기본적인 문자열, 정수, 실수, 부울은 특별한 타입은 아니고 일반 프로그램 언어와 같은 데이터 타입입니다.

특이점은 복소수 타입이 있습니다. 복소수 타입은 실수와 허수를 계산하기 위한 타입인데.. 수학적 계산이나 수치 계산을 할때 필요한 데이터 타입입니다.


그리고 리스트와 튜플, Dictionary 타입이 있는데, 리스트는 말그대로 리스트로서 삽입, 삭제가 가능하고 튜플은 배열이라고 생각하면 됩니다.

일단 한번 튜플이 선언되면 삽입, 삭제, 수정이 되지 않습니다. Dictionary는 맵 형식의 데이터 타입입니다.


집합에 관계된 set과 frozenset이 있습니다. set은 집합과 관계된 타입인데, 합집합, 교집합등의 계산을 위한 타입입니다.

set은 데이터 수정이 가능하나 frozenset은 수정이 불가능한 집합 타입입니다.


byte와 byte배열 그리고 byte메모리 타입이 있는데 byte는 특정 파일을 바이너리로 읽어 드릴때 byte로 변환하는 것입니다.

물론 이 byte타입은 수정이 불가능하나 byte배열로 변형을 하면 byte 타입도 수정이 가능합니다.


memoryview타입은 byte타입을 메모리의 이진 데이터로 변환한 타입입니다.


파이썬에서 다루어 지는 데이터 타입에는 집합과 복소수 타입이 있는 것이 특이하네요.. 이런 데이터 타입이 있으니 파이썬에 통계 프로그램에서 강력하다고 하는 지도 모르겠습니다.

제가 복소수 타입까지 다룰 지는 모르겠습니다.;;;


파이썬의 주석 처리는 주석의 시작에 #로 설정합니다.

구간 주석은 없고 여러 행의 주석을 하려면 주석의 시작에 #를 붙여서 설정하면 됩니다.

#주석 처리
#주석
#주석

a = 1 #a는 1이다.

#a는 1이다.# a = 1

위 소스의 마지막 행에 #와 #사이에 주석글을 넣고 a=1이라는 변수 선언을 하려고 하나, 파이썬은 구간 주석이 안되기 때문에 a=1는 주석의 내용으로 인지합니다.

#a는 1이다.
a = 1

위 처럼 작성해야 변수 선언이 됩니다.


여기까지 Python에서 취급하는 데이터 타입(자료형)과 변수 선언, 주석 처리에 대한 설명이었습니다.


궁금한 점이나 잘못된 점이 있으면 댓글 부탁드립니다.