아이와 함께 배우는 세상 사는 법

[파이썬 강좌] 4. Python 프로그래밍 기초 : 자료형(data type) 본문

파이썬(python)/문법(syntax)

[파이썬 강좌] 4. Python 프로그래밍 기초 : 자료형(data type)

CosmoEduVenture 2024. 2. 15. 20:51
반응형

CosmoEduVenture

안녕하세요. 코스모에듀벤처 파파입니다.

이번 포스팅은 파이썬 자료형(Data Type)의 대해서 간단히 알아보도록 하겠습니다.

파이썬은 다른 프로그래밍 언어(C,C++,JS...)와 다르게 변수를 선언할 때 자료형을 명시적으로

나타내지 않는 특징을 가지고 있다는 것을 이전 포스팅의 변수에서 알아보았습니다.

즉, 런타임 시에 변수의 형이 결정되는 프로그래밍 언어를 동적타입 언어라고 합니다.

이러한 동적타입 언어에서 자료형의 중요성이 다른 언어에 비해서 낮지만 효율성 및 자료의 구조적인

측면에서 알아두어야 합니다.

파이썬에서 자료형은 크게 다음과 같이 구분할 수 있습니다.

수치형(Numeric Type) : int(정수), float(실수), complex(복소수)
논리형(Boolean Type) : True(참), False(거짓) 
군집형(Sequence Type) : str(문자열), list(리스트), tuple(튜플)
맵핑형(Mapping Type) : set(세트), dictionary(딕셔너리)

 

우선 맵핑형을 제외한 자료형(Data Type)에 간단히 알아보겠습니다.

맵핑형은 데이터를 다루기 위해 반드시 알아두어야 하는 인덱싱(indexing)과 슬라이싱(slicing) 포스팅 이후에

함께 알아볼게요.

수치형 자료형(Numeric Type)

우선 수치형 자료형(Numeric Type)에 알아보겠습니다.

정수형(int) :

  • 정수형 자료형은 양수와 음수를 모두 포함한 수를 나타내며, 아주 큰 범위의 값도 표현이 가능합니다.
a = 100
b = -10
c = 99999999999999999999999999999999...

print(type(a))   # 출력 <class 'int'>
print(type(b))   # 출력 <class 'int'>
print(type(c))   # 출력 <class 'int'>
type() 함수를 사용하여 데이터의 자료형을 확인 할 수 있습니다.

실수형(float)

  • 실수형 자료형은 소수점 아래의 숫자를 표현하는 자료형입니다.
a = 3.14
b = -0.16
c = 3.2e4 # 지수 표현

print(type(a))   # 출력 <class 'float'>
print(type(b))   # 출력 <class 'float'>
print(type(c))   # 출력 <class 'float'>

복소수형(complex)

  • 복소수형 자료형은 실수(real)와 허수(image)를 가지는 복소수를 표현하는 자료형입니다.
c = 2+3j
print(type(c))  # 결과 : <class 'complex'>

 

논리형 자료형(Boolean Type)

  • 참(True )또는 거짓(False)을 나타내는 자료형으로 주로 조건식에 많이 사용되는 자료형입니다.
a_ture = True
b = 3 <= 5
c = 3 > 5

print(type(a), a)  # 결과 : <class 'bool'> True
print(type(b), b)  # 결과 : <class 'bool'> True
print(type(c), c)  # 결과 : <class 'bool'> False

 

군집형 자료형(Sequence Type)

숫자형과 논리형 자료형은 하나의 변수에 하나의 데이터을 저장(Literal)한다면, 군집형 자료형은 하나의 변수에 여러개의 데이터를 묶어서 저장(Container)하는 자료형입니다.

문자열 자료형(str) :

  • 일반적으로 프로그래밍 언어에서 'a', 'b', 'c'와 같이 하나의 알파벳을 문자(char)라고하며, 'hello'와 같이 여러 개의 문자로 구성된 것을 문자열(string)이라고 합니다.
  • 파이썬은 문자와 문자열을 구분하지 않고 작은따옴표(' ')와 큰따옴표(" ") 쌍을 사용하여 문자의 시작과 끝을 감싸는 방법으로 문자열 자료형을 선언합니다.
  • 특징으로는 순서가 있고(Sequence), 중복을 허용하며, 수정이 불가능(immutable) 합니다.

문자열과 같은 시퀀스 자료형의 인덱싱(indexing)과 슬라이싱(slicing)에 대한 개념과 관련 메서드 사용법에 대한 내용은 다음 포스팅에서 다루도록 하겠습니다.

# 문자열(str) 자료형 선언

