파이썬 자료형은 c/c++, java와 같은 다른 언어에서 사용되는 기본 자료형을 제공할 뿐만 아니라 사전, 집합 자료형 등 강력한 기능을 제공하는 자료형을 기본으로 내장하고 있습니다.
수 자료형
Number은 코딩 테스트에서 가장 기본적인 자료형이다. 정수형, 실수형 등이 있다.
정수형
정수형이란 말 그대로 정수를 뜻하는 자료형이며, 양의 정수, 음의 정수, 0 이 있다. 알고리즘 문제는 대부분 입력과 출력 값이 정수형이다.
a = 100 # 양의 정수
print(a)
b = -100 # 음의 정수
print(b)
# 0
a = 0
print(a)
출력 : 100, -100, 0
실수형
실수형은 소수점 아래의 데이터를 포함하는 수 자료형으로 파이썬에서는 변수에 소수점을 붙인 수를 대입하면 실수형 변수로 처리한다.
# 양의 실수
a = 157.93
print(a)
# 음의 실수
a = -100.78
print(a)
# 소수부가 0일떼 0을 생략
a = 8.
print(a)
# 정수부가 0일때 0을 생략
a = -.9
print(a)
출력 : 157.93, -100.78, 8.0, -0.9
실수형 데이터를 표현하는 방식으로 파이썬에서는 e나 E를 이용한 지수 표현방식을 이용할 수 있다. e 다음에 오는 수는 10의 지수부를 의미한다. ex) 1e9 -> 10의 9 제곱인 (1,000,000,000)이 된다.
# 10억의 지수 표현 방식
a = 1e9
print(a)
# 752.5
a = -75.25e1
print(a)
# 3.954
a = 3594e-3
print(a)
컴퓨터는 실수를 정확하게 표현하지 못한다. 왜냐하면 보통 컴퓨터 시스템은 데이터를 처리할 때 2진수를 이용하며, 실수를 처리할 때 부동 소수점 방식을 이용하기 때문이다.
a = 0.3 + 0.6
print(a)
if a == 0.9:
print(True)
else:
print(False)
출력 : 0.8999999999999999, False
따라서 소수점 값을 비교하려면 round() 함수를 이용해야 한다.
round() 함수의 호출 인자는 두 개가 들어가는데 첫 번째 인자는 실수형 데이트이고, 두 번째 (반올림하고자 하는 위치 -1 )이다.
ex) 123.456 -> round(123.456, 2)라고 작성하면 123.46이 된다.
a = 0.3 + 0.6
print(round(a, 4))
if round(a, 4) == 0.9:
print(True)
else:
print(False)
출력 : 0.9, True
코딩 테스트 문제에서는 실수형 데이터를 비교할 때 소수점 다섯 번째 자리에서 반올림한 결과가 같으면 정답으로 인정하는 식으로 처리한다. 그래서 반올림하고자 하는 위치는 5번째라서 -1을 해주어 두 번째 인자에 4를 적어주었다.
수 자료형의 연산
프로그래밍의 사칙연산 (+,-,x,/)을 이용해 계산한다. 이중 나누기 연산자 (/)를 주의 헤서 사용하자. 왜? 파이썬에선 나누기 연산자(/)를 실수형으로 처리하기 때문이다.
코딩 테스트 문제를 풀 때 나머지 연산자를(%)할 때가 많은데, 특정 변수가 홀수인지 짝수인지 구별하기 위해서이다. 또한, 나눈 결과의 몫만을 얻고자 할 때에는 몫 연산자(//)를 이용한다.
a = 7
b = 3
# 나누기
print(a / b)
# 나머지
print(a % b)
# 몫
print(a // b)
출력 : 2.3333333333333335, 1, 2
이 외에도 거듭제곱 연산자 (**)를 비롯해 다양한 연산자들이 존재한다.
a = 5
b = 3
print(a ** b)
출력 : 125
a의 b승 즉, 5의 3승인 125이다.
이것이 코딩 테스트다 소스코드
https://github.com/ndb796/python-for-coding-test
파이썬 자료형에 대해 공부해 보았습니다.
알고리즘에 필요한 파이썬을 공부하고 알고리즘 문제를 풀며 실력을 키워나가 봅시다!
참고 : 이것이 취업을위한 코딩 테스트다 with 파이썬
'Algorithms > with python' 카테고리의 다른 글
파이썬 - 문자열 자료형, 튜플 (0) | 2021.03.17 |
---|---|
파이썬 - 리스트 컴프리헨션, insert() , append() , remove() .. (2) | 2021.03.03 |
파이썬 - list, 인덱싱(indexing), 슬라이싱(Slicing) (0) | 2021.03.03 |