• 회원가입
  • 로그인
  • 구글아이디로 로그인

[basic] Python - Operator (연산자)

3991  

목차

  1. 산술연산자 (= 산수연산자 Arithmetic Operator)
  2. 할당연산자 (= 배정연산자 Assignment Operator)
  3. 비교연산자 (= 관계연산자 Comparison Operator)
  4. 논리연산자 (Logical Operator)
  5. 일치연산자 (= 식별연산자 Identity Operator)
  6. 멤버연산자 (= 포함연산자  Membership Operators)
  7. 비트연산자 (Bitwise Operator)
  8. 연산자 우선순위
  9. 증감연산자 - 존재 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의 이진수 : 00000101

※ 3의 이진수 : 00000011 

※ |= 연산 시 : 00000111  (※ 이걸 10진수로 변환 시 7)

 

x = 5

x |= 3 # x = x | 3

print(x) # 7

 


^=  : XOR 비트 연산 후 할당.

※ 두 비트 중 하나만 1이면 각 비트를 1로 설정 후 할당.

※ 5의 이진수 :  00000101

※ 3의 이진수 :  0000001

※ ^= 연산 시 : 00000110  (※ 이걸 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 처럼 표현.

 

예제 보기



분류 제목
basic Python - Home (입문) - 이념 / 추천 링크
basic Python - Intro (소개) - 용도・특징
basic Python - Start (시작) - 파이썬 설치/실행/버전확인
basic Python - Syntax (구문) - 들여쓰기・변수・주석
basic Python - Comment (주석)
basic Python - Variable (변수)
basic Python - DataType (데이터타입) - 자료형
basic Python - Number (숫자)
basic Python - Casting (데이터 타입 변경) - 자료형 변환
basic Python - String (문자열) ★ ※ 색인번호 (= 인덱스) 개념.
basic Python - Boolean (참거짓)
basic Python - Operator (연산자)
basic Python - List (리스트) ★ - 변경 가능한 모음
basic Python - Tuple (투플/튜플) - 변경 불가 모음
basic Python - Set (셋/세트) - '순서(=색인)' 없고, 중복 허용 않는 데이터 모음.
basic Python - Dictionary (딕셔너리) - Key:value 쌍으로 구성된 모음
basic Python - if...elif...else - (이프조건문) ※ 3항연산자 = 삼항연산자
basic Python - While (와일반복문) - 와일문
basic Python - For (포반복문) ★★★★★
basic Python - Function (함수)
1/2
목록
찾아주셔서 감사합니다. Since 2012