Filed under개발정보on6 분 분량

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

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

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

Python에서의 연산자 유형

산술 연산자 (Arithmetic Operators)

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

a = 5
b = 3

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

관계 연산자 (Relational Operators)

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

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

논리 연산자 (Logical Operators)

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

x = True
y = False

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

비트 연산자 (Bitwise Operators)

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

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

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

할당 연산자 (Assignment Operators)

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

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

멤버십 연산자 (Membership Operators)

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

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)

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

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

print(y is x)       # y와 x가 동일한 객체를 참조하기 때문에 참
print(y is not x)   # 같은 이유로 거짓
참
거짓
연산자 연산 예시 결과 설명
is 연산자 양쪽의 변수가 동일한 객체를 가리키면 참을 반환하고 그렇지 않으면 거짓을 반환 x is y x와 y의 값에 따라 달라짐 두 변수가 동일한 객체인 경우 참
is not 연산자 양쪽의 변수가 동일한 객체를 가리키지 않으면 참을 반환하고 그렇지 않으면 거짓을 반환 x is not y x와 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]이다.
모든 아티클로 돌아가기