Python 연산자 이해하기

이번 포스팅에서는 Python 연산자 에 대해서 알아 보겠습니다. Python의 연산자는 하나 이상의 피연산자에 대해 특정 연산을 수행하는 데 사용되는 특수 기호입니다. 피연산자는 변수, 값 또는 표현식일 수 있습니다. Python의 여러 유형의 연산자에 대해서 자세히 알아 보겠습니다.

Python 산술 연산자

산술 연산자는 변수, 값 또는 표현식일 수 있는 하나 이상의 피연산자에 대해 수학 연산을 수행하는 데 사용됩니다.


더하기(+)

더하기 연산자는 두 개 이상의 숫자를 더하는 데 사용됩니다. 변수 및 표현식에 더하기 연산자를 사용할 수도 있습니다.

x = 10
y = 20
z = x + y
print(z)
-----------------
30


빼기(-)

빼기 연산자는 한 숫자에서 다른 숫자를 빼는 데 사용됩니다.

x = 10
y = 20
z = x - y
print(z)
---------------------
-10


곱하기(*)

곱셈 연산자는 두 개 이상의 숫자를 곱하는 데 사용됩니다.

x = 10
y = 20
z = x * y
print(z)
-------------------
200


나누기(/)

나누기 연산자는 한 숫자를 다른 숫자로 나누는 데 사용됩니다.

x = 10
y = 20
z = x / y
print(z)
----------------------
0.5


