본문 바로가기
Python/기초

비전공자 주목! 파이썬 자료형 모든 것, 이 글 하나로 정리

by 모두의 케빈 2023. 8. 15.

 

목차

#1 파이썬 자료형: 모든 데이터는 유형이 있다.

 > 기초적인 자료형과 컬렉션 자료형

 > 기초형 자료형은 숫자형과 문자열 자료형으로 나눈다.

 

#2 숫자형 자료형

 > 숫자형 자료형: 정수와 실수

 > 파이썬 자료형 확인하기, type() 함수

 > 숫자형 자료형의 연산과 연산자

 > 대입 연산자와 다른 연산자를 합쳐서 사용하기

 > 불 자료형, 정수의 또 다른 형태

 

#3 문자열 자료형

 > 컴퓨터는 문자와 변수를 어떻게 구분할까?

 > 코딩 테스트 꿀팁: 공백 문자열 선언

 > 탈출 문자(이스케이프 문자)

 > 장문의 문자열 출력하기

 > 문자열 자료형의 연산

 

#4 자료형 형변환

 > 실수를 정수로 바꾸기, int() 함수

 > 정수를 실수로 바꾸기, float() 함수

 > 숫자형과 문자열 형변환, str() 함수

 

+ 기타 심화 학습을 위한 다른 글 추천

 

 

 

 

 

파이썬 자료형: 모든 데이터는 유형이 있다.


기초적 자료형과 컬렉션 자료형

 

아지에게 종이 있는 것처럼, 파이썬에서 사용되는 모든 데이터는 종류, 즉 유형이 있습니다. 

 

저는 강의를 하면서 파이썬에서 가장 많이 사용되는 자료형을 크게 두 가지로 구분해서 설명드립니다. 첫 번째는 가장 보편적으로 활용되는 '기초적인 자료형'이고 두 번째는 '컬렉션 자료형'입니다.

 

이번 글에서는 '기초적인 자료형'에 대해 다뤄보도록 하겠습니다. 초보자의 시선에 최대한 이해하기 쉽게 작성했으니 본문 확인하시고 정보 얻어가셨으면 좋겠습니다.

 

 

기초적인 자료 형태는 다시 크게 숫자형과 문자형으로 구분한다.

 

파이썬의 가장 기초적인 자료 유형은 크게 숫자와 문자 자료형으로 구분됩니다.

 

 

파이썬 자료형
파이썬 자료형

 

 

숫자형 자료형


숫자형 자료형은 크게 정수와 실수로 나눈다.

 

숫자형 자료형에는 정수와 실수형이 있습니다. 정수형 자료형은 integer를 줄여서, ‘int’ 형이라고 합니다. 소수점이 붙지 않는 모든 숫자(0, 음수, 양수)가 정수형에 해당합니다. 소수형 자료형은 float형 자료형이라고 하며, 소수점이 붙은 모든 숫자(0.0, 음수, 양수)가 이에 해당합니다. 

 

파이썬에서 자료의 유형을 확인하기 위해서는 type()이라는 함수를 사용합니다.

 

파이썬 자료형 확인 예제: type() 함수 사용하기

# 변수의 자료형 확인
sample1 = 10
sample2 = 10.0

print(type(sample1), type(sample2))
 >>>>> 실행 결과:  <class 'int'> <class 'float'>

 

자료형은 자료, 데이터의 종류이기 때문에 위의 예시처럼 일반적으로는 변수에 값을 할당하여 선언합니다. 

위 예시에서는 a 변수에는 10이라는 값을 넣었고, b 변수에는 10.0이라는 값을 대입했습니다. 10은 정수이고 10.0은 실수이기 때문에, type(a)는 'int'이고 type(b)는 'float'임을 알 수 있습니다.

 

※ 더 깊게 알기: 파이썬에서 모든 자료형은 객체이다.

type() 함수의 결과를 다시 보겠습니다. int와  float 앞에 'class'라는 단어가 붙어 있네요. 이는 파이썬에서 모든 자료형이 객체이기 때문입니다.

정수, 실수, 그리고 뒤에서 배울 불(boolean), 컬렉션 자료형까지 모든 자료형은 객체입니다.
객체를 정확히 알기 위해서는 클래스에 대해 배우셔야 합니다. 지금은 우선 그런 개념이 있구나, 하고 인지만 해주시면 충분할 것 같습니다.

 

 

