이번 포스팅에서는 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 의 기본 연산자의 종류와 개념에 대해서 알아 보았습니다.