목차
산술연산자 (= 산수연산자 Arithmetic Operator)
할당연산자 (= 배정연산자 Assignment Operator)
비교연산자 (= 관계연산자 Comparison Operator)
논리연산자 (Logical Operator)
일치연산자 (= 식별연산자 Identity Operator)
멤버연산자 (= 포함연산자 Membership Operators)
비트연산자 (Bitwise Operator)
연산자 우선순위
증감연산자 - 존재 X
산술연산자 (= 산수연산자 Arithmetic Operator)
숫자 연산. (= 산수 계산).
+ : 덧셈
x = 5
y = 3
print(x + y) # 8
- : 뺄셈
x = 5
y = 3
print(x - y) # 2
* : 곱셈
x = 5
y = 3
print(x * y) # 15
/ : 나눗셈
x = 12
y = 3
print(x / y) # 4.0
※ 정수끼리 나눗셈 해도 결과값이 실수형 나옴.
cf.
// 연산자 : 정수끼리 나눗셈 시, 정수형 나옴.
(예)
print(12//3) # 4
print(int(12/3)) # 4
% : 나머지. ★
※ 나눈 후, 나머지를 반환.
※ 배수 (최소공배수, 최대공약수) 구할 때 사용.
※ x%y == 0 : x는 y의 배수 (예) 18%3 == 0
※ 홀수/짝수 여부 체크 시 사용. (즉, 2로 나눠서 나머지 0이면 짝수)
x = 5
y = 2
print(x % y) # 1
** : 누승
x = 2
y = 5
print(x ** y) # 32 (= 2*2*2*2*2 = 2의 5승)
PS. print(pow(x, y)) 결과와 동일.
// : 몫
※ 나눈 후, 해당 실수보다 낮은 최대 정수 (= 몫) 반환.
※ 이와 같은 나눗셈을 '바닥 나눗셈'이라 함.
※ / 연산자로 나눈 후, int() 함수로 정수형 변환 결과와 동일.
x = 15
y = 2
print(x // y) # 7
print(int(x/y)) # 7
PS. 정수형과 실수형 숫자를 섞어가며 결과값 타입이 어떤지 확인 바람.
할당연산자 (= 배정연산자 Assignment Operator)
값을 변수에 할당 (= 배정).
= : 할당
x = 5
print(x) # 5
+= : 덧셈 후 할당
x = 5
x += 3 # x = x + 3
print(x) # 8
-= : 뺄셈 후 할당.
x = 5
x -= 3 # x = x - 3
print(x) # 2
*= : 곱셈 후 할당.
x = 5
x *= 3 # x = x * 3
print(x) # 15
/= : 나눗셈 후 할당.
x = 5
x /= 3 # x = x / 3
print(x) # 1.6666666666666667
%= : 나눗셈 후, 나머지 할당.
x = 5
x %= 3 # x = x % 3
print(x) # 2
//= : 나눗셈 후, 몫 할당.
x = 5
x //= 3 # x = x // 3
print(x) # 1
**= : 누승 후 할당.
x = 5
x **= 3 # x = x ** 3
print(x) # 125 (= 5*5*5 후 할당)
&= : AND 비트 연산 후 할당.
※ 두 비트 비교해 모두 1이면 각 비트를 1로 설정 후 할당.
※ 5의 이진수 : 00000101
※ 3의 이진수 : 00000011
※ & 연산 시 : 00000001 (※ 이걸 10진수로 변환 시 1)
x = 5
x &= 3 # x = x & 3
print(x) # 1
|= : OR 비트 연산 후 할당.
※ 두 비트 중 하나가 1이면 각 비트를 1로 설정 후 할당.
※ 5의 이진수 : 000001 01
※ 3의 이진수 : 0000001 1
※ |= 연산 시 : 00000111 (※ 이걸 10진수로 변환 시 7)
x = 5
x |= 3 # x = x | 3
print(x) # 7
^= : XOR 비트 연산 후 할당.
※ 두 비트 중 하나만 1이면 각 비트를 1로 설정 후 할당.
※ 5의 이진수 : 000001 01
※ 3의 이진수 : 0000001 1
※ ^= 연산 시 : 0000011 0 (※ 이걸 10진수로 변환 시 6)
x = 5
x ^= 3 # x = x ^ 3
print(x) # 6
>>= : Signed right shift 비트 연산 후 할당.
※ 왼쪽 끝 비트 복사해 왼쪽에 밀어넣어 오른쪽으로 해당 숫자 만큼 이동 후, 오른쪽 끝 비트 제거.
※ 5의 이진수 00000101을 오른족으로 3칸 이동 시, 00000000 됨.
x = 5
x >>= 3 # x = x >> 3
print(x) # 0
<<= : Zero fill left shift 비트 연산 후 할당.
※ 오른쪽 끝에 0 밀어넣어 왼쪽으로 해당 숫자만큼 이동 후, 왼쪽 끝 비트 제거.
※ 5의 이진수 00000101을 왼쪽으로 3칸 이동 시, 00101000 됨.
※ 결국, 2의 5승 (= 32) + 2의 3승 (= 8) 더하면 40 됨.
x = 5
x <<= 3 # x = x << 3
print(x) # 40
※ (십진수 → 이진수)로 표현하는 법
※ 시프트 연산자 사용법
비교연산자 (= 관계연산자 Comparison Operator)
두 값을 비교. (= 두 값의 관계)
== : 같음.
x = 5
y = 3
print(x == y) # False
!= : 같지 않음.
x = 5
y = 3
print(x != y) # True
> : 더 큼.
x = 5
y = 3
print(x > y) # True
< : 더 작음.
x = 5
y = 3
print(x < y) # False
>= : 더 크거나 같음.
x = 5
y = 3
print(x >= y) # True
<= : 더 작거나 같음.
x = 5
y = 3
print(x <= y) # False
PS.
다른 언어와 달리,
Python은 수학과 동일한 범위 표현인 예제2도 가능.
(예제1) 2<=level and level<=10
(예제2) 2<=level<10
논리연산자 (Logical Operator)
조건 구문 결합.(※ 소문자 로 기재.)
and : 그리고
※ 모두 True여야 True 반환.
※ and 대신 && 사용 시, 에러 발생.
x = 5
print(x > 3 and x < 10) # True
or : 또는
※ 하나라도 True이면 True 반환.
※ or 대신 || 사용 시, 에러 발생.
x = 5
print(x > 3 or x < 4) # True
not : 결과의 역 반환.
※ True이면 False 반환.
※ False이면 True 반환.
※ not 대신 ! 사용 시, 에러 발생.
※ and/or 연산자보다 우선.
x = 5
print(not(x > 3 and x < 10)) # False
일치연산자 (= 식별연산자 Identity Operator)
※ 일치 조건. 즉, 아래 2조건 모두 충족해야 함.)
① 값.
② 메모리 위치.
cf. 주의: 관계연산자 (==, !=)는 오직 값만 비교.
is : 일치 O
x = ["HTML", "CSS"]
y = ["HTML", "CSS"]
z = x
print(x is z) # True (∵ 일치)
print(x is y) # False (∵ 메모리 위치 다름.)
print(x == y) # True (∵ 값 동일)
is not : 일치 X
x = ["HTML", "CSS"]
y = ["HTML", "CSS"]
z = x
print(x is not z) # False (∵ 일치)
print(x is not y) # True (∵ 메모리 위치 다름)
print(x != y) # False (∵ 값 동일)
멤버연산자 (= 포함연산자 Membership Operators)
지정 값이 객체의 멤버인지 (= 객체에 포함되는지) 체크.
in : 멤버 O (= 포함 O)
x = ["HTML", "CSS"]
print("CSS" in x) # True
not in : 멤버 X (= 포함 X)
x = ["HTML", "CSS"]
print("JS" not in x) # True
비트연산자 (Bitwise Operator)
2진수로 변환 후, 8자리 비트로 표현해 연산.
& : AND
두 비트가 모두 1이면 각 비트를 1로 설정.
| : OR
두 비트 중 하나가 1이면 각 비트를 1로 설정.
^ : XOR
두 비트 중 하나만 1이면 각 비트를 1로 설정.
~ : NOT
모든 비트 반전. (즉, 1 → 0, 0 → 1 변환)
>> : Signed right shift (※ 오른쪽 이동)
맨 왼쪽 비트의 복사본을 왼쪽에서 밀어 넣어 오른쪽으로 이동하고 맨 오른쪽 비트가 떨어지도록 함.
<< : Zero fill left shift (※ 왼쪽 이동)
오른쪽에 0을 넣어 왼쪽으로 이동하고 가장 왼쪽 비트가 떨어지도록 함.
※ 비트연산자 예제는 위 할당연산자 예제 참고.
※ 비트연산자는 어렵지만, 거의 쓸 일이 없음. ㅡㅡ;
※ 비트연산자 개념 강의.
https://youtu.be/yHBYeguDR0A (엔지니어대한민국 님)
연산자 우선순위
(산술 > 비교 > not 논리 > and/or 논리 )연산자 순.
(예)
print(3*4 > 3+4 and not 3*4 > 10 ) # False
PS. 산술연산자 경우
1순위 : ** (누승)
2순위 : * (곱셈) , / (나눗셈) , // (몫) , % (나머지)
3순위 : + (덧셈), - (뺄셈)
증감연산자 - 존재 X
Python엔 ++ , -- 증감연산자 존재 X.
그 결과, i++, i-- 로 표현 시 에러 남.
반드시,
증가는 i=i+1 또는 i+=1 처럼 표현.
감소는 i=i-1 또는 i-=1 처럼 표현.
예제 보기
주소 복사
랜덤 이동
최신댓글