Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

채채

자료형 본문

Python/기본 문법

자료형

HChaeEun 2023. 11. 1. 16:37

모든 프로그래밍은 결국 데이터를 다루는 행위이다.

파이썬의 자료형으로는 정수형, 실수형, 복소수형, 문자열, 리스트, 튜플, 사전 등이 있다.

 

정수형(Integer)은 정수를 다루는 자료형으로 코딩테스트에서 출제되는 많은 문제들은 정수형을 주로 다루게 된다.

# 양의 정수
a = 1000
print(a)

# 음의 정수
a = -7
print(a)

# 0 
a = 0
print(a)

실수형(Real Number)은 소수점 아래의 데이터를 포함하는 수 자료형이다.

파이썬에서는 변수에 소수점을 붙인 수를 대입하면 실수형 변수로 처리된다.

소수부가 0이거나, 정수부가 0인 소수는 0을 생략하고 작성할 수 있다.

# 양의 실수
a = 157.93
print(a)

# 음의 실수
a = -1837.2
print(a)

# 소수부가 0일 때 0을 생략
a = 5.0
print(a)

# 정수부가 0일 때 0을 생략
a = -.7
print(a)

지수 표현 방식은 임의의 큰 수를 표현하기 위해 자주 사용한다.

기본적으로 실수형 데이터로 출력이된다.

따라서 만약 문제에서 정수형 데이터를 처리한다고 할 경우 int()내장형 함수를 이용하는 것이 실수 연산 오차로 인해 발생할 수 있는 오류를 예방할 수 있다.

- e나 E 다음에 오는 수는 10의 지수부를 의미한다.

예를 들어 1e9라고 입력하게 되면, 10의 9제곱(1,000,000,000)이 된다.

- 최단 경로 알고리즘에서는 도달할 수 없는 노드에 대하여 최단 거리를 무한(INF)로 설정하곤 한다.

이때 가능한 최댓값이 10억 미만이라면 무한(INF)의 값으로 1e9를 이용할 수 있다.

# 1,000,000,000.0의 지수 표현 방식
a = 1e9
print(a)

# 752.5
a = 75.25e1
print(a)

# 3.954
a = 3954e-3
print(a)

# 정수 표현 방식
a = int(1e9)
print(a)

실수형 더 알아보기

컴퓨터의 메모리는 2진수 체계를 기반으로 데이터를 저장한다. 당연히 실수도 2진수 메모리 비트로 표현해야 하며 정수에 비해 상대적으로 복잡한 편이다.

소수의 끝이 5가 아닌 수를 2진수 소수로 표현할 경우 무한 소수가 발생하기 때문이다.

0.1을 2진수로 변환할 경우

컴퓨터의 메모리는 한정적이기 때문에 실수의 소숫점을 표현할 수 있는 수의 제한이 존재하여, 결국 메모리 한계까지 소수점을 집어넣고 어느 부분에서 끊어 반올림을 해주어야한다.

이것은 곧 부정확한 실수의 계산값을 초래하게 된다.

# 실수 연산 오류
a = 0.3 + 0.6
print(a)

if (a == 0.9):
	print(True)
else:
	print(False)
    
# round() 함수로 반올림
a = 0.3 + 0.6
print(round(a, 1))

if (round(a, 1) == 0.9):
	print(True)
else:
	print(False)

수 자료형의 연산

수 자료형에 대하여 사칙 연산과 나머지 연산자(%)가 많이 사용된다.

나누기 연산자(/)를 주의해서 사용해야하는데, 파이썬에서 나누기 연산자는 나눠진 결과를 실수형으로 반환한다.

이 외에도 몫 연산자(//)거듭 제곱 연산자(**)를 비롯해 다양한 연산자들이 존재한다.

a = 7
b = 3

# 나누기
print(a / b)

# 나머지
print(a % b)

# 몫
print(a // b)

 

참고 |

 

☕ 실수 표현(부동 소수점) 원리 한눈에 이해하기

실수의 2진수 표현 10진수의 정수를 2진수의 정수로 변환할 수 있듯이, 10진수의 소수를 2진수의 소수로 변환할 수 있다. 예를들어 10진수 11.765625 를 2진수 소수로 변환하는 방법은 다음과 같다. 먼

inpa.tistory.com

 

'Python > 기본 문법' 카테고리의 다른 글

기본 입출력  (0) 2023.11.07
사전 자료형과 집합 자료형  (0) 2023.11.07
문자열과 튜플 자료형  (0) 2023.11.07
리스트 자료형  (0) 2023.11.07