숫자형 자료형의 연산과 연산자

 

파이썬을 활용해서 계산기처럼 숫자형 자료형을 연산할 수 있습니다. 숫자형의 연산은 연산자를 통해 이루어집니다. 그리고 각 연산자는 곱셈과 덧셈처럼 우선순위가 있습니다.

 

연산자 기호 의미 우선 순위
+ 더하기 3순위
- 빼기 3순위
* 곱하기 2순위
** 거듭 제곱 1순위
/ 나누기 2순위
% 나누기한 결과의 나머지 2순위
// 나누기한 결과의 몫 2순위
= 대입 연산자 4순위
( )  최우선순위로 설정 0순위

 

 

 

 

같은 우선순위의 연산자라면 오른쪽에 있는 연산자부터 먼저 실행됩니다. 아래 코드를 한 줄씩 실행해 보세요.

# 덧셈 연산
2 + 5 + 4 + 3


# 뺄셈 연산
7 - 2 - 6 - 9


# 곱셈과 덧셈 연산
7 * 2 + 3


# 곱셈과 나눗셈 연산
7 * 9 / 9

 

 

숫자형 자료 연산에서 가장 신경 써야 할 것은 ‘자료형’입니다. 나눗셈의 경우에는 정수와 정수가 연산해도 결과값은 실수가 나옵니다.

# 나눗셈의 연산

a = 7
b = 7
c = a/b

print(c, type(c))
 >>>>> 실행 결과: 1.0 <class ‘float’>

 

 

곱셈의 경우에는 정수와 실수가 곱해지면 최종 결과값은 실수형이 됩니다.

# 곱셈의 연산

a = 5
b = 3.0
c = a*b

print(c, type(c))
 >>>>> 15.0 <class ‘float’>

 

 

대입 연산자와 다른 연산자를 합쳐서 사용하기

 

파이썬에서 대입 연산자와 다른 연산자를 줄여서 사용할 수 있습니다.

 

연산자 기호 의미 우선 순위
+= 더한 후 할당 3순위
-= 뺀 후 할당 3순위
*= 곱한 후 할당 2순위
** 거듭 제곱 후 할당 1순위
/= 나눗셈 후 할당 2순위
% 나머지 구한 후 할당 2순위
// 몫 구한 후 할당 2순위

 

# 더한 후 할당
a = 10
a += 5 # a = a + 15와 같은 의미
print(a)
 >>>>> 실행 결과: 15

 

# 거듭 제곱 후 할당
a = 10
a **= 2 # a = a**2와 동일
print(a)
 >>>>> 실행 결과: 100

 

 

불(boolean) 자료형, 정수의 또 다른 형태

 

불 자료형(boolean)은 True(참)와 False(거짓)을 표현하는 데이터 유형입니다. 

 

파이썬에서 True(참)은 숫자 1과 같고, False는 숫자 0과 동일한 의미를 지닙니다. 그래서 불 자료형은 정수형 자료형의 또 다른 형태이기도 합니다.

 

글이 너무 길어져서 불 자료형의 구체적인 사용 예시는 비교 연산자와 논리 연산자 챕터에서 자세히 다뤄보도록 하겠습니다.

 

 

 

 

문자형 자료형


컴퓨터는 문자열과 변수를 어떻게 구분할까?

 

변수 이름을 “a = 10”이라고 선언했을 때, a는 변수 이름이지만 동시에 알파벳 a인 문자입니다. 컴퓨터는 문자열과 변수를 어떻게 구분할까요? 정답은 따옴표입니다.

 

컴퓨터는 큰따옴표 또는 작은따옴표 안의 모든 텍스트를 ‘문자열’로 인식합니다. 물론 여기에는 숫자나 특수문자도 포함됩니다. 

 

# 따옴표 안의 모든 텍스트는 문자
# 큰 따옴표를 쓰든, 작은 따옴표를 쓰든 상관 없다.

a = "1234"
print(type(a))
 
b = "Hello"
print(type(b))

c = "c"
print(type(c))

 >>>>> 실행 결과
<class ‘str’>
<class ‘str’>
<class ‘str’>

 

변수 a는 1234가 아니라, “1234”라는 값이 대입됩니다. 따옴표 안에 있으므로 이는 문자열입니다. type() 함수로 변수의 자료형을 보면 ‘str’이라고 확인됩니다.

 

