도찐개찐

[python] 연산자(operator) 본문

PYTHON

[python] 연산자(operator)

도개진 2022. 7. 11. 12:55

연산자 우선순위

하나 이상의 연산자가 등장할 때 연산자는 순서 규칙을 따른다.

  1. 괄호
  2. 제목
  3. 곱셈과 나눗셈
  4. 덧셈과 뺄셈
  5. 같은 실행 순위는 왼쪽 -> 오른쪽

가장 높은 것부터 가장 낮은 것까지의 연산자의 우선순위이름

+var, -var, ~var 단항 연산자
** 제곱 연산자
*, /, //, % 곱셈, 나눗셈, 몫, 나머지
+, - 덧셈, 뺄셈
<<, >> 왼쪽 및 오른쪽 이동
& 논리곱
^ 배타적 논리합
\ \   논리합
<, >, <=. >= , <> 비교 연산자
==, != , is, is not, in, not in 동등 및 포함
and, or, not 여부 판단 조건

수학 연산자

연산자설명

+ 덧셈
- 뺄셈
* 곱셈
/ 나눗셈
// 나눗셈의 몫
% 모듈로 (나눗셈의 나머지)
** 지수 연산자
+var 단항 덧셈
-var 단항 뺄셈

수학연산자 예제코드

print("I will now count my chickens:")

print("Hens", 25 + 30 / 6)
print("Roosters", 100 - 25 * 3 % 4)

print("Now I will count the eggs:")
print(3 + 2 + 1 - 5 + 4 % 2 - 1 / 4 + 6)

print("Is it true that 3 + 2 < 5 - 7?")

print(3 + 2 < 5 - 7)

print("What is 3 + 2?", 3 + 2)
print("What is 5 - 7?", 5 - 7)

print("Oh, that's why it's False.")

print("How about some more.")

print("Is it greater?", 5 > -2)
print("Is it greater or equal?", 5 >= -2)
print("Is it less or equal?", 5 <= -2)

수학 내장 함수

기능설명

abs(var) 절대값
pow(x, y) ** 연산자 대신에 사용 가능
pow(x,y,modulo) 삼항 지수-나머지 (x ** y) % modulo
round(var[, n]) 10-n 또는 (10**-n)의 반올림한 근사치를 반환. n의 기본값은 0
divmod(x, y) 나눗셈의 몫과 나머지로 이루어진 튜플을 반환

예제코드

>>> abs(10)
10
>>> abs(-10)
10

>>> pow(2, 3)
8
>>> pow(2, 3, 3)
2

>>> round(2.57, 1)
2.6

>>> round(2.57)
3.0

>>> round(3.123456, 4)
3.1235

>>> divmod(10, 2)
(5, 0)

>>> divmod(11, 2)
(5, 1)

나머지 연산자

나눗셈을 할 때 나머지 값을 만들어낸다.

나머지 연산자의 기호는 %이다.

>>> apple = 7 / 3
>>> print apple
2
>>> samsung = 7 % 3
>>> print(samsung)
1

나머지 연산자를 활용하여 어떤 숫자를 나눌 수 있는지 없는지 확인할 수 있다.

 숫자의 가장 오른쪽 숫자를 분리할 때도 유용하다

>>> x = 12345
>>> x % 10
5
>>> x % 100
45

문자열 연산자

기호는 문자열에도 사용할 수 있지만 덧셈은 아니다. 대신 문자와 문자를 결합하는데 사용한다.

>>> apple = "abcd"
>>> samsung = "efg"
>>> print apple + samsung
abcdefg

논리연산자

파이썬에서는 논리 연산자가 3개 있다.

AND, OR, NOT

비교연산자

연산자설명

>
< 작음
>= 크거나 같음
<= 작거나 같음
!= 같지 않음
== 같음

> 예제코드

a > 100 and a < 200

not (x > y)

a % 2 == 0 or a % 3 == 0

비트연산자

연산자설명

& 논리곱 연산자로서 비트가 두 항에 모두 나타나는 경우 비트를 결과에 복사함
\ \   논리합 연산자로서 비트가 두 항 중 어느 곳에 나타나는 경우 비트를 결과에 복사함
^ 배타적 논리합 연산자로서 어느 한 쪽의 항에만 비트가 존재할 경우 비트를 결과에 복사함
~ 부정 연산자로서 비트를 뒤집어서 각 비트에 대하여 정확히 반대를 반환함

> 예제코드

>>> 14 & 27
10
>>> 14 | 27
31
>>> 14 ^ 27
21
>>> ~14
-15
>>> ~27
-28

쉬프트 연산자

연산자설명

x << n 왼쪽으로 이동 (숫자 x에 2를 n번 곱한 것과 동등함)
x >> n 오른쪽으로 이동 (숫자 x를 2로 n번 나눈 것과 동등함)

>예제코드

# 왼쪽으로 이동, 여기서는 3*2
>>> 3<<1
6

# 3*2*2와 동등함
>>> 3<<2
12

# 3*2*2*2*2*2와 동등함
>>> 3<<5
96

# 오른쪽으로 이동

# 3/2와 동등함
>>> 3>>1
1

# 9/2와 동등함
>>> 9>>1
4

# 10/2와 동등함
>>> 10>>1
5

# 10/2/2와 동등함
>>> 10>>2
2

부울 식

0이 아닌 숫자 모드는 True로 해석한다.

>>> 100 and True
True

>>> -20 and True
True

>>> 0 and True
0

>>> bool(0)
False

>>> bool(-20)
True

>>> bool(100)
True

>>> int(True)
1

>>> int(False)
0

우리가 생각하는 나눗셈하기

# 우선 __future__로부터 division을 가져온다
from __future__ import division

# 우리가 예상한 대로 나눗셈하기
>>> 14/2
7.0

>>> 10/5
2.0

>>> 27/3
9.0

>>> 3/2
1.5

>>> 7/5
1.4

>>> 14/6
2.3333333333333335

일반적인 나눗셈

>>> 14/2
7

>>> 10/5
2

>>> 27/3
9

>>> 3/2
1

>>> 7/5
1

>>> 14/6
2

>>>

 

출처 : https://ultrakain.gitbooks.io/python/content/chapter1/operator.html

728x90

'PYTHON' 카테고리의 다른 글

[python] 수치 연산 함수  (0) 2022.07.12
[python] 형변환(casting)  (0) 2022.07.12
[python] 사칙 연산자  (0) 2022.07.11
[python] 삼항 연산자(Ternary operator)  (0) 2022.07.11
[python] 자료형(data type)  (0) 2022.07.11
Comments