각종 연산자
파이썬에서 연산자는 산술 연산자, 관계 연산자, 논리 연산자가 있습니다.
- 산술 연산자
산술 연산자는 사칙 연산자(+,-,*,/)와 나머지(%)연산자, 몫(//) 연산자가 있습니다. 우선순위는 괄호가 가장 높고, 단항 연산자(부호 +,-), 지수 연산자(**), 곱·나누기·나머지·몫 연산자, 덧셈·뺄셈(+,-) 연산자 순입니다. 지수 연산자를 제외한 연산자들은 왼쪽에서 오른쪽으로 연산을 수행합니다. 각 연산자의 사용은 다음과 같습니다.
----------------------------------------------------------------------------------------
a=+5 # 단항 연산자
b=2**3**2 # 지수 연산자
c=3*2+4 # 곱셈 연산자와 덧셈 뺄셈 연산자
d=7%3 # 나머지 연산자
e=7//3 # 몫 연산자
print 'a=+5 :',a
print 'b=2**3**2 :',b
print 'c=3*2+4 : ',c
print 'd=7%3 :',d
print 'e=7//3 :',e
(실행 결과)
a=+5 : 5
b=2**3**2 : 512 # 오른쪽부터 연산하기때문에 3의 2승인 9가 먼저 계산되고 2의 9승인 512가 출력됩니다.
c=3*2+4 : 10 # 곱셈연산을 먼저 수행한 후 덧셈을 수행합니다.
d=7%3 : 1 # 7나누기3의 나머지인 1을 출력합니다.
e=7//3 : 2 # 7나누기3의 몫인 2가 출력됩니다.
----------------------------------------------------------------------------------------
(실행 결과)
(실행 결과)
- 관계 연산자
관계 연산자는 객체가 지닌 값의 크기를 비교하여, True 혹은 False를 반환합니다. 연산자의 종류는 값이 같은 지 확인하는 ==, 값이 다른지 확인하는 !=, 대소 연산자(>,<,>=,<=)가 있습니다. 사용형태는 다음과 같습니다.
----------------------------------------------------------------------------------------
a=5
b=10
print 'a==b :',a==b
print 'a!=b :',a!=b
print 'a>b :',a>b
print 'a<=b :',a<=b
----------------------------------------------------------------------------------------
(실행 결과)
a==b : False
a!=b : True
a>b : False
a<=b : True
한 가지 특이한 점은 파이썬 에서는 관계연산자를 동시에 사용할 수 있습니다. 뒤에나오는 논리연산자인 and 연산자를 사용하지 않고, 동시에 사용이 가능합니다.
----------------------------------------------------------------------------------------
print "0<a and a<b :",0<a and a<b
print "0<a<b :",0<a<b
----------------------------------------------------------------------------------------
(실행 결과)
----------------------------------------------------------------------------------------
상수 자료형 말고 문자나 리스트, 튜플, 사전 같은 자료형의 비교는 어떤 기준으로 할까요? == 연산자는 동일한 값을 가져야 True가 반환되고, 대소관계 에서는 "사전순서"로 연산을 수행합니다. "사전순서"는 흔히 알고있는 사전을 생각하시면 편합니다.
----------------------------------------------------------------------------------------
s="abcd"
s2="abd"
# 리스트와 튜플은 앞에서부터 값 비교
l=[1,2,3,5]
l2=[1,2,3,6]
t=(1,5,7)
t2=(2,3,5)
d={'f':'F','g':'G'}
d2={'a':'A','d':'D'}
print "s2>s :",s2>s
print "l2>l :",l2>l
print "t2>t :",t2>t
print "d2>d :",d2>d
----------------------------------------------------------------------------------------
(실행 결과)
s2>s : True # 사전에 abcd보다 abd가 뒤에나오기때문에 s2가 더큼
l2>l : True # 사전에 1,2,3,5보다 1,2,3,6이 뒤에 오기때문에 l2가 더큼
t2>t : True # 1보다 2가 크기때문에 t2가 더 큼
d2>d : False # f보다 a가 앞에나오기때문에 False
----------------------------------------------------------------------------------------
자료형이 다른 두 값을 비교할때는 어떨까요? 숫자<사전<리스트<문자열<튜플의 관계를 가집니다. 관계에 따라서 True/False가 결정됩니다.
----------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------
추가적으로 sort함수에대해서 간단하게 살펴보겠습니다. sort함수는 정렬을 해주는 함수인데, 위의 관계와 사전순서에 따라서 정렬을 해줍니다. 다음과 같이 리스트 l2가 여러 자료형을 인덱스로 가지고있습니다. sort함수를 사용하면 정렬을 해줍니다.
----------------------------------------------------------------------------------------
l2=['abc',3,(1,2,3),[4,5,6],'zzzz',{1:2}]
print 'before :',l2
l2.sort()
print 'after :',l2
----------------------------------------------------------------------------------------
before : ['abc', 3, (1, 2, 3), [4, 5, 6], 'zzzz', {1: 2}]
after : [3, {1: 2}, [4, 5, 6], 'abc', 'zzzz', (1, 2, 3)]
----------------------------------------------------------------------------------------
- 논리 연산자
----------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------
* 출처 : 한국기술교육대학교 온라인평생교육원 파이썬프로그래밍
'언어 > Python' 카테고리의 다른 글
[파이썬] 문자열 정의 및 기초연산 (0) | 2017.02.01 |
---|---|
[파이썬] 제어문과 함수 (0) | 2017.01.25 |
[파이썬] 내장 자료형 - 리스트, 튜플, 사전 (0) | 2017.01.19 |
[파이썬] 수치형 자료형과 문자열 자료형 (0) | 2017.01.16 |
[파이썬] 기본문형과 콘솔 입·출력 (0) | 2017.01.14 |