1. 산술 연산자
1.1 덧셈 +
두 숫자를 더합니다.
print(3 + 5) # 결과: 8
1.2 뺄셈 -
두 숫자를 뺀다.
print(10 - 2) # 결과: 8
1.3 곱셈 *
두 숫자를 곱한다.
print(4 * 2) # 결과: 8
1.4 나눗셈 /
두 숫자를 나누고 결과는 항상 부동 소수점 형태이다.
print(16 / 2) # 결과: 8.0
1.5 몫 //
나눗셈 결과에서 소수점을 버리고 정수 부분만 취한다.
print(17 // 2) # 결과: 8
1.6 나머지 %
숫자를 나눈 나머지를 반환한다.
print(10 % 2) # 결과: 0
1.7 지수 **
첫 숫자를 밑으로 하고, 두 번째 숫자를 거듭제곱 값을 계산한다.
print(2 ** 3) # 결과: 8
2. 비교 연산자
비교 연산자는 두 값을 비교하고, 이러한 비교의 결과로 Boolean 값인 True 또는 False를 반환
조건문, 루프, 다른 로직 흐름 제어에 핵심적으로 사용된다.
2.1 동등 ==
두 값이 서로 같은지 비교한다.
print(5 == 5) # True
print(5 == 4) # False
2.2 부등 ≠
두 값이 서로 다른지 비교한다.
print(5 != 5) # False
print(5 != 4) # True
2.3 큼 > , ≥
왼쪽 값이 오른쪽 값보다 큰지 비교 , 크거나 같은지 비교
print(5 > 3) # True
print(5 > 5) # False
print(5 >= 5) # True
print(5 >= 4) # True
print(3 >= 5) # False
2.4 작음 < , ≤
왼쪽 값이 오른쪽 값보다 작은지 비교 , 작거나 같은지 비교
print(3 < 5) # True
print(5 < 5) # False
print(5 <= 5) # True
print(4 <= 5) # True
print(6 <= 5) # False
3. 논리 연산자
3.1 and 연산자
모든 조건이 참(True)일 때만 참을 반환합니다.
조건 중 하나라도 거짓(False)이면 거짓을 반환합니다.
print(True and True) # True
print(True and False) # False
print(False and True) # False
print(False and False) # False
3.2 or 연산자
조건 중 하나라도 참이면 참을 반환합니다.
모든 조건이 거짓일 때만 거짓을 반환합니다.
print(True or True) # True
print(True or False) # True
print(False or True) # True
print(False or False) # False
3.3 not 연산자
단일 조건의 논리값을 반전시킵니다.
참이면 거짓을, 거짓이면 참을 반환합니다.
print(not True) # False
print(not False) # True
4. 비트 연산자
이진수(비트) 단위로 연산을 수행하는 연산자다.
4.1 비트 AND ( & )
두 비트가 모두 1일 때 결과가 1이다.
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = a & b # 12 = 0000 1100
print(c)
4.2 비트 OR ( | )
두 비트 중 하나라도 1이면 결과가 1이다.
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = a | b # 61 = 0011 1101
print(c)
4.3 비트 XOR ( ^ )
두 비트가 서로 다를 때 결과가 1이 됩니다. (배타적 OR)
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = a ^ b # 49 = 0011 0001
print(c)
4.4 비트 NOT ( ~ )
모든 비트를 반전시킵니다. 0은 1로, 1은 0으로 바꾼다.
파이썬에서 ~ 연산자는 해당 값의 보수를 반환합니다. 즉, ~n은 -n-1과 같다.
a = 60 # 60 = 0011 1100
c = ~a # -61 = 1100 0011 (2의 보수 표현 방식)
print(c)
4.5 비트 왼쪽 시프트 ( << )
지정된 비트 수만큼 왼쪽으로 이동시키고, 오른쪽은 0으로 채운다.
a = 60 # 60 = 0011 1100
c = a << 2 # 240 = 1111 0000
print(c)
4.6 비트 오른쪽 시프트 ( >> )
지정된 비트 수만큼 오른쪽으로 이동시키고, 왼쪽은 최상위 비트(부호 비트)와 같은 값으로 채운다.
a = 60 # 60 = 0011 1100
c = a >> 2 # 15 = 0000 1111
print(c)
5. 할당 연산자
5.1 =
변수에 값을 할당한다.
x = 5
5.2 복합 대입 연산자
다양한 연산자와 대입 연산자를 혼합하여 사용한다.
사칙 연산, 비트 연산도 가능하다.
x += 3 # x = x + 3과 동일
x -= 2 # x = x - 2와 동일
x *= 4 # x = x * 4와 동일
x /= 5 # x = x / 5와 동일
x %= 6 # x = x % 6와 동일
x //= 7 # x = x // 7과 동일
x **= 2 # x = x ** 2와 동일
x &= 1 # x = x & 1과 동일
x |= 2 # x = x | 2와 동일
x ^= 3 # x = x ^ 3과 동일
x <<= 2 # x = x << 2와 동일
x >>= 2 # x = x >> 2와 동일
6. 멤버십 연산자
시퀀스나 컬렉션(리스트, 튜플, 문자열, 딕셔너리 등) 내에 특정 값이 존재하는지를 확인할 때 사용
6.1 in 연산자
왼쪽에 지정된 값이 오른쪽 컬렉션에 존재하면 True를, 그렇지 않으면 False를 반환합니다.
6.2 not in 연산자
왼쪽에 지정된 값이 오른쪽 컬렉션에 존재하지 않으면 True를, 존재하면 False를 반환합니다.
#리스트
my_list = [1, 2, 3, 4, 5]
print(3 in my_list) # 출력: True
print(6 in my_list) # 출력: False
#문자열
my_string = "Hello, world!"
print("world" in my_string) # 출력: True
print("Python" in my_string) # 출력: False
# 딕셔너리
# 딕셔너리의 경우 기본적으로 키(key)를 대상으로 멤버십 테스트를 수행
my_dict = {'name': 'John', 'age': 30}
print('name' in my_dict) # 출력: True
print('John' in my_dict) # 출력: False (값이 아닌 키를 대상으로 검사하기 때문)
print('age' not in my_dict) # 출력: False
7. 식별 연산자
두 객체가 동일한 객체인지(즉, 같은 메모리 위치를 참조하는지)를 확인하는 데 사용
7.1 is 연산자
두 객체가 동일한 객체를 가리키고 있을 경우 True를 반환합니다.
7.2 is not 연산자
두 객체가 동일한 객체를 가리키고 있지 않을 경우 True를 반환합니다.
a = [1, 2, 3]
b = a # b는 a와 같은 객체를 참조합니다.
c = [1, 2, 3] # c는 내용은 a와 같지만, 다른 객체입니다.
print(a is b) # Output: True, a와 b는 같은 객체를 참조합니다.
print(a is c) # Output: False, a와 c는 내용은 같지만 다른 객체입니다.
print(a is not c) # Output: True, a와 c는 다른 객체입니다.
8. 연산자 우선순위
연산자는 특정 규칙에 따라 우선순위를 가지며, 이 우선순위에 따라 표현식 내에서 어떤 연산이 먼저 수행될지 결정됩니다
1. 괄호 (): 괄호 안의 표현식이 가장 먼저 계산됩니다.
2. 지수 **: 오른쪽에서 왼쪽 순으로 계산됩니다.
3. 단항 연산자 +x, -x, ~x: 양수, 음수, 비트 NOT 변환.
4. 곱셈 *, 나눗셈 /, 나머지 %, 몫 //.
5. 덧셈과 뺄셈 +, -.
6. 비트 시프트 <<, >>.
7. 비트 AND &.
8. 비트 XOR ^.
9. 비트 OR |.
10. 비교 연산자 <, <=, >, >=, !=, ==.
11. 논리 NOT not: 다른 논리 연산자보다 먼저 계산됩니다.
12. 논리 AND and.
13. 논리 OR or.
14. 조건 표현식 A if 조건 else B.
15. 대입 연산자 =, +=, -=, *=, /=
참고 문헌
'Language > Python' 카테고리의 다른 글
[Python] 문자열 (2) | 2024.04.22 |
---|---|
[Python] 숫자형 (0) | 2024.04.22 |
[Python] 입력과 출력 (0) | 2024.04.22 |
[Python] 변수와 자료형이란? (0) | 2024.04.21 |
[python] 파이썬이란? (0) | 2024.04.20 |