산술 연산자

- 정수와 정수를
/
로 나누면 실수가 출력됨 - 정수로 출력하고 싶으면
//
연산자 사용


**
는 앞의 수를 뒤의 수 만큼 거듭 제곱
%
는 앞의 수를 뒤의 수로 나눈 나머지
비교 연산자
- 값을 비교해서 맞으면
True
, 아니면False


논리 연산자
and
: 모두 참이면 참
or
: 하나라도 참이면 참
not
: 값이 참이면 거짓, 거짓이면 참

- 연산자를 연달아 사용가능
a > b > c
→a > b and b > c

- 논리 연산자에서
and
와or
는 앞의 연산 결과에 따라 뒤이 연산이 수행되지 않을 수 있는데, 이를 단축평가라고 한다 - 앞의 연산 결과가
False
면 뒤의 연산 결과가 참이건 거짓이건 수행되지 않는다
연산자의 우선순위
- 우선 순위에 따라 연산 순서가 달라지므로 연산자의 우선 순위 확인 필요

주요 연산자 우선순위
우선순위 | 연산자 | 설명 |
높음 | [ ] , { } , ( ) | 리스트, 딕셔너리, 세트, 튜플 |
↓ | ** | 거듭제곱 |
↓ | * , / , // , % | 곱셈, 나눗셈, 정수 나눗셈, 나머지 |
↓ | + , - | 덧셈, 뺄셈 |
↓ | not , in , < , ≤ , > , ≥ , ≠ , == | 부정, 비교 연산자 |
↓ | and , or | 논리 연산자 |
낮음 | = | 대입 연산자 |
변수로 연산하기

복합 대입 연산자
+=
: 왼쪽 값에 오른쪽 값을 더한 후 왼쪽 값에 대입number = number + 2
→number += 2
-=
: 왼쪽 값에서 오른쪽 값을 뺀 후 왼쪽 값에 대입number = number - 2
→number -= 2
*=
: 왼쪽 값에 오른쪽 값을 곱한 후 왼쪽 값에 대입number = number * 2
→number *= 2
/=
: 왼쪽 값을 오른쪽 값으로 나눈 후 왼쪽 값에 대입number = number / 2
→number /= 2
**=
: 왼쪽 값을 오른쪽 값으로 거듭제곱한 후 왼쪽 값에 대입number = number ** 2
→number **= 2
//=
: 왼쪽 값을 오른쪽 값으로 나눈 후 몫을 왼쪽 값에 대입number = number // 2
→number //= 2
%=
: 왼쪽 값을 오른쪽 값으로 나눈 후 나머지를 왼쪽 값에 대입number = number % 2
→number %= 2

- 정수로 나누기 연산하면 실수 형태가 나오므로
number / 2
이후 부터 실수 형태로 출력됨
함수로 연산하기
숫자 처리 함수
주요 숫자 처리 함수
함수 | 의미 |
abs(x) | x의 절대값 |
pow(x, y) | x를 y만큼 거듭제곱한 값 |
max( ) | 가장 큰 값 |
min( ) | 가장 작은 값 |
round(x, d) | x를 반올림한 값, d는 표시할 소수점 이하 자릿수. d가 없으면 소수점 이하 첫째 자리에서 반올림한 정수 |

math 모듈
math 모듈의 숫자 처리 함수
함수 | 의미 |
floor( ) | 내림 |
ceil( ) | 올림 |
sqrt( ) | 제곱근 |
- 모듈: 어떤 기능을 하는 코드를 모아 놓은 Python 파일
- 직접 만들 수도 있고, 이미 만들어져있는 모듈을 가져와서 사용할 수도 있음
- 이미 만들어져 있는 모듈을 가져와서 사용할려면
from 모듈명 import 기능
구문 추가 필요 - 기능 부분에
*
를 넣으면 모듈 안 모든 기능을 가져다 쓰겠다는 의미 *
는 와일드카드 문자로 모든 것을 지칭할때 사용import 모듈명
으로 작성하면 기능 앞에 기능이 속한 모듈명을 점(.
)으로 연결해서 적어야함


random 모듈
- 숫자를 무작위로 뽑는 함수
- 0 이상 1 미만 사이에서 난수를 뽑는 기능을 함


⬇ 1부터 45 까지 정수 범위 안에서 로또 번호를 뽑으려면 
random( )
함수로 생성한 난수에 45를 곱해 0.0 이상 45.0 미만인 난수를 생성한 후 int( )
로 감싸서 정수로 변환한 뒤 1을 더함 → 1 이상 46 미만인 정수에서 난수 생성됨
random 모듈의 함수
함수 | 의미 |
randrange(시작 숫자, 끝 숫자) | 주어진 범위 안에서 정수인 난수 생성 (끝 숫자 미포함) |
randint(시작 숫자, 끝 숫자) | 주어진 범위 안에서 정수인 난수 생성 (끝 숫자 포함) |


- 로또 번호 6개를 추첨하기 위해 6번 반복하면 중복된 번호가 발생할 수 있다
- random 모듈의
sample( )
함수를 사용하면 중복된 번호 제거하고 출력 가능
실습 문제: 스터디 날짜 정하기
문제
코딩 스터디 모임을 만들었다. 월 4번 모이는데 3번은 온라인으로, 1번은 오프라인으로 모이기로 했다. 조건에 맞는 오프라인 모임 날짜를 정하는 프로그램을 작성하라.
조건
- 날짜를 무작위로 뽑는다
- 월별 일수가 다르므로 최소 일수인 28일 이내로 정한다 (28일 까지만 날짜 선정)
- 매월 1~3일은 스터디를 준비해야하므로 제외
- 실행결과는 다음과 같은 형태 (날짜는 무작위 이므로 결과가 다를 수 있다)
오프라인 스터디 모임 날짜는 매월 18일로 선정됐습니다.
문제 풀기

실습 문제: 연산자를 이용해 온도 단위를 변환하는 프로그램 만들기
조건
- 섭씨 온도를 저장하기 위한 변수를 만든다
- 다음 공식을 이용해 섭씨 온도를 화씨 온도로 변환하고 새로운 변수에 저장한다.
- 화씨 온도 = (섭씨 온도 * 9 / 5) + 32
- 섭씨 온도와 화씨 온도를 다음과 같이 출력
# 섭씨 온도가 30도일 때
섭씨 온도 : 30
화씨 온도 : 86.0
# 섭씨 온도가 10도일 때
섭씨 온도 : 10
화씨 온도 : 50.0
문제 풀기

Share article