컴퓨터의 가장 기본적인 기능은 계산입니다. 이 페이지에서는 파이썬을 계산기처럼 이용하는 방법을 알아보겠습니다.
예를 들어 3 + 4 를 파이썬을 이용해 계산해본다면 다음과 같은 수식을 파이썬 코드로 작성하면 됩니다.
3 + 4
반지름이 5.0인 원의 면적을 계산해봅시다. 아래의 코드를 작성하면 곱셈 계산을 쉽게 할 수 있습니다.
3.14 * 5.0 * 5.0
곱하기 기호를 입력할 때는 X가 아닌 *을 이용해야 하는데 프로그래밍 언어에서는 곱하기 기호가 키보드에 없기 때문입니다.
수식(expression)이란 피연산자들과 연산자의 조합입니다. 연산자(operator)는 어떤 연산을 나타내는 기호이고 피연산자(operand)는 연산의 대상입니다.
수식 (5 * 8)에서 5와 8은 피연산자이고 *는 연산자입니다.
| 연산자 | 기호 | 사용 예 | 결과 값 |
| 덧셈 | + | 7 + 4 | 11 |
| 뺄셈 | - | 7 - 4 | 3 |
| 곱셈 | * | 7 * 4 | 28 |
| 나눗셈 | // | 7 // 4 | 1 |
| 나눗셈 | / | 7 / 4 | 1.75 |
| 나머지 | % | 7 % 4 | 3 |
파이썬에서 나눗셈은 항상 실수로 계산되지만 경우에 따라 나눗셈을 정수로 계산하고 싶은 경우가 있을 것입니다.
이때는 // 을 사용하면 됩니다. // 을 사용하면 소수점 이하가 없어지고 정수 부분만 남습니다.
계산 결과와 텍스트를 동시에 출력할 때는 아래의 예제와 같이 작성합니다.
print("1 + 2는", 1+2, "이다.")
print("1 KB는 ", 2 ** 10, "바이트이다.")
<실행 결과>
1 + 2는 3 이다.
1 KB는 1024 바이트이다.
지수(power)를 계산하려면 ** 연산자를 사용합니다. 예를 들어 을 계산하는 파이썬 수식은 2 ** 7 입니다.
수학에서처럼 지수 연산자는 다른 연산자들보다 높은 우선 순위를 가집니다. 예를 들어 10 * 2 ** 7은 입니다.
다른 연산자하고는 다르게 지수 연산자는 오른쪽에서 왼쪽으로 계산됩니다. 예를 들어 2 ** 2 ** 3 은 2 ** (2 ** 3) = 2 ** 8 = 256 이 됩니다.
원리금 합계를 복리로 계산하는 식을 만들어 봅시다.
원금 a, 이자율 r, n년 후에 원리금 합계는 b = a(1+r)^n이 되는데 이것을 파이썬으로 만들어 계산하면 다음과 같습니다.
a = 1000
r = 0.05
n = 10
print(a*(1+r)**n)
<실행 결과>
1628.894626777442
나머지 연산자 %는 생각보다 많이 사용되는 중요한 연산자입니다. x % y는 x를 y로 나누어 남은 나머지를 반환하는데 예를 들어 7 % 4 는 3입니다.
7을 4로 나누면 몫은 1이고 나머지는 3이 됩니다.
나머지 연산은 모듈러스(modulus) 연산이라고도 불리는데 % 연산자는 퍼센트와 전혀 상관 없습니다.
나머지 연산자를 이용하면 짝수와 홀수를 쉽게 구분할 수 있습니다. 즉 어떤 수 x를 2로 나누어 나머지가 0이면 짝수입니다.
또 3의 배수도 쉽게 판별할 수 있는데 x%3의 결과가 0이면 3의 배수입니다.
아래 예제는 초단위의 시간을 받아 몇 분 몇 초인지 계산하는 예제입니다. 1000초가 몇 분 몇 초에 해당하는지를 계산합니다.
sec = 1000
min = 1000 // 60
remainder = 1000 % 60
print(min, remainder)
<실행 결과>
16 40
1000초는 16분 40초인 것을 알 수 있습니다.
1. 파이썬을 사용하여 2차 함수 에서
일 때, 함수의 값을 계산하여 봅시다. (지수 연산자 **을 사용하면 됩니다.)
<실행 결과>
35
2. 1번 문제를 참고하여 에서
일때, 함수의 값을 계산하여 봅시다.
<실행 결과>
85
3. 쿠러그에서 총회 이후에 뒷풀이로 치맥 파티가 열린다고 합니다.
뒷풀이에 참석하는 사람들을 위해 음식을 준비해야 하는데 문제는 뒷풀이 참석이라고 투표한 사람 중 오지 않는 빌런들 때문에 뒷풀이에 참석하는 사람의 수가 변경될 수 있다는 것입니다.
따라서 참석자 수에 따른 유동적인 치킨 주문을 위해 치킨(1인당 1마리), 맥주(1인당 2캔), 과자(1인당 4개)를 계산하여 출력하는 프로그램을 작성해보고자 합니다.
<실행 결과>
참석자의 수를 입력하시오 : 25
치킨의 수 : 25
맥주의 수 : 50
과자의 수 : 100
참석자 수, 치킨의 수, 맥주의 수, 케익의 수를 나타내는 변수를 생성하여 프로그래밍 합니다.
사용자에게서 정수를 받아 변수에 저장하는 문장은 아래와 같습니다.
number = int( input("참석자의 수를 입력하시오:") )
변수를 사용하면 어떤 장점이 있을까요?
파티에 참석하는 사람들의 숫자가 변경되었다고 가정해볼 때, 프로그램에서 number 변수의 값만 변경하면 치킨의 수, 맥주의 수, 과자의 수는 자동으로 변경됩니다.