Python 강좌Python Tutorial 5 : 연산자
페이지 정보
yundream 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일 21-07-07 23:55 3,513 0관련링크
본문
연재글
- 5. Python Tutorial 5 : 연산자
- 4. Python Tutorial 4 : 변수
- 3. Python Tutorial 3 : Python 기본 문법
- 2. Python tutorial 2 : Python 시작하기
- 1. Python Tutorial 1 : Python에 대해서
연산자란 무엇인가
파이쎤(을 포함한 프로그래밍 언어의) 가장 중요한 역할은 연산(계산)이다. 파이썬은 계산을 위한 특수한 기호를 제공하는데 이를 연산자라고 한다. 예를들어서 파이썬은 아래와 같이 덧셈연산을 하는 '+' 연산자를 제공한다.
[code
>>> 12+54
66
[/code]
연선자는 피연산자를 필요로 한다. 연산자에 따라서 하나 혹은 두 개의 피연산자를 필요로 한다. 덧셈 연산자를 비롯한 산술 연산자는 두 개의 피연산자가 필요하다.
산술연산자
일반적인 산술 연산을 위해서 사용하는 연산자로 두 개의 피연산자를 가진다.
연산 | 의미 | 예 |
+ | 두 개의 피연산자를 더한다. | x + 2 |
- | 왼쪽 값에서 오른쪽 값을 뺀다. | x - 2 |
* | 두 개의 피연산자를 곱한다 | x * y |
/ | 왼쪽 피연산자를 오른쪽 피연산자로 나눈다. 결과 값은 항상 float 다. | x / y |
% | 왼쪽 피연산자를 오른쪽 피연산자로 나눈 나머지다. | x % y |
// | '/' 연산자와 비슷 하지만 결과값이 정수다. | x // y |
** | 왼쪽 피연산자를 오른쪽 피연산자로 거듭 제곱한다. | x ** y |
예제 : 파이썬의 연산자
[code]
>>> x = 24
>>> y = 5
>>> x + y
29
>>> x - y
19
>>> x * y
120
>>> x / y
4.8
>>> x // y
4
>>> x ** y
7962624
[/code]
비교연산자
비교연산자는 두 개의 피연산자를 비교하는데 사용한다. 비교 결과 True 혹은 False 를 리턴한다.
연산자 | 의미 | 예 |
> | 왼쪽 피연산자가 오른쪽 피연산자보다 크다. | x > y |
< | 왼쪽 피연산자가 오른쪽 피연산보다 작다. | x < y |
== | 두 개의 피연산자가 동일한 값을 가지고 있다. | x == y |
>= | 왼쪽 피연산자가 오른쪽 피연산자보다 크거나 같다. | x >= y |
<= | 왼쪽 피연산자가 오른쪽 피연산자보다 작거나 같다. | x <= y |
비트연산자
비트 연산자는 비트단위로 연산하기 위해서 사용한다. 논리 연산을 하거나 비트를 오른쪽 혹은 외쪽으로 이동 할 수 있다. 논리 연산은 수학시간에 배웠던 그 논리연산(AND, OR 연산)이 맞다. 비트를 왼쪽 오른쪽으로 이동하는 연산을 쉬프트연산이라고 하는데, 예를 들어 이진수 1011(십진수로 10) 오른쪽으로 2만큼 이동하면 10(2)가 된다. 1011을 왼쪽으로 2만큼 이동하면 101100(44)가 된다.
비트 연산자는 C/C++ 같은 저수준 언어에서는 자주 사용하지만 파이썬, 루비 같은 고수준 언어에서는 비교적 잘 사용하지는 않는다. 하지만 파이썬으로 시스템 프로그램이나 네트워크 프로그램 혹은 알고리즘을 개발하려고 하면 필요하기 때문에 배워두면 쓸모가 있다.
연산자 | 의미 | 예 |
& | AND | 피연산자의 비트가 모두 1이면 참이다. |
| | OR | 둘 중 하나의 비트가 1이면 참이다. |
^ | XOR | 두 개의 비트 중 하나만 1이면 참이다. |
~ | NOT | 비트를 역전한다. |
<< | 비트를 왼쪽으로 shift 하고 왼쪽을 0으로 채운다. | 비트를 왼쪽으로 shift 한다. |
>> | 비트를 오른쪽으로 shift 한다. | 비트를 오른쪽으로 shift 한다. |
할당연산자
할당연산자는 오른쪽의 값을 왼쪽에 있는 피연산자(변수)에 할당(저장)하기 위해서 사용한다.
연산자 | 의미 | 예 |
= | 변수에 값을 할당한다. | x = 5 |
+= | 변수를 값 만큼을 더해서 할당한다. 증감연산자라고 부른다. | x += 5, x = x+ 5 와 같다. |
-= | 변수를 값 만큼을 빼서 할당한다. 증감연산자다 | x -= 5, x = x - 5와 같다. |
*= | 변수를 값 만큼을 곱해서 할당한다. | x *= 5, x = x * 5와 같다. |
/= | 변수를 값 만큼을 나눠서 할당한다. | x /=5, x = x/5와 같다. |
%= | 변수를 값 만큼 나눈 나머지를 할당한다. | x %= 5, x = x % 5와 같다. |
x **= | 변수에 값 만큼을 거듭제곱한 값을 할당한다. | x **= 5, x = x ** 5와 같다. |
x >>= | 변수에 값 만큼을 오른쪽으로 쉬프트 연산한 값을 할당한다. |
논리연산자
논리연산자는 노리식을 판단하여 참(true)와 거짓(false0를 반환한다. and, or, not는 두 개의 피연산자를 가지는 이항연산자이다.
연산자 | 의미 | 예 |
and | 양쪽다 참이면 참을 리턴한다. | x < 5 and x < 10 |
or | 둘 중 한쪽이라도 참이면 참을 리턴한다. | x < 5 or x < 4 |
not | 참이면 거짓, 거짓이면 참을 리턴한다. | not ( x < 5 and x < 10) |
식별 연산자(Identity Operators)
식별 연산자는 객체가 서로 동일한지 확인 할 때 사용한다.
연산자 | 의미 | 예 |
is | 두개의 객체가 서로 같다면 참을 리턴한다. | x is y |
is not | 두 개의 객체가 서로 다르다면 참을 리턴한다. | x is not y |
아이디 연산자는 헷갈릴 수 있으니 설명이 필요할 것 같다. 아래 코드를 보자.
[code]
>>> a = 10
>>> b = 10
>>> a is b
True
[/code]
a == b와 무슨 차이가 있는지 싶을 것이다. 위 코드는 a와 b가 10이라는 같은 값을 가지고 있는지를 테스트하는게 아니라 a와 b가 같은 메모리 주소를 가지는지를 테스트하는 것이다. 아래 코드를 보자.
[code]
>>> a == b
True
>>> a is b
False
[/code]
"==" 연산자는 값이 같은지를 테스트하기 때문에 True를 리턴한다. 하지만 객체의 주소가 서로 다르기 때문에 False 를 리턴했다. id 함수를 이용하면 객체의 Identity 값을 읽을 수 있다.
[code]
>>> a = 50
>>> b = 50
>>> id (a)
9790176
>>> id (b)
9790176
[/code]
그러므로 a is b는 id(a) == id(b)와 동일하다.
멤버 연산자
멤버 연산자는 특정 값이 리스트나 문자열에 포함된 값인지 알려주는 연산자다.
연산자 | 의미 | 예 |
in | 값이 객체 시퀀스에 포함되어 있다면 참을 리턴 | x in y |
not in | 값이 객체 시퀀스에 포함되어 있지 않다면 참을 리턴 | x not in y |
[code]
>>> item = ['apple', 'grape', 'kiwi']
>>> 'kiwi' in item
True
>>> 'car' in item
False
>>> 'he' in 'hello'
True
[/code]