2. 숫자형 데이터 다루기

【파이선 배우기】


1. 수와 관련된 변수

2. 산술 연산자

황금알을 낳는 거위가 있다. 이 거위는 하루가 지날 때마다 전날 낳았던 황금알 개수의 두 배만큼 황금알을 새로 낳는다고 한다. 첫날 황금알을 한 개 낳았다면 100일 뒤에는 황금알이 모두 몇 개가 될까?

이와 같은 문제는 어렸을 때부터 많이 들어왔던 문제 중 하나이다. 언뜻 보기에는 순서대로 하나하나 계산해보면 금방 구할 수 있을 것 같지만, 계산을 하다 보면 결코 쉬운 계산이 아님을 알 수 있다. 그렇다면 파이선 프로그램으로 이런 문제를 해결할 수는 없을까? 숫자형 데이터와 산술 연산자만 사용할 줄 안다면 어렵지 않게 해결할 수 있다.

이미지. 황금알을 낳는 거위가 하루가 지날 때마다 두 배씩 알을 낳는 것을 표현. 1개, 2개, 4개, 8개, 16개, 32개 순서로 늘어난다.

1수와 관련된 변수

가. 변수에 수와 관련된 데이터를 담는 방법

1) 변수에 수 데이터를 대입

이미지. 변수에 수 데이터를 대입하는 과정을 설명한 동영상의 스크린샷.
예제 코드, 2number1.py

a=3

b=1.5


print(a)

print(b)

이미지. 이미지. 2number1.py의 순서도. 시작, 다음, a변수와 b변수에 수 데이터 대입, 다음, a변수 출력, b변수 출력, 다음, 종료
실행결과

>2number1.py

3

1.5

변수 a에는 정수 3을 대입하고, 변수 b에는 실수 1.5를 대입한 후 변수 a와 b를 출력한 결과이다.


2) 숫자 변수의 값을 변수에 대입

이미지. 숫자 변수의 값을 변수에 대입하는 과정을 설명한 동영상의 스크린샷.
예제 코드, 2number2.py

a=3.5

b=a


print(a, b)

이미지. 2number2.py의 순서도. 시작, 다음, a변수에 수 데이터 대입, b변수에 a변수를 대입, 다음, a변수와 b변수 출력, 다음, 종료
실행결과

>2number2.py

3.5 3.5

변수 a에는 실수 3.5를 대입하고, 변수 b에도 변수 a의 값인 실수 3.5를 대입한 후 변수 a와 b를 출력한 결과이다.


3) 계산 결과를 변수에 대입

이미지. 계산 결과를 변수에 대입하는 과정을 설명한 동영상의 스크린샷.
예제 코드, 2number3.py

a=10+5

b=10-1.5


print(a)

print(b)

이미지. 2number3.py의 순서도. 시작, 다음, 변수 a와 변수 b에 계산 결과를 대입, 다음, a변수 , b변수 출력, 다음, 종료
실행결과

>2number3.py

15

8.5

변수 a에는 10+5의 연산 값을, 변수 b에는 10-1.5의 연산 값을 대입한 후 변수 a와 b를 출력하면 연산 값인 15와 8.5가 출력된다.

나. 숫자형 데이터 형식

숫자형 데이터 형식은 크게 정수형 데이터와 실수형 데이터 형식으로 나눌 수 있다. 정수는 음의 정수, 0, 양의 정수를 말하며, 실수는 1.2, -20.3처럼 소수점이 있는 데이터이다. 정수 및 실수형 데이터는 모두 숫자형 데이터로 사칙연산을 수행할 수 있다. 다음은 변수의 종류를 확인하기 위한 예제 코드이다.

이미지. 숫자형 데이터 형식을 설명.
예제 코드, 2number4.py

a=10

b=-1.52


print(type(a))

print(type(b))

이미지. 2number4.py의 순서도. 시작, 다음, a변수와 b변수에 숫자형 데이터를 대입, 다음, a변수의 종류를 출력, b변수의 종류를 출력, 다음, 종료
실행결과

