본문 바로가기
Python

연산자

by Salgoo26 2021. 7. 24.

연산자

- 산술 연산자

- 비교 연산자

- 논리 연산자

- 복합 연산자

- 기타 연산자

    - concatenation, containment test, identity, indexing/slicing


산술 연산자

- 기본적인 사칙연산 및 수식 계산

- 일반적으로 사용되는 연산자를 생각하면 됨

/ : 나눗셈
// : 몫
% : 나머지
** : 거듭제곱

비교 연산자

- 값을 비교하며, True / False 값을 리턴함

>, <, >=, <=, == 등
!= : 같지 않음
is : 동일한 객체인지
is not : 다른 객체인지

논리 연산자

- 일반적으로 비교연산자와 함께 사용된다. 

연산자 내용
A and B A와 B 모두 True시, True 반환
A or B A와 B 모두 False시, False 반환
Not True를 False로, False를 True로

- 단축평가

    - 결과가 확실한 경우, 두 번째 값은 확인하지 않고 첫 번째 값 반환

        - and 연산에서 첫 번째 값이 False인 경우 무조건 False => 첫 번째 값 반환

        - or 연산에서 첫 번째 값이 True인 경우 무조건 True => 첫 번째 값 반환

 

print(5 and 4) # and 연산자이므로, 첫 번째 값이 True 라면 두 번째 값도 확인한 후 반환
=> 4 

print(0 and 4) # and 연산자이므로, 첫 번째 값이 False 라면 두 번째 값은 확인하지 않고 바로 첫 번째 값 반환
=> 0

print(5 or 3) # or 연산자이므로, 첫 번째 값이 True 라면 두 번째 값 확인하지 않고 바로 첫 번째 값 반환
=> 5

print(0 or 3) # or 연산자이므로, 첫 번째 값이 False 라면 두 번째 값도 확인한 후 두 번째 값 반환
=> 3

복합 연산자

- 복합 연산자는 연산과 대입이 함께 이뤄짐

    - 예시: 반복문을 통해서 개수를 카운트 하는 경우

 

count = 0
while count < 3:
	print(count)
    count += 1

기타 연산자

1. Concatenation

- '+' 연산자는 숫자가 아닌 자료형에서도 사용 가능함

    - 컨테이터, OOP에서 연산자의 다양한 활용을 확인

 

'hello, ' + 'ssafy!'
=> 'hello, ssafy!'

 

2. Containment Test

- 특정 요소가 속해 있는지 여부를 확인

 

'a' in 'apple'
=> True

 

3. Identity

- is 연산자를 통해 동일한 객체(object) 인지 확인 가능함

# 파이썬에서는 -5부터 256까지의 숫자의 id는 동일
a = 3
b = 3
print(a is b)
print(id(a), id(b))

=> True
=> 4526160464 4526160464

-------------------------
c = 257
d = 257
print(c is d)

=> False

----------------------------------------------
# 특정 변수가 비어있는지 확인하기 위해선 
# x == None 이 아닌 x is None을 쓰는 것을 권장

 

4. Indexing / Slicing

- [] 을 통해 값에 접근하고, [:] 을 통해 슬라이싱 가능함


연산자 우선 순위

- 다음은 주요 연산자의 우선 순위임

- 코드 작성시 우선순위에 유의해야 함

- 정 헷갈리면, 최 우선 연산자인 () 를 활용!!

 

1. ()
2. Slicing
3. Indexing
4. **
5. 단항 연산자(+, -) : 부호 (ex: -1, +1)
6. 산술 연산자(*, /, %)
7. 산술 연산자(+, -)
8. 비교 연산자(in, is)
9. not
10. and
11. or

'Python' 카테고리의 다른 글

딕셔너리 구축 & comprehension  (0) 2021.08.01
표현식과 문장  (0) 2021.07.24
데이터 타입  (0) 2021.07.24
변수와 식별자  (0) 2021.07.24
에러와 예외처리  (0) 2021.07.21

댓글