[Python] 연산자의 종류와 의미

Python에서의 연산자는 의미 있는 프로그램 구성에 필수적이다. 수학 기호와 유사하게 Python 연산자는 특정 목적에 사용된다. 이 글에서는 Python의 다양한 연산자 종류를 살펴보며, 그 기능을 설명하고 샘플 코드로 더 명확하게 이해할 것이다.

Python에서의 연산자 유형

산술 연산자 (Arithmetic Operators)

산술 연산자는 기본 수학 연산에 사용된다. 이 연산자들은 두 피연산자 간의 덧셈, 뺄셈, 곱셈 및 나눗셈과 같은 기본 계산을 지원한다.

python
a = 5
b = 3

print(a + b)  # 덧셈
print(a - b)  # 뺄셈
print(a * b)  # 곱셈
print(a / b)  # 나눗셈
8
2
15
1.6666666666666667
연산자연산예시결과설명
+덧셈5 + 813연산자 양측의 값을 더함
-뺄셈8 - 53왼쪽 피연산자에서 오른쪽 피연산자를 뺌
*곱셈5 * 840연산자 양측의 값을 곱함
/나눗셈8 / 24왼쪽 피연산자를 오른쪽으로 나눔
%나머지8 % 53나눗셈의 나머지를 반환
//버림 나눗셈8 // 51숫자선에서 왼쪽으로 조정된 전체 숫자로 나눔
**거듭제곱2 ** 38연산자에 대해 거듭제곱(지수) 계산을 수행

관계 연산자 (Relational Operators)

관계 연산자는 두 피연산자의 값을 비교하는 데 사용된다. 이 연산자들을 통해 두 값이 같은지, 하나의 값이 다른 것보다 큰지 또는 작은지를 결정하기 위해 평가가 이루어집니다. 비교의 결과에 따라 Boolean 값이 반환된다.

python
print(a > b)  # 크다
print(a < b)  # 작다
print(a == b) # 같다
True
False
False
연산자연산예시결과설명
==같음5 == 8False두 피연산자의 값이 같으면 True
!=같지 않음5 != 8True두 피연산자의 값이 같지 않으면 True
>8 > 5True왼쪽 피연산자가 오른쪽보다 크면 True
<작음5 < 8True왼쪽 피연산자가 오른쪽보다 작으면 True
>=크거나 같음8 >= 5True왼쪽 피연산자가 오른쪽보다 크거나 같으면 True
<=작거나 같음5 <= 8True왼쪽 피연산자가 오른쪽보다 작거나 같으면 True

논리 연산자 (Logical Operators)

논리 연산자는 여러 조건의 참 또는 거짓을 평가한다. 이 연산자들은 and, ornot 연산자를 포함한다.

python
x = True
y = False

print(x and y)  # 그리고
print(x or y)   # 또는
print(not x)    # 아니다
False
True
False
연산자연산예시결과설명
and둘 다 참이면 참True and FalseFalse두 조건 모두 참이어야 True
or둘 중 하나라도 참이면 참True or FalseTrue두 조건 중 하나 이상이 참이어야 True
not반대not TrueFalse참의 반대는 거짓, 거짓의 반대는 참

비트 연산자 (Bitwise Operators)

비트 연산자는 비트 연산을 수행하기 위해 사용된다. 이 연산자들은 정수를 비트 수준에서 연산한다.

python
a = 5  # 101 in binary
b = 3  # 011 in binary

print(a & b)  # 비트 AND
print(a | b)  # 비트 OR
1
7
연산자연산예시결과설명
&비트 AND5 & 31둘 다 1인 비트만 1로 설정
``비트 OR`53`
^비트 XOR5 ^ 36비트가 다르면 1로 설정
~비트 NOT~5-6비트를 뒤집음
<<왼쪽 시프트5 << 110주어진 수의 비트를 왼쪽으로 이동
>>오른쪽 시프트5 >> 12주어진 수의 비트를 오른쪽으로 이동

할당 연산자 (Assignment Operators)

변수에 값을 할당하기 위해 할당 연산자가 사용된다. 기본 할당을 넘어, 이 연산자들은 연산과 할당을 결합하는 기능도 제공한다. 예를 들어, 특정 숫자를 값에 더한 다음 그 결과를 변수에 할당할 수 있다.

