데이터 구조 및 알고리즘을 위한 파이썬 기초 문법 - 숫자 자료형
참고
http://www.yes24.com/Product/Goods/91433923
이것이 취업을 위한 코딩 테스트다 with 파이썬 - YES24
나동빈 저자의 유튜브 라이브 방송 https://www.youtube.com/c/dongbinnaIT 취준생이라면 누구나 입사하고 싶은 카카오 · 삼성전자 · 네이버 · 라인!취업의 성공 열쇠는 알고리즘 인터뷰에 있다!IT 취준생
www.yes24.com
목적
데이터 구조 및 알고리즘 공부 전 간단히 파이썬 문법을 살펴보는 의미에서 작성한다.
코딩테스트에서와 실제 개발에서의 좋은 코드의 기준은 다를 수 있다. 파이썬 프로그램을 개발할 때 각 모듈을 클래스별로 나누어 구현하지만 코딩 테스트에서는 클래스를 작성하지 않고 함수만으로 문제 풀이에 필요한 기능을 작성한다.
Type
숫자 자료형(int, float)
정수형(int)
a = 1000 # 양의 정수
print(a)
a = -7 # 음의 정수
print(a)
# 0
a = 0
print(a)
실수형(float)
# 양의 실수
a = 15.93
print(a)
# 음의 실수
a = -183.2
print(a)
# 소수부가 0일 때 0을 생략
a = 5.
print(a)
# 정수부가 0일 때 0을 생략
a = -.7
print(a)
소수부(.xx)가 0이거나 정수부(xx.)가 0이면 생략을 할 수 있다.
실수형 데이터를 표현하는 방식으로 파이썬에서 e나 E, Exponential(지수) 기호 표현을 할 수 있다.
a = 1e9 # a 라는 변수에 1 x 10^9 10억 할당, 지수를 기준으로 로그로 변환한다면 log1,000,000,000
print(a)
다음과 같은 공식이 성립한다.
유효숫자e^지수 = 유효숫자 x 10^지수
지수 표현 방식은 코딩 테스트에서 많이 사용한다. 최단 경로 문제에서 도달할 수 없는 노드에 대해 최단 거리를 무한으로 설정한다 이 때 지수1e9를 표현한다.
# 10억의 지수 표현 방식
a = 1e0
print(a)
# 752.5
a = 75.25e-1
print(a)
# 3.954
a = 3954e-3
print(a)
컴퓨터 시스템은 실수를 처리할 때 부동 소수점 방식을 사용한다. 실수형을 저장하기 위해 4바이트(32비트 기반 프로세스) 또는 8바이트(64비트 기반 프로세스)라는 고정된 크기의 메모리를 할당한다. 그래서 실수 정보를 표현하는 정확도에 한계를 가진다.
10진수 체계에서는 0.3과 0.6을 더한 0.9로 정확히 떨어진다. 하지만 2진수에서 0.9를 정확히 표현할 수 있는 방법이 없다. 근접한 값을 표현하지만 미세한 오차가 발생한다.
a= 0.3 + 0.6
print(a)
if a == 0.9 :
print(True)
else :
print(False)
소수점 값을 비교하는 문제가 나올 경우 해당 문제에 대한 대처 함수로 round() 함수를 사용한다. round() 함수의 parameter는 다음과 같다.
round(실수형 데이터, 반올림하고자 하는 위치 - 1 )
예를 들어 round(123.456, 2) 라고 작성한다면 결과는 123.46이다.
round(실수형 데이터) 와 같이 적었을 경우에 기본적으로 소수점 첫번째 자리에서 반올림한다.
예를 들어 round(123.456) 만 적었을 경우 123이 도출된다.
a = round(123.456, 2)
b = round(123.456)
print(a, b)
c = 0.3 + 0.6 # 컴퓨터 시스템에 의해 0.8999999...가 나옴
print(round(c, 4)) # 0.899999를 5번째 소수점 자리에서 반올림한다. 0.9가 나올 것임
if round(c, 4) == 0.9 :
print(True)
else :
print(False)
프로그래밍에서 사칙 연산은 4가지가 있다. +, -, *, / 추가적으로 몫을 구하는 연산자인 //와 밑과 지수의 관계를 맺는 ** 연산자도 있다. 이 중에서 나머지 연산자 /는 return 타입이 정수형이 아닌 실수형이다. 그리고 나머지 연산자인 %가 있는데 해당 연산자는 보통 특정한 변수 a가 홀수인지 짝수인지 알아 볼 때 사용한다. a를 2로 나눈 나머지가 1인가? 이런 방식으로 말이다.
a = 6
b = 4
# 나누기
print(a / b)
# 나머지
print(a % b)
# 몫
print(a // b)
# 제곱
print(a ** b) # 6 ^ 4
+, -, *, /, //, %, ** 총 7가지의 연산자가 있다는 것을 참고하자
'개발언어 > 알고리즘' 카테고리의 다른 글
데이터 구조 및 알고리즘을 위한 파이썬 기초 문법 - 조건문 (0) | 2022.02.06 |
---|---|
데이터 구조 및 알고리즘을 위한 파이썬 기초 문법 - 사전 자료형(dictionary) (0) | 2022.02.06 |
데이터 구조 및 알고리즘을 위한 파이썬 기초 문법 - 튜플(tuple) (0) | 2022.02.06 |
데이터 구조 및 알고리즘을 위한 파이썬 기초 문법 - 문자열 타입(String) (0) | 2022.02.06 |
데이터 구조 및 알고리즘을 위한 파이썬 기초 문법 - 리스트(list) (0) | 2022.02.05 |
댓글
이 글 공유하기
다른 글
-
데이터 구조 및 알고리즘을 위한 파이썬 기초 문법 - 사전 자료형(dictionary)
데이터 구조 및 알고리즘을 위한 파이썬 기초 문법 - 사전 자료형(dictionary)
2022.02.06 -
데이터 구조 및 알고리즘을 위한 파이썬 기초 문법 - 튜플(tuple)
데이터 구조 및 알고리즘을 위한 파이썬 기초 문법 - 튜플(tuple)
2022.02.06 -
데이터 구조 및 알고리즘을 위한 파이썬 기초 문법 - 문자열 타입(String)
데이터 구조 및 알고리즘을 위한 파이썬 기초 문법 - 문자열 타입(String)
2022.02.06 -
데이터 구조 및 알고리즘을 위한 파이썬 기초 문법 - 리스트(list)
데이터 구조 및 알고리즘을 위한 파이썬 기초 문법 - 리스트(list)
2022.02.05