일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 쿠키
- data type
- 이코테
- 이것이 취업을 위한 코딩 테스트다
- 북클럽
- 노마드코더
- 데이터통신
- GIT
- RARP
- 데이터 통신과 컴퓨터 네트워크
- 라우팅
- 노개북
- 컴퓨터네트워크
- 쉽게 배우는 데이터 통신과 컴퓨터 네트워크
- 기억장치
- OSI7계층모델
- IT5분잡학사전
- sort()
- 리스트
- ARP
- 파이썬 연산자
- 파이썬 자료형
- CS
- 파이썬 정렬
- DP
- 자료형
- 컴퓨터 동작방식
- icmp
- 시스템 소프트웨어
- 이것이 취업을 위한 코딩테스트다
- Today
- Total
뚝딱햄 탈출기
[Python] 수 자료형 Number data type 본문
이것이 취업을 위한 코딩 테스트다 with 파이썬 - 나동빈 저
APPENDIX A. 코딩 테스트를 위한 파이썬 문법 정리 내용
자료형 (데이터 타입, data type) 종류
- 수 (Number)
- 리스트 (List)
- 문자열 (String)
- 튜플 (Tuple)
- 사전 (Dictionary)
- 집합 (Set)
[Python] 자료형 (데이터 타입, data type) : number, list, string, tuple, dictionary, set
이것이 취업을 위한 코딩 테스트다 with 파이썬 - 나동빈 저 APPENDIX A. 코딩 테스트를 위한 파이썬 문법 정리 내용 파이썬의 자료형은 C/C++, Java와 같은 다른 언어에서 사용되는 기본 자료형을 제공
hyrmzz1.tistory.com
수 자료형 (Number)
데이터는 모두 number로 표현할 수 있다.
대부분의 프로그램에서는 일반적으로 정수와 실수가 많이 사용되고, 그중에서도 정수를 기본으로 사용한다.
실제 코딩 테스트에서도 대부분 정수형을 다루는 문제가 출제되며, 실수형을 다루어야 하는 문제는 출제 빈도가 낮다.
정수형 (Integer)
정수를 다루는 자료형으로, 코딩 테스트에서 출제되는 알고리즘 문제는 대부분 입출력 데이터가 정수형이다.
양의 정수, 음의 정수, 0
실수형 (Real Number)
소수점 아래의 데이터를 포함하는 수 자료형.
변수에 소수점을 붙인 수를 대입하면 실수형 변수로 처리한다.
소수부나 정수부가 0인 소수는 0을 생략하고 작성 가능하다.
# 양의 실수
a = 157.93
print(a) # 157.93
# 음의 실수
a = -1837.2
print(a) # -1837.2
# 소수부가 0일 때 0을 생략
a = 5.
print(a) # 5.0
# 정수부가 0일 때 0을 생략
a = -.7
print(a) # -0.7
e나 E를 이용한 지수 표현 방식
유효숫자eⁿ = 유효숫자 × 10ⁿ
e 다음에 오는 수는 10의 지수부를 의미한다. ex) 1e9 = 10^9
일일히 큰 수를 특정 변수에 대입하는 일은 번거롭고, 큰 수를 표현할 때 0의 개수가 많으면 자릿수가 헷갈리는 경우가 많으므로 지수 표현 방식은 코딩 테스트에서 많이 사용된다.
987,654,321은 10억(= 10^9. 1,000,000,000)과 유사할 정도로 크므로 1e9라고 표기하기도 한다.
a = 1e9 # 1 × 10^9
print(a) # 1000000000.0
a = 75.25e1 # 75.25 × 10^1
print(a) # 752.5
a = 3954e-3 # 3954 × 10^(-3)
print(a) # 3.954
컴퓨터는 실수를 정확히 표현하지 못한다.
보통 컴퓨터 시스템은 수 데이터를 처리할 때 2진수를 이용하며, 실수를 처리할 때 부동 소수점 방식을 이용하는데,
오늘날 가장 널리 쓰이는 IEEE754 표준에서는 실수형을 저장하기 위해 고정된 크기의 메모리(4 bytes or 8 bytes)를 할당하기 때문에 대체로 실수 정보를 표현하는 정확도에 한계를 가진다.
a = 0.3 + 0.6
print(a) # 0.8999999999999999
if a == 0.9:
print(True)
else:
print(False) # False가 출력된다.
위와 같은 결과가 나오는 이유는 2진수에서 0.9를 정확히 표현할 수 있는 방법이 없기 때문이다.
따라서 소수점 값을 비교하는 작업이 필요한 문제라면 실수 값을 비교하지 못해 원하는 결과를 얻지 못할 수 있다. 이런 경우 round() 함수를 이용할 수 있다.
round() 함수 호출시 두 개의 인자를 넣는데,
첫 번째 인자는 실수형 데이터, 두 번째 인자는 (반올림하고자 하는 위치 - 1)이다.
두 번째 인자 없이 하나의 인자만을 넣으면 소수점 첫째 자리에서 반올림한다.
a = 123.456
print(round(a, 2) # 소수점 셋째 자리에서 반올림. 소수점 둘째 자리까지 출력됨. 123.46
a = 234.56
print(round(a)) # 소수점 첫째 자리에서 반올림. 235
'''
흔히 코딩 테스트 문제에서 실수형 데이터를 비교할 때
소수점 다섯 번째 자리에서 반올림한 결과가 같으면 정답으로 인정하는 식으로 처리함.
'''
a = 0.3 + 0.6 # 0.8999999999999999
b = round(a, 4) # 소수점 다섯 번째 자리에서 반올림하려면 round() 두번째 인자에 4 넣어야 함.
print(b) # 0.9
if b == 0.9:
print(True) # True 출력됨.
else:
print(False)
수 자료형의 연산
프로그래밍에서는 사칙연산(+, -, x, /)을 이용해 계산하며,
파이썬에서 나누기 연산자(/)는 나눠진 결과를 기본적으로 실수형으로 처리한다.
a = 7
b = 3
# 나누기
print(a / b) # 2.3333333333335
# 나머지
print(a % b) # 1
# 몫
print(a // b) # 2
# 거듭제곱
print(a ** b) # 343. 7^3
여러 연산을 한 줄에서 할 경우에는 사칙연산의 순서를 따른다.
a = 4
b = 1
print(a + 3 * b - 1) # 3* b 연산 결과에 a를 더한 후 1을 뺀 값 출력.
JS와 달리, i++, ++i, i--, --i 와 같은 증감 연산자가 없어 +=, -= 형태로 작성해야 한다.
a += 3 # a = a + 3
print(a) # 10
'Programming language > Python' 카테고리의 다른 글
[Python] 연산자 : 비교 연산자, 논리 연산자 (0) | 2023.10.03 |
---|---|
[Python] 반복문 : while문, for문 (0) | 2023.10.02 |
[Python] 조건문 : if elif else 문 (1) | 2023.10.02 |
[Python] 자료형 (데이터 타입, data type) : number, list, string, tuple, dictionary, set (0) | 2023.10.02 |
[Python] 리스트 자료형 List data type : 리스트 컴프리헨션, 인덱싱, 슬라이싱, 리스트 연산, 기타 메서드 (0) | 2023.10.01 |