이 글은 '열혈강의 Python 개정판ver.2'를 참고로 작성하였습니다.
'열혈강의 Python 개정판ver.2' 이강성저 프리렉
RaspberryPI에 Raspbian을 사용하였습니다.
파이썬 연산자
산술 연산자
파이썬에서 기본 산술 연산자는 다음과 같습니다.
+ 더하기, - 빼기, * 곱하기, / 나누기, // 몫, ** 지수승, % 나머지
정수와 정수의 연산 결과는 정수가 되며
정수와 실수의 연산 결과는 실수가 됩니다.
아래는 연산자의 우선순위입니다.
1 | +, - | 단항연산자 | 오른->왼 |
2 | ** | 지수 | 오른->왼 |
3 | *, /, %, // | 곱셈,나눗셈,나머지,몫 | 왼->오른 |
4 | +, - | 덧셈, 뺄셈 | 왼->오른 |
2 + 3 * -4 라는 수식이 있다고한다면
단항 연산자인 - 가 먼저 적용되고 그다음 *곱셈, +덧셈 순서로 연산이 이루어 집니다.
-> (2 + (3 * (-4)))
따라서 연산의 결과는 -10이 됩니다.
연산자의 결합 순서를 변경하려면 괄호를 이용합니다.
(2 + 3) * -4
연산의 결과는 -20 이 됩니다.
>>> 2 + 3 * -4
-10
>>> (2 + 3) * -4
-20
관계 연산자
관계 연산자는 같냐 다르냐, 크냐 작냐 와 같은 객체의 대소를 비교하는 연산을 말합니다.
> 크다, < 작다, >= 크거나 같다, <=작거나 같다, == 같다, != 다르다
a < b
와 같이 사용할 수 있으며,
다른 언어에서는 다음과 같이 풀어써야하는식을
0 < a and a < b
아래처럼
0 < a < b
복합적인 관계도 가능합니다.
또한 수치뿐 아니라 다른 여러 객체들의 비교도 가능합니다.
>>> 'asdfvbcxzb' < 'vcbixcoging'
True
>>> (1,4,6) > (5,7,3)
False
>>> [2,6,4] != [2,6,3]
True
>>> [2,6,4] != [2,6,4]
False
>>> (1,4,6) < (1,4,7)
True
자료형 간의 크기 비교도 가능합니다.
숫자 < 사전 < 리스트 < 문자열 < 튜플
>>> a=1
>>> b={'key':'value'}
>>> c=[1]
>>> d='string'
>>> e=(1,2)
>>> a < b < c < d < e
True
아래는 같은 객체인치를 비교하는 예입니다.
>>> X=[1,2,3]
>>> Y=[1,2,3]
>>> Z=Y
>>> X==Y
True
>>> X==Z
True
>>> X is Z
False
>>> Z is Y
True
논리 연산자
논리 연산자는 진리 값을 피연산자로 취해 논리 값을 계산하는 연산자 입니다.
논리 연산자로는 not, and, or 가 있습니다.
not x x가 true면 false, x가 false면 true
x and y x가 true면 y, x가 false면 x
x or y x가 true면 x,, x가 false면 y
내부적으로는
True는 1
False는 0
의 값을 갖습니다.
피연산자가
정수 0일때
실수 0.0일때
빈객체 일때
거짓 값이며
그외의 나머지 값들은 참 값으로 간주됩니다.
False
>>> bool(0)
False
>>> bool(0.0)
False
>>> bool('')
False
>>> bool([])
False
>>> bool(())
False
>>> bool({})
False
>>> bool(None)
False
논리식의 계산은 식의 결과 판정을 하는데 기여한 객체의 값을 결과로 반환합니다.
즉 항상 True False의 결과만을 가져오는게 아니라는 이야기 입니다.
>>> 1 and 1
1
>>> [] or 1
1
>>> [] and 1
[]
>>> [{}] and 1
1
>>> [{}] or 1
[{}]
>>> [1,2,3,4] or (1,2,3,4)
[1, 2, 3, 4]
>>> [1,2,3,4] and (1,2,3,4)
(1, 2, 3, 4)
비트 연산자
비트 연산자는 정수 자료형에만 적용되며 비트 단위의 데이터를 조작합니다.
1 | ~ | 비트 반전 |
2 | <<, >> | 왼쪽 Shift, 오른쪽 Shift |
3 | & | 비트 AND |
4 | ^ | 비트 XOR |
5 | | | 비트 OR |
정수 표현 범위를 넘어가면 자동 형 변환이 이루어지고
Shift시 오른쪽은 0으로 채워지고,
된쪽은 최상위 비트로 채워집니다.
>>> ~-1 #1111...1111
0
>>> a=4 #0000...0100
>>> a<<1
8 #0000...1000 가장 오른쪽 비트는 0으로 채워짐
>>> 1 << 128 #정수형 표기범위를 넘어갈경우 자동 형변환
340282366920938463463374607431768211456L
>>> a=-4 #1111...1100
>>> a>>1
-2 #1111...1110 가장 왼쪽 비트는 최상위비트로 채워짐
>>> a=4 # 0000...0100
>>> a>>1
2 #0000...0010 가장 왼쪽 비트는 최상위비트로 채워짐
내장 함수 및 math 모듈 함수
위와 같은 연산자들 이외에 파이썬에서 제공되는 내장 함수들이 있습니다.
abs(x) | x의 절대값 |
int(x) | int 형변환 |
long(x) | long 형변환 |
float(x) | flaot 형변환 |
compolex(re,im) | 복소수 생성 |
c.conjugate() | 복소수c의 켤레복소수 |
divmod(x,y) | (x//y,x%y) |
pow(x,y) | x의 y승 |
실수 연산을 위한 math 모듈이 있고
복소수 연산을 위한 cmath 모듈이 있습니다.
>>> import math
>>> math.pi
3.141592653589793
>>> math.e
2.718281828459045
>>> math.sin(1)
0.8414709848078965
>>> math.sqrt(4)
2.0
'Python' 카테고리의 다른 글
정규식 (0) | 2015.02.03 |
---|---|
파이썬 한글 유니코드 변환 에러 (0) | 2014.12.30 |
파이썬 수치자료형 (0) | 2014.12.25 |
파이썬 제어문 (0) | 2014.12.23 |
파이썬 메모리 관리 (0) | 2014.12.23 |
댓글