관리 메뉴

커리까지

3강: 파이썬 문법 - 수 자료형 본문

알고리즘/이론

3강: 파이썬 문법 - 수 자료형

목표는 커리 2021. 1. 4. 16:57
728x90
SMALL

자료형

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

    • 자료형에 대한 이해는 프로그래밍의 길에 첫걸음
  • 파이썬의 자료형은 정수형, 실수형, 복소수형, 문자열, 리스트, 튜플, 사전 등이 있다.

    • 파이썬의 자료형은 필수적으로 알아둬야 한다.

    • 리스트 = C++ 벡터라이브러리, 자바의 어레이리스트 라이브러리

      • 별도의 표준 라이브러리를 가지고 오지 않아도 쉽고 간결하게 이용 가능하다.

정수형

  • 정수형(Intrger)은 정수를 다루는 자료형

    • 양의 정수, 음의 정수, 0이 포함된다.
  • 코딩 테스트에서 출제되는 많은 문제들은 정수형으로 주로 다루게 된다.

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

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

# 0
a = 0
print(a)
>
1000
-1
0
a = 777
print(a)
> 777

a = -5 
print(a)
> -5

a = a + 5
print(a)
> 777

a = a + 3
print(a)
> 780

실수형

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

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

      • 온점을 붙이면 자동으로 소수
    • 소수부가 0이거나, 정수부가 0인 소수는 0을 생략하고 작성할 수 있다.

      • 0.7 -> .7 도 가능
#양의 실수
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나 E 다음에 오는 수는 10의 지수부를 의믜합니다.
    • 예를 들어 1e9라고 입력하게 되면, 10의 9제곱(1,000,000,000)이 됩니다.
유효숫자e지수 = 유효숫자 x 10지수
  • 지수 표현 방식은 임의의 큰 수를 표현하기 위해 자주 사용된다.
  • 최단 경로 알고리즘에서는 도달할 수 없는 노드에 대하여 최단 거리를 무한(INF)로 설정하곤 한다.
  • 이때 가능한 최댓값이 10억 미만이라면 무한(INF)의 값으로 1e9를 이용할 수 있다.
# 1,000,000,000의 지수 표현 방식
a = 1e9
print(a)
> 1000000000.0


#752.5
a = 75.25e1
print(a)
>752.5

#3.954
a = 3954e-3
print(a)
>3.954
a = 1e9
print(a)
> 100000000.0

a = int(1e9)
# 정수로 바꿔서 출력하는 것이 좋다.
print(a)
> 100000000

실수형 더 알아보기

  • 오늘날 가장 널리 쓰이는 IEEE754 표준에서는 실수형을 저장하기 위해 4바이트, 혹은 8바이트의 고정된 크기의 메모리를 할당하므로, 컴퓨터 시스템은 실수 정보를 표현하는 정확도에 한계를 가짐

  • 예를 들어 10진수 체계에서는 0.3과 0.6을 더한 값이 0.9로 정확이 떨어진다.

    • 하지만 2진수에서는 0.9를 정확히 표현할 수 있는 방법이 없다.

    • 컴퓨터는 최대한 0.9와 가깝에 표현하지만, 미세한 오차가 발생하게 된다.

      • 2를 3으로 나눈 값을 최대한 정확하게 표현 하려면 0.3333으로 표현한다.
      • 그래서 3/2와 같이 분수나 컴퓨터는 이진수로 표현
a = 0.3 +0.6
print(a)
> 0.8999999999999999


if a ==0.9:
	print(True)
else:
	print(False)
> False
	
  • 개발 과정에서 실수 값을 제대로 비교하지 못해서 원하는 결과를 얻지 못할 수 있다.

  • 이렇 때는 round() 함수를 이용할 수 있으며, 이러한 방법이 권장된다.

    • round() 함수 : 반올림함수
  • 예를 들어 123.456을 소수 셋째 자리에서 반올림하려면 round(123.456,2)라고 작성한다.

    • 결과는 123.46이 된다.
a = 0.3 + 0.6
print(round(a,4))
> 0.9


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

수 자료형의 연산

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

  • 단 나누기 연산자(/)를 주의해서 사용해야 한다.

    • 파이썬에서 나누기 연산자(/)는 나눠진 결과를 실수형으로 반환
  • 다양한 로직을 설계할 때 나머지 연산자(%)를 이용해야 할 때가 많다

    • 예시 : a가 홀수인지 체크해야 하는 경우
    • 특정한 양의 정수를 2로 나누었을 때 나머지가 1이라면 홀수
  • 파이썬에서는 몫을 얻기 위해 몫 연산자(//) 를 사용한다.

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

a = 7
b = 3

# 나누기
print(a / b)
> 2.33333333333335

#나머지
print(a % b)
>1

# 몫
print(a // b)
> 2
a = 5
b = 3

#거듭 제곱
print(a ** b)
> 125


#제곱근
print(a ** 0.5)
>2.23606797749979

 

 

728x90
LIST