본문 바로가기
카테고리 없음

파이썬 - 자료형(Data type) 정리

by 윤뇽뇽

프로그래밍에서는 다양한 종류의 데이터를 사용할 수 있고, 이 데이터의 종류들을 자료형(Datatype)이라고 함

자료형의 종류로는 숫자형(int/float), 문자열, 불린형(boolean), None, 컨테이너(리스트, 튜플, 집합, 딕셔너리) 등이 있다.

파이썬에서는 변수를 선언할 때 자동적으로 데이터 타입이 구분된다.

1. 숫자형 (Numeric Type)

정수 자료형(int), 실수 자료형(float), 복소수 자료형(complex)으로 나누어진다.

자료형 설명 예시
정수자료형 (int) 양의정수/음의정수/0과 같은 정수, 사칙연산, 진수표현가능 10, -200, 0, 0o65(8진수), 0x1FF(16진수)
실수자료형 (float) 유리수와 무리수를 포함하는 실수 (소수점 포함된 숫자) 0.1, 100.0, -0.001, 0.012e-1, 1.53E+4
복소수 (complex) 실수와 허수부의 합의 꼴로 나타나는 수 3 + 4j, 2 - 1J 등

정수자료형 (int)

  • 진수표현 시 2진수 : 0b / 8진수 : 0o / 16진수 : 0x 로 시작한다.

실수자료형 (float)

  • 다른 프로그래밍 언어에는 float와 double 타입이 따로 존재하지만 파이썬에서는 float 타입만 사용한다.
  • float 타입은 e / E를 사용해 지수표기법으로도 나타낼 수 있다. 
  • 부동소수점
    • 컴퓨터가 2진수를 사용하기 때문에 발생하는 문제
    • 10진수 0.1은 2진수로 표현하면 0.0001100110011001100110.... 무한반복
    • 때문에 10진법의 근사값만 표시하게 되고, 0.1에 가깝지만 정확히 동일한 값은 아님
    • 연산 시 예상치 못한 결과가 나올 수 있음
# 계산결과가 둘다 0.1이 아님
a = 3.2 - 3.1 		# 0.10000000000000009
b = 1.2 - 1.1		# 0.09999999999999987

복소수 (complex)

  • 복소수는 complex 메소드를 통해서도 선언할 수 있다. ex) a = complex(2, 3) → 2 + 3j

2. 문자열 (String Type)

자료형 설명 예시
문자열 (str) 모든 문자, 작은따옴표(')나 큰따옴표(")를 활용해 표기함 'hello world', "사과", '#@)_ie", '2022' 등

문자열을 묶을 때는 앞뒤에 동일한 문장부호를 사용해야한다.

 

중첩따옴표

문자열 안에서 따옴표를 사용하고 싶을 때 사용

  • 작은 따옴표가 들어있는 경우 큰따옴표로 문자열 생성
  • 큰따옴표가 들어있는 경우 작은따옴표로 문자열 생성 
print("문자열 안에 '작은 따옴표'를 사용하려면 큰따옴표로 묶는다.")
# 문자열 안에 '작은 따옴표'를 사용하려면 큰따옴표로 묶는다.

print('문자열 안에 "큰따옴표"를 사용하려면 작은 따옴표로 묶는다.')
# 문자열 안에 "큰따옴표"를 사용하려면 작은 따옴표로 묶는다.

삼중따옴표

따옴표 안에 따욤표를 넣거나, 여러줄을 나눠 입력할 때 작은따옴표나 큰따옴표를 삼중으로 사용한다.

print('''문자열 안에 '작은따옴표'와
"큰따옴표를 동시에 사용할 수 있고
여러 줄을 입력할 때도 편리하다.''')

# 문자열 안에 '작은따옴표'와
# "큰따옴표를 동시에 사용할 수 있고
# 여러 줄을 입력할 때도 편리하다.

이스케이프 시퀀스 (Escape sequence)

역슬래시(\) 뒤에 특정문자를 더해 특수한 기능을 하는 문자 조합

이스케이프 시퀀스 설명
\\ 역슬래시(\)
\' 작은따옴표
\" 큰따옴표
\n 줄바꿈
\r 캐리지리턴 (현재 활성 위치를 현재 라인의 시작 위치로 옮김
\t 탭 (현재 활성 위치를 수평 탭의 다음 위치로 옮김)
\o 널(Null)
\f 폼피드 (현재 활성 위치를 다음 페이지의 시작 위치로 옮김)
\v 수직탭 (현재 활성 위치를 수직 탭의 다음 위치로 옮김)
\ooo 8진수 숫자를 사용해 ASCII코드의 문자 표현 ex) '\141' → 'a'
\xhh 16진수 숫자를 사용해 ASCII코드의 문자 표현 ex) '\x61' → 'a'
\N{name} { } 안에 문자 이름을 사용해 유니코드의 문자 표현(파이썬 3.3이상) ex) 'N{LINE FEED}' → '\n'
\uxxxx 16비트 16진수 숫자를 사용해 유니코드의 문자 표현 ex) 'u0061' → 'a'
\Uxxxxxxxx 32비트 16진수 숫자를 사용해 유니코드의 문자 표현 ex) 'u00000061' → 'a'

문자열 연산

# 덧셈
print("Hello" + "World") 	# HelloWorld

# 곱셈
print("Python" * 3) 		# PythonPythonPython

문자열 formatting

name = 'Kim'
score = 4.5

# %-formatting
print('Hello, %s' % name) 		# Hello, Kim
print('내 성적은 %d' % score)	 	# 내 성적은 4
print('내 성적은 %f' % score)	 	# 내 성적은 4.500000

# str.format()
print('Hello, {}! 성적은 {}'.format(name, score)) 		# Hello, Kim! 성적은 4.5

# f-strings (python 3.6 이상)
print(f'Hello, {name}! 성적은 {score}')		# Hello, Kim! 성적은 4.5

import datetime
today = datetime.datetime.now()
print(today)					# 2022-07-08 16:04:15.200411
print(f'오늘은 {today:%y}년 {today:%m}월 {today:%d}일')	# 오늘은 22년 07월 08일

pi = 3.141592
print(f'원주율은 {pi:.3}. 반지름이 2일 때 원의 넓이는 {pi*2*2}')
# 원주율은 3.14. 반지름이 2일 때 원의 넓이는 12.566368
  • %d (정수형), %f (실수형), %s (문자열)

3. 불린형 (Boolean)

논리 자료형으로 참과 거짓을 표현하는 자료형. True/False의 값만 가질 수 있음

비교/논리 연산자의 결과값으로 Bool타입의 값을 반환함

연산자가 무엇인지 모른다면 아래 글 참고!

 

파이썬 - 연산자의 종류

1. 산술연산자 (Arithmetic Operators) 기본적인 사칙연산 및 수식 계산에 사용되는 연산자 연산자 설명 + 덧셈 - 뺄셈 * 곱셈 ** 거듭제곱 / 나눗셈 // 나눗셈의 몫 (나누기 연산 후 소수점 이하의 수를 버

nyoungyi.com

4. None

값이 없음을 표현하기 위한 타입. 반환 값이 없는 함수에서 사용하기도 함

댓글