※ 더 깊게 알기: 문자와 문자열

다른 프로그래밍 언어에서는 문자 1개를 char(Character의 약자)와 문자 2개 이상을 str(string의 약자)이라고 따로 분류하는 경우도 있습니다. 파이썬에서는 모든 문자 형태의 데이터는 ‘문자열’로 통일합니다. (문자열이란, 문자의 배열이라는 뜻입니다.)

 

 

코딩 테스트 꿀팁: 공백 문자열 선언하기

 

공백 문자열은 아무 내용이 없는 문자열 자료형이라는 뜻입니다. 코딩 테스트에서 문자열 연산을 할 때 굉장히 유용하게 사용할 수 있는데요. 아래와 같이 선언할 수 있습니다.

 

# 따옴표를 열고 바로 닫기
# 큰 따옴표, 작은 따옴표 다 상관 없음.

empty_str = ‘’
empty_str = “”

 

 

문자열에서 중요한 탈출 문자(이스케이프 문자)의 개념

 

글에는 띄어쓰기가 있고 줄 바꿈(Enter)이 있습니다. 파이썬에서 문자열을 출력할 때도 마찬가지로 띄어쓰기나 줄 바꿈과 같은 효과를 줄 수 있는데요. 

 

이러한 효과를 주는 문자를 출력을 제어한다고 하여 제어 문자, 또는 탈출 문자(이스케이프 문자라)고 부릅니다. 탈출 문자는 백 슬러시(\)와 함께 사용됩니다.

 

이스케이프 문자 설명
\n 줄 바꿈 (Enter)
\t 4칸 띄어 쓰기, 탭(Tab)
\b 백스페이스 (지우기)
\‘ 작은 따옴표 출력하기기
\“ 큰 따옴표 출력하기
\\ 백 슬러시(\) 출력하기기

 

간단한 예시로 '따옴표 출력하기'를 해보겠습니다.

print('선생님은 말씀하셨습니다.\"대가가 되려면 시간을 투자해야 한다.\" 라고요.')

 >>>>> 실행 결과
 선생님은 말씀하셨습니다."대가가 되려면 시간을 투자해야 한다." 라고요.

 

 

 

 

장문의 문자열 출력하기

 

탈출 문자를 연습하다 보면 이런 궁금증이 생깁니다. ‘그러면 장문의 글을 출력하기 위해서는 띄어쓰기와 줄 바꿈 문자를 얼마나 써야 하는 거야?’ 그런 걱정을 줄여주고자, 파이썬에서는 장문의 문자열을 편리하게 출력할 수 있는 기능을 제공합니다.

 

print("""
장문의 문자열은 따옴표 3개로 사용할 수 있습니다.
이러면 굳이 탈출 문자를 사용하여 줄 바꿈을 표현하지 않아도 됩니다.
노래 가사나 편지도 이 기능을 활용하면 복사 + 붙여넣기하여 처리할 수 있습니다.
역시 파이썬은 편리하네요!
""")

 >>>>> 실행 결과
장문의 문자열은 따옴표 3개로 사용할 수 있습니다.
이러면 굳이 탈출 문자를 사용하여 줄 바꿈을 표현하지 않아도 됩니다.
노래 가사나 편지도 이 기능을 활용하면 복사 + 붙여넣기하여 처리할 수 있습니다.
역시 파이썬은 편리하네요!

 

 

문자열 자료형의 연산

 

파이썬에서는 문자열도 숫자처럼 연산을 할 수 있습니다. 지금은 와닿지 않으실 수 있지만, 문자열의 이런 연산 기능은 문자열 처리 측면에서 정말 편리한 장점입니다. 

 

먼저 덧셈 연산입니다. 문자열에서 덧셈 연산은 앞의 문자열의 맨 끝에 뒤의 문자열을 붙여줍니다. 마치 꼬리 잡기처럼요.

# 문자열 덧셈 연산
text_example1 = 'abcd'
text_example2 = 'efgh'

text_example1 + text_example2
 >>>>> 실행 결과: abcdefgh

 

기억해 두세요!
문자열 덧셈 연산은 경로(directory)를 다룰 때 정말 자주 활용됩니다. 경로는 어떤 파일의 위치를 의미합니다. 

