본문 바로가기
파이썬(Python)/파이썬(Python) 문법

파이썬에서의 연산

by 공.대.남 2018. 7. 11.
반응형

숫자형이란?

숫자형(Number)이란 숫자 형태로 이루어진 자료형으로, 우리가 이미 잘 알고 있는 것들이다.

우리가 흔히 사용하는 것들을 생각해 보자. 123과 같은 정수, 12.34와 같은 실수, 드물게 사용하긴 하지만 8진수나 16진수 같은 것들도 있다.

아래 표는 숫자들이 파이썬에서 어떻게 사용되는지를 간략하게 보여 준다.

항목사용 예
정수123, -345, 0
실수123.45, -1234.5, 3.4e10
8진수0o34, 0o25
16진수0x2A, 0xFF

이제 이런 숫자들을 파이썬에서는 어떻게 만들고 사용하는지 자세히 알아보자.

숫자형은 어떻게 만들고 사용할까?

정수형

정수형(Integer)이란 말 그대로 정수를 뜻하는 자료형을 말한다. 다음 예는 양의 정수와 음의 정수, 숫자 0을 변수 a에 대입하는 예이다.

>>> a = 123
>>> a = -178
>>> a = 0

실수형

파이썬에서 실수형(Floating-point)은 소수점이 포함된 숫자를 말한다. 다음 예는 실수를 변수 a에 대입하는 예이다.

>>> a = 1.2
>>> a = -3.45

위의 방식은 우리가 일반적으로 볼 수 있는 실수형의 소수점 표현 방식이다.

>>> a = 4.24E10
>>> a = 4.24e-10

위의 방식은 "컴퓨터식 지수 표현 방식"으로 파이썬에서는 4.24e10 또는 4.24E10처럼 표현한다(e와 E 둘 중 어느 것을 사용해도 무방하다). 여기서 4.24E10은 4.241010, 4.24e-10은 4.241010을 의미한다.

8진수와 16진수

8진수(Octal)를 만들기 위해서는 숫자가 0o 또는 0O(숫자 0 + 알파벳 소문자 o 또는 대문자 O)로 시작하면 된다.

>>> a = 0o177

16진수(Hexadecimal)를 만들기 위해서는 0x로 시작하면 된다.

>>> a = 0x8ff
>>> b = 0xABC

8진수나 16진수는 파이썬에서 잘 사용하지 않는 형태의 숫자 자료형이니 간단히 눈으로 익히고 넘어가자.

숫자형을 활용하기 위한 연산자

사칙연산

프로그래밍을 한 번도 해본 적이 없는 독자라도 사칙연산(+, -, *, /)은 알고 있을 것이다. 파이썬 역시 계산기와 마찬가지로 아래의 연산자를 이용해 사칙연산을 수행한다.

>>> a = 3
>>> b = 4
>>> a + b
7
>>> a * b
12
>>> a / b
0.75

[파이썬 2.7에서 3/4를 실행하면 어떻게 될까?]

파이썬 2.7의 경우 위 사칙연산 예제의 a/b를 실행하면 0.75가 아닌 0이 출력된다. 파이썬 2.7은 정수형끼리 나눌 경우 정수로만 결과값을 리턴하기 때문이다. 만약 위 예제와 동일한 결과값을 얻고 싶다면 a/(b*1.0)처럼 b를 강제로 실수형으로 변환해야 한다. 이 책에서 사용하는 파이썬 3은 위의 사칙연산 예제에서 볼 수 있듯이 실수형으로 따로 변환해 줄 필요가 없다.

x의 y제곱을 나타내는 ** 연산자

다음으로 알아야 할 연산자로 **라는 연산자가 있다. 이 연산자는 x ** y처럼 사용되었을 때 x의 y제곱(xy) 값을 리턴한다. 다음의 예를 통해 알아보자.

>>> a = 3
>>> b = 4
>>> a ** b
81

나눗셈 후 나머지를 반환하는 % 연산자

프로그래밍을 처음 접하는 독자라면 % 연산자는 본 적이 없을 것이다. %는 나눗셈의 나머지 값을 반환하는 연산자이다. 7을 3으로 나누면 나머지는 1이 될 것이고 3을 7로 나누면 나머지는 3이 될 것이다. 다음의 예로 확인해 보자.

>>> 7 % 3
1
>>> 3 % 7
3

나눗셈 후 소수점 아랫자리를 버리는 // 연산자

/ 연산자를 사용하여 7 나누기 4를 하면 그 결과는 예상대로 1.75가 된다.

>>> 7 / 4
1.75

이번에는 나눗셈 후 소수점 아랫자리를 버리는 // 연산자를 사용한 경우를 보자.

>>> 7 // 4
1

1.75의 소수점 부분인 0.75가 제거되어 1이 나오는 것을 확인할 수 있다.

// 연산자를 사용할 때는 한가지 주의해야 할 점이 있다. 그것은 다음처럼 음수에 // 연산자를 적용하는 경우이다.

>>> -7 / 4
-1.75
>>> -7 // 4
-2

-1.75 라는 실수에서 소수점을 버리면 -1이 되어야 할 것 같지만 -7 // 4의 결과는 -2가 되었다. 이렇게 되는 이유는 // 연산자는 나눗셈의 결과에서 무조건 소수점을 버리는것이 아니라 나눗셈의 결과값보다 작은 정수 중, 가장 큰 정수를 리턴하기 때문이다.

연습문제


[문제1] 점수의 평균

홍길동씨의 과목별 점수는 각각 다음과 같다.

과목점수
국어80
영어75
수학55

홍길동씨의 평균점수를 구하시오.


[문제2] 나눗셈의 몫

17을 3으로 나누었을 때 그 몫을 구하시오.


[문제3] 나눗셈의 나머지

17을 3으로 나누었을 때 그 나머지 값을 구하시오.


[문제4] 자연수의 홀짝

주어진 자연수가 홀수인지 짝수인지 판별할 수 있는 방법에 대해서 말해보자.



728x90
반응형

'파이썬(Python) > 파이썬(Python) 문법' 카테고리의 다른 글

파이썬 집합  (0) 2018.07.11
파이썬 딕셔너리  (0) 2018.07.11
파이썬 튜플  (0) 2018.07.11
파이썬 리스트  (0) 2018.07.11
파이썬 문자열 연산  (0) 2018.07.11

댓글