>2number4.py

<class 'int'>

<class 'float'>

type() 함수는 변수의 종류를 확인할 수 있는 함수이다. 변수 a에는 정수 10을 대입하고, 변수 b에는 실수 -1.52를 대입한 후 변수 a와 변수 b의 변수의 종류를 확인한 결과이다. 변수 a는 정수형 변수이므로 <class ‘int’>가, 변수 b는 실수형 변수이므로 <class ‘float’>가 실행됨을 확인할 수 있다.

다. 코딩해 보기

1) 변수 a에 정수 3을 대입하고, 변수 b에 실수 3.0을 대입되도록 코딩해 보자.

a=3

b=3.0

2) 변수 c에는 0이 대입되어 있다. 변수 c는 어떤 종류의 변수인지 확인해 볼 수 있게 코딩해 보자.

c=0

print(type(c))

2산술 연산자

가. 산술 연산자란?

산술 연산자란 파이선에서 기본적인 계산을 할 때 사용되는 것을 말한다. 일반적으로 ‘+, -, *, /’의 사칙연산이 대표적이며, 많이 사용하는 산술 연산자는 다음과 같다.

산술 연산자 설명 예시 예시 설명
+ 더하기 a=1+2 1과 2를 더한 값을 a에 대입
- 빼기 a=2-1 2에서 1을 뺀 값을 a에 대입
* 곱하기 a=2*3 2와 3을 곱한 값을 a에 대입
/ 나누기 a=6/2 6을 2로 나눈 값을 a에 대입
= 대입 연산자 a=1 정수 1을 a에 대입
// 나누기(몫) a=6//4 6을 4로 나눈 뒤 소수점을 버리고 a에 대입
% 나머지 값 a=6%4 6을 4로 나눈 뒤 나머지 값을 a에 대입
** 제곱 a=2**4 2의 4제곱을 a에 대입

나. 연산의 우선순위

‘1+2*3’과 같은 수식을 계산한다고 할 경우 덧셈보다 곱셈을 먼저 계산해야 한다. 곱셈 연산이 덧셈 연산보다 연산 순위에서 우위에 있기 때문이다. 연산의 우선순위는 다음과 같다.

1) 괄호 안의 계산

2) 곱셈 또는 나눗셈

3) 덧셈 또는 뺄셈

4) 같은 순위일 경우 왼쪽에서 오른쪽 순서로 계산

다음은 산술연산자를 사용한 예제 코드이다.

이미지. 연산의 우선순위를 설명한 동영상의 스크린샷.
예제 코드, 2number5.py

a=3+4

b=7-2.6

c=3*-2

d=6/4

e=6//4

f=6%4


print(a, b, c, d, e, f)

이미지. 2number5.py의 순서도. 시작, 다음, a, b, c, d, e, f변수에 연산 결과를 대입, a, b, c, d, e, f변수를 출력, 다음, 종료
실행결과

>2number5.py

7 4.4 -6 1.5 1 2

변수 a에는 3 더하기 4의 연산 값인 7, 변수 b에는 7 빼기 2.6의 값인 4.4, 변수 c에는 3 곱하기 -2의 값인 -6, 변수 d에는 6 나누기 4의 값인 1.5, 변수 e에는 6 나누기 4에서 소수점 이하인 0.5를 버린 몫의 값인 1, 변수 f에는 6 나누기 4의 나머지 값인 2가 대입된다.


다. 코딩해 보기

1) 3 곱하기 5의 값을 가지는 변수 a를 만든 후 “3 곱하기 5는 ‘변수 a의 값’입니다.”가 출력되도록 코딩해 보자.

a=3*5

print("3곱하기 5는", a, "입니다.")

2) 5 나누기 2의 나머지 값과 7 나누기 2의 나머지 값의 합이 출력되도록 코딩해 보자.

a=5%2

b=7%2

c=a+b

print(c)