python
a += 2  # a의 값을 2만큼 증가
b -= 1  # b의 값을 1만큼 감소
a = 7
b = 2
연산자연산예시결과설명
=할당x = 77오른쪽 피연산자의 값을 왼쪽 피연산자에 할당
+=더하고 할당x += 3x + 3오른쪽 피연산자를 왼쪽 피연산자에 더하고 그 결과를 왼쪽 피연산자에 할당
-=빼고 할당x -= 3x - 3왼쪽 피연산자에서 오른쪽 피연산자를 빼고 그 결과를 왼쪽 피연산자에 할당
*=곱하고 할당x *= 3x * 3왼쪽 피연산자를 오른쪽 피연산자로 곱하고 그 결과를 왼쪽 피연산자에 할당
/=나누고 할당x /= 3x / 3왼쪽 피연산자를 오른쪽 피연산자로 나누고 그 결과를 왼쪽 피연산자에 할당
%=나머지 연산 후 할당x %= 3x % 3왼쪽 피연산자를 오른쪽 피연산자로 나눈 나머지를 왼쪽 피연산자에 할당
//=정수 나누기 후 할당x //= 3x // 3왼쪽 피연산자를 오른쪽 피연산자로 나누고 그 정수 결과를 왼쪽 피연산자에 할당
**=지수 연산 후 할당x **= 3x ** 3왼쪽 피연산자를 오른쪽 피연산자의 승수로 연산하고 그 결과를 왼쪽 피연산자에 할당

멤버십 연산자 (Membership Operators)

멤버십 연산자는 값의 존재를 시퀀스 내에서 테스트하기 위해 사용된다. 주로 주어진 시퀀스 내에 특정 요소가 존재하는지 확인하기 위해 사용된다.

python
list = [1, 2, 3, 4, 5]
print(3 in list)    # 리스트 내 3이 존재하는지 확인
print(6 not in list) # 리스트 내 6이 존재하지 않는지 확인
참
참
연산자연산예시결과설명
in지정된 시퀀스 내 변수를 찾으면 참을 반환하고 그렇지 않으면 거짓을 반환5 in [1, 2, 3, 4, 5]값/변수가 시퀀스 내에 있으면 참
not in지정된 시퀀스 내 변수를 찾지 못하면 참을 반환하고 그렇지 않으면 거짓을 반환6 not in [1, 2, 3, 4, 5]값/변수가 시퀀스 내에 없으면 참

식별 연산자 (Identity Operators)

식별 연산자는 두 객체의 메모리 위치를 비교하기 위해 사용된다. 주된 용도는 두 변수가 메모리 내에서 동일한 객체를 참조하는지 여부를 결정하는 것이다.

python
x = [1, 2, 3]
y = x

print(y is x)       # y와 x가 동일한 객체를 참조하기 때문에 참
print(y is not x)   # 같은 이유로 거짓
참
거짓
연산자연산예시결과설명
is연산자 양쪽의 변수가 동일한 객체를 가리키면 참을 반환하고 그렇지 않으면 거짓을 반환x is yx와 y의 값에 따라 달라짐두 변수가 동일한 객체인 경우 참
is not연산자 양쪽의 변수가 동일한 객체를 가리키지 않으면 참을 반환하고 그렇지 않으면 거짓을 반환x is not yx와 y의 값에 따라 달라짐두 변수가 동일한 객체가 아닌 경우 참

파이썬 연산자를 이해하는 것은 효율적인 프로그래밍에 있어 중요하다. 변수를 비교하든, 값을 조정하든, 또는 계산을 수행하든, 파이썬의 다재다능한 연산자는 이러한 작업의 핵심이다.


자주 묻는 질문

  1. 파이썬에서 ===의 차이는 무엇인가요?
    • ==는 두 피연산자의 값을 비교하여 동일성을 판단하고 boolean( 또는 거짓)을 반환한다. 예를 들어, 7 == 7을 결과로 한다. 반면에, =는 오른쪽 피연산자의 값을 왼쪽 변수에 할당하는 데 사용된다.
  2. 보통의 연산 /와 연산 //의 차이는 무엇인가?
    • / 연산자는 나누고 부동 소수점 결과를 반환한다. 예를 들면, 5 / 22.5를 반환한다. 반면에, //는 나누고 가장 가까운 정수로 내림하여 반환하므로, 5 // 22를 반환한다.
  3. &|와 같은 비트 연산자를 언제 사용해야 하나요?
    • 비트 연산자는 숫자의 이진 표현에 직접 작업을 수행한다. 데이터 처리나 저수준 프로그래밍에서 개별 비트를 조작하는 특정 시나리오에서 유용한다.
  4. == 대신 is 연산자를 사용하는 이유는 무엇인가?
    • is 연산자는 두 변수가 메모리 내에서 정확히 같은 객체를 참조하는지 확인한다, 단순히 그들의 값이 동일한지 여부가 아니다. 예를 들어, 동일한 값을 가진 두 개의 목록은 ==에 대해서는 일 수 있지만, 메모리 내의 다른 객체인 경우 is에 대해서는 거짓일 수 있다.
  5. 다양한 파이썬 데이터 타입과 함께 innot in은 어떻게 작동합니까?
    • 멤버십 연산자는 존재를 테스트한다. 문자열에서 in은 부분 문자열이 있는지 확인한다. 리스트나 튜플에서는 항목이 존재하는지 확인한다. 예를 들면, 'apple' in 'pineapple'이고, 3 in [1, 2, 3]이다.
© Copyright 2023 CLONE CODING