예를 들면, 바탕화면의 ‘test’라는 텍스트 파일의 경로는 ‘C\\Desktop\\test.txt’ 처럼 표현할 수 있습니다. 경로는 따옴표 안에 있기 때문에 문자열인데요. 경로를 서로 바꾸고 추가하는 과정에서 문자열의 덧셈 연산이 활용됩니다. 실제 활용 내용은 뒷 장의 파일 입출력을 참고해 주세요.

 

 

 

다음은 곱셈 연산입니다. 문자열에서 곱셈 연산은 문자열을 곱한 정수만큼 반복합니다. 

 

sample_text = "잘 될거야! "
sample_text*3

 >>>>> 실행 결과
'잘 될거야! 잘 될거야! 잘 될거야! '

 

 

자료형 형변환


실수를 정수로 바꾸기, int() 함수

 

자료 유형이 바뀌는 것은 자료의 종이 바뀌는 것을 의미합니다. 따라서 코드 작성 시, 자료형은 조심스럽게 다뤄야 합니다. (15와 15.0은 의미적으로 완전히 다른 값입니다.)

 

기본적으로 프로그래밍 언어들은 자료형을 선언하고 이들끼리의 형을 변환시킬 수 있는 기능을 제공합니다. 즉, 정수를 실수로, 실수를 정수로 바꿀 수 있습니다.

 

실수를 정수로 바꾸기 위해서는 int() 함수를 사용합니다. 이때, 소수점 이하 값은 ‘버림’이 된다는 점을 꼭 기억해 주세요.

 

# 정수를 실수로 형변환

int(15.987654321)
 >>>>> 실행 결과 : 15 # 실수 → 정수 형 변환 시, 소수점 이하 값은 버림

 

 

정수를 실수로 바꾸기, float() 함수

 

정수를 실수로 바꾸기 위해서는 float() 함수를 사용합니다.

# 실수를 정수로 형변환

float(15)
 >>>>> 실행 결과: 15.0

 

 

실수와 정수를 문자열로 바꾸기

 

정수와 실수를 문자열로, 문자열을 정수 또는 실수로 바꿀 수 있습니다. 단, 이 경우 따옴표 안의 값이 숫자여야 합니다. 문자열로 형변환 하기 위해서는 str() 함수를 사용합니다.

 

# 정수를 문자로 바꾸기

str(5)
print(type(str(5)))
 >>>>> 실행 결과
'5'
<class 'str'>

 

# 실수를 문자로 바꾸기

str(5.0)
print(type(str(5.0)))

 >>>>> 실행 결과
'5.0'
<class 'str'>

 

# 문자를 정수와 실수로 바꾸기

print(int('5'), float('5'))
 >>>>> 실행 결과: 5    5.0

 

 

 

이 글이 도움이 되셨다면 아래 글은 어떠신가요?

 

 

문자열의 인덱싱과 슬라이싱

 

[파이썬/Python] 인덱싱과 슬라이싱: 음수 인덱스가 어려워요.

 

[파이썬/Python] 인덱싱과 슬라이싱: 음수 인덱스가 어려워요.

문자열과 리스트의 인덱스 문자열과 리스트는 Iterable(순회할 수 있는) 객체입니다. 문자열은 여러 개의 문자들을 모아 놓은 배열이고, 리스트는 다양한 값을 모아 놓은 배열입니다. 이 두 자료형

kevinitcoding.tistory.com

 

 

심화 학습을 원하시는 분들을 위한 파이썬 정수형 딥다이브: 임의 정밀도와 메모리 할당

 

[파이썬/Python] 정수(Integer) 1탄: 임의 정밀도

 

[파이썬/Python] 정수(Integer) 1탄: 임의 정밀도

정수(Integer)의 정의와 임의 정밀도 파이썬에는 여러 데이터 유형(Type)이 있습니다. 그중, 정수(Integer) 형이란 소수점이 없는 0, 음수, 양수를 의미합니다. 파이썬은 객체 지향 언어이므로, 모든 개

kevinitcoding.tistory.com

 

 

[파이썬/Python] 정수(Integer) 2탄: 메모리 할당

 

[파이썬/Python] 정수(Integer) 2탄: 메모리 할당

이전 시간에는 파이썬에서 정수형의 정의와 무제한의 크기를 가질 수 있는 이유, 임의 정밀도에 대해 공부했습니다. 관련 내용이 궁금하시다면 아래 게시글 참고 부탁드립니다. [파이썬/Python]

kevinitcoding.tistory.com

 

 

댓글