c1 = 'a'	# 작은따옴표로 초기화
c2 = "b"	# 큰따옴표로 초기화
s1 = 'Hello, '	# 작은따옴표로 초기화
s2 = "Cosmos!"	# 큰따옴표로 초기화
s = s1+s2	#문자열 결합

print(type(c1))	#결과 <class 'str'>
print(type(c2))	#결과 <class 'str'>
print(type(s1))	#결과 <class 'str'>

# 더하기(+), 곱하기(*) 연산자로 문자열의 결합과 복제가 가능
print(c1*3+c2*3)	#결과 'aaabbb'
print(s)			#결과 "Hello, Cosmos!"

# 인덱싱
print(s[0]) # 문자열 s의 0번째 문자 출력 : 'H'
print(s[7]) # 문자열 s의 7번째 문자 출력 : 'C' (공백도 문자에 해당함)

# 슬라이싱
print(s[7:-1]) # 문자열 s의 7번째 문자부터 끝까지 출력 : 'Cosmos'

# 에러 발생
s[0]='h'	# 수정이 불가능함.

 

리스트 자료형(list) :

  • 리스트는 자료형에 상관없이 여러 개의 값을 순서대로 저장하는 자료형입니다.
  • 리스트는 대괄호[ ] 쌍을 사용하여 자료형을 선언(초기화)하며, 여러 자료형의 데이터를 혼합하여 사용할 수 있습니다.
  • 문자열과 같이 순서가 있고, 중복을 허용하지만 다른 점은 데이터의 수정이 가능한 특징을 가지고 있습니다.
# 리스트(list) 선언
lst_void = []	# 빈 리스트
lst_nums = [1, 2, 3, 4]
lst_fruits = ["apple", "banana", "orange"]
lst_mixed = [1,'A', 3.14, False]

print(type(lst_nums))	#결과 : <class 'list'>
print(type(lst_fruits))	#결과 : <class 'list'>

# 인덱싱/슬라이싱
item1 = lst_nums[0]		# lst_nums의 첫 번째 값 '1'
item2 = lst_nums[1:3]	# lst_nums의 인덱스 1부터 3미만의 값 '2', '3'

# 리스트 결합과 반복
con = lst_nums + lst_fruits		#결과 : [1, 2, 3, 4, 'apple', 'banana', 'orange']
rep = lst_fruits * lst_nums[1]	#결과 : ["apple", "banana", "orange", "apple", "banana", "orange"]

# 리스트 메서드
lst_void.append(6)  # 리스트에 요소 추가
lst_fruits.remove("banana")  # 요소 삭제
idx_of_orange = lst_fruits.index("orange")  # 요소 위치 인덱스 반환

lst_nums = [3, 2, 1, 5, 4]
lst_nums.sort()  # 리스트 정렬 : [1,2,3,4,5]
reversed_numbers = list(reversed(numbers))  # 리스트 뒤집기 : [5,4,3,2,1]

# 리스트 컴프리핸션
lst_comp = [x for x in range(1, 6)]  # [1, 2, 3, 4, 5]

 

튜플 자료형(tuple) :

  • 튜플(tuple)은 리스트와 유사하지만, 한 번 생성된 데이터는 변경이가 불가능 자료형입니다.
  • 튜플은 소괄호() 쌍을 사용하여 자료형을 선언(초기화) 합니다.
  • 특징으로는 순서가 있고(Sequence), 중복을 허용하며, 수정이 불가능(immutable) 합니다.
# 튜플(tuple) 선언
t_nums = (10, 20, 30, 40)
t_colors = ("red", "green", "blue")
mixed_tuple = (1, "hello", 3.14)

# 튜플 인덱싱/슬라이싱
n1 = t_nums[0]  # 첫 번째 값 : 10
n2 = t_colors[1:]  # 인덱스 1부터 끝까지의 값 : "green", "blue"

# 튜플의 연산 및 생성
# 한번 생성된 튜플은 변이 안됨으로 새로운 튜플을 선언하여 결과를 저장
t_comb = coordinates + colors  # 두 튜플 결합
t_rep = colors * 2  # 튜플 반복

튜플은 생성 후 수정이 불가능한 특성을 가지고 있으므로, 이후에 함께 알아 볼 함수의 반환 값이나 딕셔너리의 키(key)로 사용됩니다.

파이썬의 자료형은 다양한 연산과 메서드를 지원하여 데이터를 효과적으로 다룰 수 있습니다.

특정 자료형에서 사용 가능한 메서드를 dir() 함수를 사용하여 확인이 가능하니 위 예제의 각 자료형 별로 해당 객체에서 사용 가능한 메서드를 확인해 보세요.

# dir()함수 예시
# dir(자료형 또는 데이터)
print(dir(int))
print(dir(str))

 

 

반응형