Python 강좌Python Tutorial 5 : 연산자

페이지 정보

no_profile yundream 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일 21-07-07 23:55 3,387 0

본문

연산자란 무엇인가

파이쎤(을 포함한 프로그래밍 언어의) 가장 중요한 역할은 연산(계산)이다. 파이썬은 계산을 위한 특수한 기호를 제공하는데 이를 연산자라고 한다. 예를들어서 파이썬은 아래와 같이 덧셈연산을 하는 '+' 연산자를 제공한다.

[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]


추천 0

댓글목록