나눗셈의 몫 구하기(//)

// 연산자는 한 숫자를 다른 숫자로 나눈 몫을 구하는데 사용됩니다.

x = 25
y = 20
z = x // y
print(z)
-----------------
1

Modulus (%)

(%)는 한 숫자를 다른 숫자로 나눈 후 나머지를 구하는 데 사용됩니다.

x = 25
y = 20
z = x % y
print(z)
--------------
5


지수 연산자(**)

지수 연산자는 숫자를 거듭제곱하는 데 사용됩니다.

x = 3
y = 4
z = x ** y
print(z)
----------------
81



비교 연산자

이러한 연산자는 값을 비교하고 값이 같은지, 같지 않은지, 초과 하는지, 미만인지, 초과하거나 같은지, 미만이거나 같은지를 결정하는 데 사용됩니다.

(=) 연산자

(=) 연산자는 두 값이 같은지 확인하는 데 사용됩니다.

x = 3
y = 4
z = x == y
print(z)
-----------------
False


(!=) 연산자

(=) 연산자는 두 값이 같지 않은지 확인하는 데 사용됩니다.

x = 3
y = 4
z = x != y
print(z)
---------------
True


(>) 연산자

(>) 연산자는 한 값이 다른 값보다 큰지 확인하는 데 사용됩니다.

x = 3
y = 4
z = x > y
print(z)
---------------
False


(<) 연산자

(<) 연산자는 한 값이 다른 값보다 작은 지 확인하는 데 사용됩니다.

x = 3
y = 4
z = x < y
print(z)
------------
True


(>=) 연산자

(>=) 연산자는 한 값이 다른 값보다 크거나 같은지 확인하는 데 사용됩니다.

x = 3
y = 4
z = x >= y
print(z)
-----------------
False


(<=) 연산자'

연산자는 한 값이 다른 값보다 작거나 같은지 확인하는 데 사용됩니다.

x = 3
y = 4
z = x <= y
print(z)
-----------------
True



논리 연산자

논리 연산자는 and, or, not 등의 논리 연산을 수행하는 데 사용됩니다.


(and) 연산자

and 연산자는 두 피연산자가 모두 true이면 True를 반환하고, 피연산자 중 하나라도 false이면 False를 반환합니다.

x = 5
y = 3
z = x > 1 and y < 3
print(z) 
------------------------
Fale


(or) 연산자

or 연산자는 피연산자 중 하나라도 true이면 True를 반환하고, 두 피연산자 모두 false이면 False를 반환합니다.

x = 5
y = 3
z = x > 1 or y < 3
print(z) 
--------------------------
True


(not) 연산자

not 연산자는 피연산자의 논리적 상태를 반전하는 데 사용됩니다. 조건이 true이면 not 연산자는 false를 만듭니다.

x = 5
y = 3
z = not x > 1
print(z) 
----------------
False



할당 연산자

이러한 연산자는 변수에 값을 할당하는 데 사용됩니다.


기본 할당(=)

기본 할당 연산자는 변수에 값을 할당하는 데 사용됩니다.

x = 3
print(x)
------------------
3


덧셈 할당(+=)

(+=) 연산자는 변수에 값을 추가하고 결과를 동일 변수에 할당하는 데 사용됩니다.

x = 3
x += 5
print(x)
-----------------
8


빼기 할당(-=)

(-=) 연산자는 변수에서 값을 빼고 그 결과를 동일 변수에 할당하는 데 사용됩니다.

x = 3
x -= 5
print(x)
-------------------
-2


곱셈 할당(*=)

곱셈 할당 연산자는 변수에 값을 곱하고 그 결과를 동일 변수에 할당하는 데 사용됩니다.

x = 3
x *= 5
print(x)
----------------
15


나누기 할당(/=)

(/=) 연산자는 변수를 값으로 나누고 결과를 동일 변수에 할당하는 데 사용됩니다.

x = 3
x /= 5
print(x)
-----------------
0.6


나누기 몫 할당(//=)

(//=) 연산자는 변수를 값으로 나눈 결과를 변수에 할당하는 데 사용됩니다.

x = 3
x //= 5
print(x)
---------------
0


모듈러스 할당(%=)

(%=) 연산자는 변수를 값으로 나누고 나머지를 변수에 할당하는 데 사용됩니다.

x = 3
x %= 5
print(x)
-------------
3


지수 할당(**=)

(**=) 연산자는 변수를 거듭제곱하고 결과를 변수에 할당하는 데 사용됩니다.

x = 3
x **= 5
print(x)
-----------
243



비트 연산자

비트 연산자는 정수에 대한 비트 수준 연산을 수행하는 데 사용됩니다.


비트 AND(&)

비트 AND 연산자는 첫 번째 피연산자의 각 비트를 두 번째 피연산자의 해당 비트와 비교합니다. 두 비트가 모두 1이면 해당 결과 비트가 1로 설정됩니다. 그렇지 않으면 해당 결과 비트가 0으로 설정됩니다.

x = 5 # 이진수: 0101
y = 3 # 이진수: 0011
z = x & y # 연산 결과에 의한 이진수: 0001
print(z) 
--------------------------------------------
1


비트별 OR(|)

비트 OR 연산자는 첫 번째 피연산자의 각 비트를 두 번째 피연산자의 해당 비트와 비교합니다. 두 비트 중 하나라도 1이면 해당 결과 비트가 1로 설정됩니다. 그렇지 않으면 해당 결과 비트가 0으로 설정됩니다.

x = 5 # 이진수: 0101
y = 3 # 이진수: 0011
z = x | y # 연산 결과에 의한 이진수: 0111
print(z) 
----------------------------------------------
7


비트별 XOR(^)

비트 XOR 연산자는 첫 번째 피연산자의 각 비트를 두 번째 피연산자의 해당 비트와 비교합니다. 비트가 다르면 해당 결과 비트가 1로 설정됩니다. 그렇지 않으면 해당 결과 비트가 0으로 설정됩니다.

x = 5 # 이진수: 0101
y = 3 # 이진수: 0011
z = x ^ y # 연산 결과에 의한 이진수: 0110
print(z) 
------------------------------------------------
6


비트별 NOT(~)

비트 NOT 연산자는 피연산자의 모든 비트를 반전시킵니다.

x = 5  # 이진수: 0101
z = ~x # 이진수: 1110 , 제일 앞의 숫자는 (-) 부호를 의미함
print(z) 
----------------------------
-6


왼쪽 시프트

왼쪽 시프트 연산자(>>)는 피연산자의 비트를 두 번째 피연산자가 지정한 위치 수만큼 왼쪽으로 이동합니다.

x = 6 # 이진수: 0110
y = 1 
z = x << y # 연산결과 : 1100
print(z) 
-------------------------------------
12


오른쪽 시프트

오른쪽 시프트 연산자(<<)는 피연산자의 비트를 두 번째 피연산자가 지정한 위치 수만큼 오른쪽으로 이동합니다.

x = 6 # 이진수: 0110
y = 1 
z = x >> y # 연산결과 : 0011
print(z) 
---------------------------------------
3



포함 연산자

포함 연산자는 어떤 값이 시퀀스(예: 문자열, 리스트 또는 튜플) 또는 집합에 포함되어 있는지 테스트하는 데 사용됩니다.


in 연산자

in 연산자는 값이 시퀀스에 존재하는지 테스트하는 데 사용됩니다.

x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y = 5
z = y in x
print(z) 
-----------------------------------------
True


not in 연산자

not in 연산자는 값이 시퀀스에 없는지 테스트하는 데 사용됩니다.

x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y = 5
z = y not in x
print(z) 
--------------------------------------------
False

포함 연산자는 문자열과 함께 사용할 수도 있으며, 이 경우 주어진 하위 문자열이 문자열에 있는지 여부를 확인합니다.

x = "Welcome to Python World"
y = "to"
z = y in x
print(z) 
-------------------------------------
True

포함 연산자는 집합(set)에도 사용할 수 있습니다. 집합은 고유한 요소의 모음이므로 요소가 집합에 있는지 여부를 확인하는 데 사용할 수 있습니다.

x = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
y = 3
z = y in x
print(z) 
------------------------------------
True



항등 연산자

항등 연산자는 두 개체의 메모리 주소를 비교하는 데 사용됩니다.


is 연산자

is 연산자는 두 개체의 메모리 주소를 비교합니다. 두 객체가 모두 동일한 객체이면 True를 반환하고, 서로 다른 객체이면 False를 반환합니다.

x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y = x
z = (x is y)
print(z) 
-------------------------------------------
True


is not 연산자

is not 연산자는 두 개체의 메모리 주소를 비교합니다. 두 객체가 서로 다른 객체이면 True를 반환하고 동일한 객체이면 False를 반환합니다.

x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
z = (x is not y)
print(z) 
-------------------------------------------
True

is 연산자는 객체의 동일성을 확인하는 반면,
== 연산자는 객체 값의 동일성을 확인한다는 점에 유의하는 것이 중요합니다.

x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

print(x == y) # True
print(x is y) # False

항등 연산자는 두 변수가 메모리에서 동일한 객체를 참조하는지 확인하려는 경우 유용합니다. Python에서 새 변수를 생성하고 이를 기존 객체에 할당하면 객체의 새 복사본이 아닌 기존 객체에 대한 새 참조가 생성된다는 점에 유의하는 것도 중요합니다.

이번 포스팅 주제의 범위를 다소 벗어나지만,
위의 코드 중 x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 과 y = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 를 예로 설명하겠습니다. x 객체와 y 객체는 1부터 10까지 숫자가 포함된 동일한 리스트의 값을 가지지만, 서로 참조하는 메모리 주소가 다릅니다.

아래 코드에서 보시면, x 객체와 y 객체의 메모리 주소가 다르다는 것을 알 수 있습니다.

id(x) # x 객체의 메모리 주소 확인
------------------------------------
2878654745920
id(y) # y 객체의 메모리 주소 확인
------------------------------------
2878662570688

이상으로 Python 의 기본 연산자의 종류와 개념에 대해서 알아 보았습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다