5. 나머지 연산자
분자를 입력하시오: 7
분모를 입력하시오: 4
나눗셈의 몫= 1
나눗셈의 나머지= 3
p = int(input("분자를 입력하시오: "))
q = int(input("분모를 입력하시오: "))
print("나눗셈의 몫=", p // q)
print("나눗셈의 나머지=", p % q)
5
6. 나머지 연산자의 사용 예
짝수와 홀수의 구분
초 단위의 시간을 받아서 몇 분 몇 초인지를 계산
16 40
sec = 1000
min = 1000 // 60
remainder = 1000 % 60
print(min, remainder)
정수를 입력하시오: 28
0
number = int(input("정수를 입력하시오: "))
print(number%2)
6
7. Lab: 커피 가게 매출 계산하기
다음과 같은 커피 메뉴가 있을 때, 매출을 계산
아메리카노 판매 개수: 10
카페라떼 판매 개수: 20
카푸치노 판매 개수: 30
총 매출은 185000 입니다.
7
9. Lab: 화씨온도를 섭씨온도로 변환하기
화씨 온도를 받아서 섭씨 온도로 바꾸는 프로그램을 작
성해보자.
ftemp = int(input("화씨온도: "))
ctemp = (ftemp-32.0)*5.0/9.0
print("섭씨온도:", ctemp)
화씨온도: 100
섭씨온도: 37.77777777777778
9
10. Lab: 자동 판매기 프로그램
자동 판매기는 사용자로부터 투입한 돈과 물건값을 입력 받는다.
물건값은 100원 단위라고 가정한다.
프로그램은 잔돈을 계산하여 출력한다. 자판기는 동전 500원, 100원
짜리 만 가지고 있다고 가정하자.
투입한 돈: 5000
물건값: 2600
거스름돈: 2400
500원 동전의 개수: 4
100원 동전의 개수: 4
10
12. 지수 계산
지수(power)를 계산하려면 ** 연산자를 사용한다.
원리금 계산
>>> 2 ** 7
128
>>> a=1000
>>> r=0.05
>>> n=10
>>> a*(1+r)**n
1628.894626777442
12
13. 할당 연산자 (대입 연산자)
할당 연산자는 변수에 값을 저장하는 연산자이다.
=의 왼쪽은 반드시 변수이어야 하고, 오른쪽은 수식
x = 100 + 200
여러 개의 변수에 동일한 값을 저장하는 것도 가능
x = y = 100
다음은 잘못된 수식이다. (=의 왼쪽이 변수가 아님)
14. 대입 연산자(=)와 복합 연산자
복합 연산자(compound operator)란 +=처럼 대입 연산
자와 다른 연산자를 합쳐 놓은 연산자이다.
14
15. 복합 연산자
x = 1000
print("초깃값 x=", x)
x += 2;
print("x += 2 후의 x=", x)
x -= 2;
print("x -= 2 후의 x=", x)
초깃값 x= 1000
x += 2 후의 x= 1002
x -= 2 후의 x= 1000
15
16. 관계 연산자 (relational operator)
관계 연산자는 두 개의 피연산자를 비교하며,
연산 결과는 True 또는 False
16
연산 의미 수학적 표기
x == y x와 y가 같은가? 𝑥 = 𝑦
x != y x와 y가 다른가? 𝑥 ≠ 𝑦
x > y x가 y보다 큰가? 𝑥 > 𝑦
x < y x가 y보다 작은가? 𝑥 < 𝑦
x >= y x가 y보다 크거나 같은가? 𝑥 ≥ 𝑦
x <= y x가 y보다 작거나 같은가? 𝑥 ≤ 𝑦
17. 문자열의 비교
관계 연산자를 사용하여서 문자열도 비교할 수 있다.
17
>>> s1 = "Audrey Hepburn"
>>> s2 = "Audrey Hepburn"
>>> s1 == s2
True
>>> s1 = "Audrey Hepburn"
>>> s2 = "Grace Kelly"
>>> s1 < s2
True
사전에서 s1이 s2보다 앞에 있으면
True가 되고 그렇지 않으면
False가 된다.
18. 실수와 실수의 비교
다음과 같은 프로그램을 실행시킨 결과는?
18
>>> a = 0.1 + 0.2
>>> a == 0.3
False
>>> a = 0.1 + 0.2
>>> abs(a - 0.3) < 0.00000001 # a와 0.3의 차이가 작으면
True
비트 수가 제한되어 있기
때문에 실수를 정확하게
표현하지 못한다.
19. 주석
주석(comment)은 소스 코드에 붙이는 설명글와 같은 것
이다. 주석은 프로그램이 하는 일을 설명한다. 주석은 프
로그램의 실행 결과에 영향을 끼치지 않는다.
#부터 줄의 끝까지가 주석이다
# 사용자로부터 화씨온도를 입력받는다.
ftemp = int(input("화씨온도: "))
ctemp = (ftemp-32.0)*5.0/9.0 # 화씨온도->섭씨온도
print("섭씨온도:", ctemp) # 섭씨온도를 화면에 출력한다
19
20. 연산자의 우선 순위
1+2*3: 더하기 먼저? 곱하기 먼저?
괄호로 우선 순위를 바꾼다
>>> 10 + 20 /2
20.0
>>> (10 + 20) /2
15.0
20
22. Lab: 평균 구하기
평균을 구하고자 한다. 잘못된 부분은 어디일까?
x = int(input("첫 번째 수를 입력하시오: "))
y = int(input("두 번째 수를 입력하시오: "))
z = int(input("세 번째 수를 입력하시오: "))
avg = x + y + z / 3
print("평균 =", avg)
첫 번째 수를 입력하시오: 10
두 번째 수를 입력하시오: 20
세 번째 수를 입력하시오: 30
평균 = 40.0
22
23. Solution
x = int(input("첫 번째 수를 입력하시오: "))
y = int(input("두 번째 수를 입력하시오: "))
z = int(input("세 번째 수를 입력하시오: "))
avg = (x + y + z) / 3
print("평균 =", avg)
첫 번째 수를 입력하시오: 10
두 번째 수를 입력하시오: 20
세 번째 수를 입력하시오: 30
평균 = 20.0
23
24. 이번 장에서 배운 것
수식은 피연산자와 연산자로 이루어진다.
덧셈, 뺄셈, 곱셈, 나눗셈을 위하여 +, -, *, / 기호를 사용한다.
지수 연산자는 **이다.
나눗셈에서 몫을 계산하려면 // 연산자를 사용한다.
나눗셈에서 나머지를 계산하려면 % 연산자를 사용한다.
*와 /가 +와 –보다 우선순위가 높다.
연산자의 우선 순서를 변경하려면 괄호를 사용한다.
24
25. 실습 1: 거리 구하기
두 점의 좌표 (x1,y1)과 (x2,y2)를 입력 받아 두 점 사이의
거리를 구한다. Hint: 𝑥 = 𝑥0.5
이다.
𝑥1 − 𝑥2
2 + 𝑦1 − 𝑦2
2
25
IDLE Shell
26. Solution
x1 = int(input("x1: "))
y1 = int(input("y1: "))
x2 = int(input("x2: "))
y2 = int(input("y2: "))
dist = ( (x2 - x1)**2 + (y2 - y1)**2 )**0.5
#print("두점 사이의 거리 =", dist)
print("두점 사이의 거리 = {0}".format(dist))
26
27. 실습 2: 정수의 자리수 합
사용자로부터 0~9999인 정수를 입력 받아서 자리수의
합을 구한다. 예, 1234는 1+2+3+4를 계산하면 된다.
27
IDLE Shell
28. Solution
number = int(input("정수를 입력하시오: "))
sum = 0
sum = sum + number % 10
number = number // 10
sum = sum + number % 10
number = number // 10
sum = sum + number % 10
number = number // 10
sum = sum + number % 10
number = number // 10
print("자리수의 합: {0}".format(sum))
28