등호 (=, + 등)을 연산자
라고 한다.
연산의 대상자를 피연산자
라고 한다.
연산자 종류
- 산술 연산자: +, -, *, /, %, //, **
- 할당 연산자: =, +=, -=, *=, /=, %=, //=
- 비교 연산자: >, >=, <, <=, ==, !=
- 논리 연산자: and, or, not
1) 정수를 이용한 덧셈
num1 = 12
num2 = 4
result = num1 + num2
print(f'result: {result}')
2) 실수를 이용한 덧셈
fNum1 = 3.14
fNum2 = 1.125
result = fNum1 + fNum2
print('result: %.2f' % result)
3) 정수와 실수를 이용한 덧셈
result = num1 + fNum2
print(f'result: {result}')
4) 문자를 이용한 덧셈
str1 = 'Nighty'
str2 = ' '
str3 = 'night'
result = str1 + str2 + str3
print(f'result: {result}')
5) 숫자와 문자를 이용한 덧셈
result = num1 + str1
print(f'result: {result}')
Q1. 국어, 영어, 수학 점수를 입력하고 합계를 출력하기
[실행결과]
국어 점수: 85
영어 점수: 90
수학 점수: 95
국어 점수 85
영어 점수 90
수학 점수 95
합계 270
kor = int(input('국어 점수 입력: '))
eng = int(input('영어 점수 입력: '))
math = int(input('수학 점수 입력: '))
total = kor + eng + math
print('국어 점수 {}'.format(kor))
print('수학 점수 {}'.format(eng))
print('수학 점수 {}'.format(math))
print('합계 {}'.format(total))
1) 정수를 이용한 뺄셈
num1 = 10
num2 = 20
result = num1 + num2
print(f'num1 : {num1}')
print(f'num2: {num2}')
print(f'result: {result}')
2) 실수를 이용한 뺄셈
fNum1 = 3.14
fNum2 = 0.14
result = fNum1 - fNum2
print(f'fNum1: {fNum1}')
print(f'fNum2: {fNum2}')
print(f'result: {result}')
print(f'type of result: {type(result)}')
3) 정수와 실수를 이용한 뺄셈
result = num1 - fNum1
print(f'num1 : {num1}')
print(f'fNum1: {fNum1}')
print(f'result: {result}')
print(f'type of result: {type(result)}')
4) 문자(열)을 이용한 뺄셈
str1 = 'Nighty'
str2 = ' '
str3 = 'night'
result = str1 - str2 - str3
print('result: {}.format(result)')
Q1. 이번달 알바비와 카드값을 입력하고, 남은 금액이 얼마인지 출력하기
[실행결과]
알바비: 800000원
카드값: 453000원
남는돈: 347000원
partTimeMoney = int(input('알바비: '))
cardMoney = int(input('카드값: '))
result = partTimeMoney - cardMoney
print('알바비: {}원'.format(partTimeMoney))
print('카드값: {}원'.format(cardMoney))
print('남는돈: {}원'.format(result))
1) 숫자(정수, 실수)를 이용한 곱셈
num1 = 20
fNum1 = 3.14
result = num1 + fNum1
print('result: {}'.format(result))
print('result: %.2f' % result)
2) 문자(열)을 이용한 곱셈
str1 = 'Hi '
result = str1 * 5
print('result: {}'.format(result))
1) 숫자(정수, 실수)를 이용한 나눗셈
num1 = 10
num2 = 3
result = num1 / num2
print('num1: {}, num2: {}'.format(num1, num2))
print('result: {}'.format(result))
print('result: %.2f' % result)
2) 0을 나눗셈 하는 경우
num1 = 0
num2 = 3
result = num1 / num2
print('result: {}'.format(result))
3) 0으로 나누는 경우
num1 = 0
num2 = 3
result = num2 / num1
print('result: {}'.format(result))
4) 나눗셈 결과는 항상 float
num1 = 20
num2 = 10
result = num1 / num2
print('result: {}'.format(result))
print('type of reuslt: {}'.format(type(result)))
따라서 나눗셈 결과를 integer로 만들고 싶으면 경우,
result = int(num1 / num2)
print('result: {}'.format(result))
print('type of reuslt: {}'.format(type(result)))
Q1. 국어, 영어, 수학 점수를 입력하고 평균을 출력하기
[실행결과]
국어 점수: 85
영어 점수: 95
수학 점수: 85
국어 점수 85
영어 점수 95
수학 점수 85
평균 88.33333333333333
평균 88.33
korScore = input('국어 점수: ')
engScore = input('영어 점수: ')
mathScore = input('수학 점수: ')
avg = int((korScore + engScore + mathScore)) / 3 * 100
print('국어 점수 {}'.format(korScore))
print('영어 점수 {}'.format(engScore))
print('수학 점수 {}'.format(mathScore))
print('평균 {}'.format(avg))
print('평균 %.2f' % avg)
1) 나눗셈 결과 나머지만 구하기
나머지
를 구하려면 %
을 사용하면 된다.num1 = 10
num2 = 3
result = num1 % num2
print('num1: {}, num2: {}, result: {}'.format(num1, num2, result))
10을 3으로 나누면 나머지가 1인 나온다. 따라서 아래에서도 나머지가 1인걸 확인할 수 있다.
1) 나눗셈 결과 몫만 구하기
몫
을 구하려면 //
을 사용하면 된다.num1 = 10
num2 = 3
result = num1 // num2
print('num1: {}, num2: {}, result: {}'.format(num1, num2, result))
10을 3으로 나누면 몫이 3이 나온다. 따라서 아래에서도 결과값이 3인걸 확인할 수 있다.
divmod()
함수는 division mode의 약자로num1 = 10
num2 = 3
result = divmod(num1, num2)
print('result: {}'.format(result))
print('몫: {}'.format(result[0])) # 인덱스 0에 해당하는 값
print('나머지: {}'.format(result[1])) # 인덱스 1에 해당하는 값
이러한 (x, y) 형태를 tuple(튜블) 형태라고 한다.
여기서 [0]은 인덱스 0에 해당하는 값으로 x를 뜻하고, [1]은 인덱스 1에 해당하는 값으로 y를 뜻한다.
Q1.
[실행결과]
전체 학생 수: 25
한 모둠 학생 수: 4
전체 학생 수: 25
한 모둠 학생 수: 4
모둠 수: 6
남는 학생 수: 1
allStuCnt = int(input('전체 학생 수: '))
stuCntOfGroup = int(input('한 모둠 학생 수: '))
result = divmod(allStuCnt, stuCntOfGroup)
# groupCnt = allStuCnt // stuCntOfGroup
# overStuCnt = allStuCnt % stuCntOfGroup
print('전체 학생 수: {}'.format(allStuCnt))
print('한 모둠 학생 수: {}'.format(stuCntOfGroup))
print('모둠 수: {}'.format(result[0]))
print('남는 학생 수: {}'.format(result[1]))
Q2. 123개의 사과를 4개씩 직원들한테 나누어 주려고 한다. 최대 나누어 줄 수 있는 직원 수와 남는 사과 개수를 출력하기
employee = 123
apple = 4
result = divmod(123, 4)
print('최대 나누어 줄 수 있는 직원 수: {}'.format(result[0]))
print('남는 사과 개수: {}개'.format(result[1]))
거듭제곱
을 나타내는 연산자는 **
를 쓴다.
num1= 2
num2 = 3
result = num1 ** num2 # 2의 3승 = 2x2x2
print('num1: {}'.format(num1))
print('num2: {}'.format(num2))
print('result: {}'.format(result))
1) 제곱근 구하기
n의 m제곱근 공식
n ** (1/m)
#2의 2제곱근 구하기
result = 2 ** (1/2)
print('2의 제곱근 %f' % result)
print('2의 제곱근 %.2f' % result)
#2의 3제곱근 구하기
result = 2 ** (1/3)
print('2의 3제곱근 %f' % result)
print('2의 3제곱근 %.2f' % result)
#2의 4제곱근 구하기
result = 2 ** (1/4)
print('2의 4제곱근 %f' % result)
print('2의 4제곱근 %.2f' % result)
2) math 모듈의 sqrt()와 pow() 함수
sqrt()
함수를 이용한 제곱근 구하기sqrt() 함수는 2제곱근만 구한다. 이 의미는 3제곱근, 4제곱근을 구할 수 없다.
import math # math 모듈을 사용하려면 math 라이브러리 가져오기
#2의 2제곱근 구하기
print('2의 제곱근 %f' % math.sqrt(2))
print('2의 제곱근 %.2f' % math.sqrt(2))
import math
#3의 2제곱근 구하기
print('3의 제곱근 %f' % math.sqrt(3))
print('3의 제곱근 %.2f' % math.sqrt(3))
import math
#4의 2제곱근 구하기
print('4의 제곱근 %f' % math.sqrt(4))
print('4의 제곱근 %.2f' % math.sqrt(4))
pow()
함수를 이용한 거듭제곱 구하기import math
print('2의 3제곱근 %f' % math.pow(2, 3))
print('3의 4제곱근 %f' % math.pow(3, 4))
Q1. 아들이 엄마한테 용돈을 받는데, 첫 달에는 200원을 받고 매월 이전 달의 2배씩 인상하기로 했다. 12개월째 되는 달에는 얼마를 받을 수 있는지 계산하기.
firstMonth = 200
# 매월 이전 달의 2배씩 인상: firstMonth * 0.01 = 2
after12Month = ((firstMonth * 0.01) ** 12) * 100
print('12개월 후 용돈: {}원'.format(after12Month))
after12Month = int(after12Month)
result = format(after12Month, ',') #after12Month의 3자리 수에 콤마(,) 삽입
print('12개월 후 용돈: {}원'.format(result))
위에서 result = format(after12Month, ',') 이렇게 쓰는 경우 result는 string으로 변경되기 때문에 산수 연산을 못한다.