글 개요
파이썬 문법을 복습하기 위한 내용을 정리하는 글입니다.
파이썬의 문법인 연산자 정리하기
글 본문
연산자
연산자란 우리가 잘 알고있는 사칙연산을 다루는 것이 연산자 이고, 연산의 대상을 피연산자라고합니다.
연산자의 종류는 산술 연산자, 할당 연산자, 비교 연산자, 논리 연산자가 있습니다.
산술 연산자: +, -, *, /, %, //, **
할당 연산자: = , +=, -=, *=, /=, %=, //=
비교 연산자: >,>=, <, <=, ==, !=
논리 연산자: and, or, not
정수를 이용한 덧셈
num1 = 3
num2 = 5
result = num1 + num2
print(f'result: {result}')
실수를 이용한 덧셈
fnum1 = 3.14
fnum2 = 0.12
result = fnum1 + fnum2
print(f'result: {result})
# 소수점 두 번째자리수 까지
print('result: %.2f' % result)
문자를 이용한 덧셈
str1 = 'Good'
str2 = 'morning'
result = str1 + str2
print(f'result: {result}')
문자를 이용한 덧셈은 문자를 옆으로 나열합니다. 하지만, 숫자와 문자를 덧셈을 하게된다면, 에러가 나타납니다.
실습
이번달 알바비와 카드값을 입력으로 받고, 남은 금액이 얼마인지 출력해보세요.
partTimeMoney = int(input('알바비: '))
cardMoney = int(input('카드값: '))
result = partTimeMoney - cardMoney
print('알바비: {}'.format(partTimeMoney))
print('카드값: {}'.format(cardMoney))
print('남는값: {}'.format(result))
곱셈 연산자
곱셈 연산은 정수와 실수 연산이랑 같습니다.또한 문자열도 곱셈이 가능합니다.
문자열 곱셈은 곱셈만큼 반복이 가능합니다.
str1 = 'Hi '
result = str1 * 5
print(result)
Hi Hi Hi Hi Hi
나눗셈 연산자
나눗셈 연사자는 /로 나눗셈을 합니다.
num1 = 10
num2 = 5
print(num1/num2)#2
0을 어떤 수로 나눗셈을 하는 경우는 항상 0이라는 결과값을 볼 수 있습니다. 하지만, 어떤 수를 0으로 나눌 수 없습니다.
나눗셈을 했을 때 결과값의 타입은 float 타입 입니다.
나머지와 몫을 한번에 구하는 방법
파이썬에는 divmod라는 함수가 존재합니다. 이 함수는 나머지와 몫을 한번에 구할 수 있습니다.
divmod(나눠지는 수, 나눌 수) 결과 값 (몫, 나머지) ---> 튜플 형태로 값이 나온다.
result = divmod(10, 2)
print('result: {}'.format(result))
print('몫:', result[0])
print('나머자:'result[1])
실습
국어, 영어, 수학 점수를 입력받고, 합계와 평균을 출력해 봅시다.
kor_score = int(input('국어점수: '))
eng_score = int(input('영어점수: '))
math_score = int(input('수학점수: '))
total = kor_score + eng_score + math_score
mean = total/3
print('국어점수: {}'.format(kor_score))
print('영어점수: {}'.format(eng_score))
print('수학점수: {}'.format(math_score))
print('합계: {}'.format(total))
print('총 평점: {}'.format(mean))
123개의 사과를 4개씩 직원들에게 나눠주려고 합니다. 최대로 나누어 줄 수 있는 직원수와 남는 사과 개수를 출력해 봅시다.
employee = 123
apple = 4
result = divmod(employee, apple)
print('사과를 나누어 줄 수 있는 최대 직원 수: {}명'.format(result[0]))#30명
print('남는 사과 개수: {}개'.format(result[1])# 3개
나머지를 구하는 연산자는 %, 몫을 구하는 연산자는 //
몫과 나머지를 한번에 구하는 방법 divmod(나눠지는 수, 나누는 수)
논리 연산자
논리 연산자 란, 피연산자의 논리(True, False)를 이용한 연산입니다.
논리 연산자의 종류는 and, or, not 존재합니다.
and 연산
A and B: A와 B 모두 True인 경우만 결과값으로 True로 받습니다.
쉽게 이해하자면, 모두다 만족을 해야 True 결과값을 받습니다.
or 연산
A or B: A와 B 둘중 하나만 True이면 결과값으로 True로 받습니다.
not 연산
not A: A의 상태를 부정하는 결과를 받습니다. 예를들어, not True---> False결과값 not False ---> True
실습
백신 접종 대상자는 20미만 또는 65세 이상자에 한합니다.를 논리 연산자를 이용해서 풀어보세요.
age = int(input('나이 입력: '))
vacine = ((age < 20) or (age >=65))
print('사용자 나이: {} 백신 가능 여부: {}'.format(age, vacine))
operator 모듈
모듈이란, 누군가가 이미 잘 만들어 놓은 휼륭한 기능을 말합니다.
operator 모듈의 산술 연산자 관련 함수
+: operator.add()
-: operator.sub()
*: operator.mul()
/: operator.truediv()
%: operator.mod()
//: operator.floordiv()
**: operator.pow()
import operator
num1 = 8
num2 = 3
print('{} + {} = {}'.format(num1, num2, operator.add(num1, num2))) # 덧셈
print('{} - {} = {}'.format(num1, num2, operator.sub(num1, num2))) # 뺄셈
print('{} * {} = {}'.format(num1, num2, operator.mul(num1, num2))) # 곱셈
print('{} / {} = {}'.format(num1, num2, operator.truediv(num1, num2))) # 나눗셈
print('{} % {} = {}'.format(num1, num2, operator.mod(num1, num2)))# 나머지
print('{} // {} = {}'.format(num1, num2, operator.floordiv(num1, num2))) # 몫
print('{} ** {} = {}'.format(num1, num2, operator.pow(num1, num2))) # 거듭제곱
operator 모듈은 산술 연산자 말고도 비교 연산자도 있고, 논리 연산자 관련 함수도 존재합니다.
==: operator.eq()
!=: operator.ne()
>: operator.gt()
>=: operator.ge()
<: operator.lt()
<=: operator.le()
num1 = 1
num2 = 2
print('{} == {} = {}'.format(num1, num2, operator.eq(num1, num2)))
print('{} != {} = {}'.format(num1, num2, operator.ne(num1, num2)))
print('{} > {} = {}'.format(num1, num2, operator.gt(num1, num2)))
print('{} >= {} = {}'.format(num1, num2, operator.ge(num1, num2)))
print('{} < {} = {}'.format(num1, num2, operator.lt(num1, num2)))
print('{} <= {} = {}'.format(num1, num2, operator.le(num1, num2)))
실습
random과 operator 모듈을 이용하여, 10부터 100사이의 난수 중 십의 자리와 일의 자리가 각각 3의 배수인지
판단하는 코드를 만들어 주세요.
import random
rInt = random.randint(10, 100)
tenInt = operator.floordiv(rInt, 10) # 몫 구하기
oneInt = operator.mod(rInt, 10)# 나머지 구하기
#한번에 구하기
# result = divmod(rInt, 10) result[0] --> 몫 result[1]---->나머지
print('십의자리수: {}'.format(tenInt))
print('일의자리수: {}'.format(oneInt))
print('십의 자리수는 {}의 배수이다: {}'.format(3, (operator.mod(tenInt, 3) == 0)))
print('일의 자리수는 {}의 배수이다: {}'.format(3, (operator.mod(oneInt, 3) == 0)))
'Python' 카테고리의 다른 글
Pandas - 기초 정리 (1) | 2021.09.16 |
---|---|
파이썬-조건식 (0) | 2021.09.15 |
정적타입언어 vs 동적타입언어 (0) | 2021.09.15 |
Python- matplotlib 한글설정하기 (0) | 2021.09.14 |
파이썬 - 입력 출력 다루기 (0) | 2021.09.13 |
댓글