2 + 3
입니다. 식은 연산자와 피연산자로 나눌 수 있습니다.+
와 같이 기호로 나타내어지거나 또는 특별한 키워드로 나타내어집니다. 또 연산자는 계산에 사용될 데이터를 필요로 하는데, 이들을 피연산자라고 부릅니다. 이 경우, 피연산자는 2
와 3
이 됩니다.2 + 3
이라는 식을 입력해 봅시다.+
(덧셈 연산자)3 + 5
는 8
을 반환합니다. 'a' + 'b'
는 'ab'
를 반환합니다.-
(뺄셈 연산자)-5.2
는 음수를 표현합니다. 50 - 24
는 26
을 반환합니다.*
(곱셈 연산자)2 * 3
은 6
을 반환합니다. 'la' * 3
은 'lalala'
를 반환합니다.**
(거듭제곱 연산자)3 ** 4
는 81
을 반환합니다 (이 값은 3 * 3 * 3 * 3
과 같습니다)./
(나눗셈 연산자)13 / 3
은 4.333333333333333
를 반환합니다.//
(정수 나눗셈 연산자)13 // 3
은 4
를 반환합니다.-13 // 3
은 -5
를 반환합니다.9//1.81
은 4.0
를 반환합니다.%
(나머지 연산자)13 % 3
은 1
을 반환합니다. -25.5 % 2.25
는 1.5
를 반환합니다.<<
(왼쪽 시프트 연산자)2 << 2
는 8
을 반환합니다. 2
는 이진수 10
으로 표현됩니다.1000
이 되고, 이것을 정수로 표현하면 8
이 됩니다.>>
(오른쪽 시프트 연산자)11 >> 1
은 5
를 반환합니다.11
은 이진수 1011
로 표현됩니다. 이것으로 오른쪽으로 1비트 시프트 연산하면 이진수 101
이 되고, 이것을 정수로 표현하면 5
가 됩니다.&
(비트 AND 연산자)5 & 3
은 1
을 반환합니다.|
(비트 OR 연산자)5 | 3
은 7
을 반환합니다.^
(비트 XOR 연산자)5 ^ 3
은 6
을 반환합니다.~
(비트 반전 연산자)-(x+1)
을 반환합니다.<
(작음)True
또는 False
을 반환합니다. 각 반환값의 첫글자는 대문자라는 점에 유의하세요.5 < 3
는 False
를 반환합니다. 3 < 5
는 True
를 반환합니다.3 < 5 < 7
은 True
를 반환합니다.>
(큼)5 > 3
은 True
를 반환합니다. 만약 두 피연산자가 모두 숫자라면, 같은 숫자형으로 변환된 후 크기를 비교합니다. 피연산자가 숫자형이 아닐 경우, 항상 False
를 반환합니다.<=
(작거나 같음)x = 3; y = 6; x <= y
는 True
를 반환합니다.>=
(크거나 같음)x = 4; y = 3; x >= 3
는 True
를 반환합니다.==
(같음)x = 2; y = 2; x == y
는 True
를 반환합니다.x = 'str'; y = 'stR'; x == y
는 False
를 반환합니다.x = 'str'; y = 'str'; x == y
는 True
를 반환합니다.!=
(같지 않음)x = 2; y = 3; x != y
는 True
를 반환합니다.not
(불리언 NOT 연산자)True
라면, False
를 반환합니다. x가 False
라면, True
를 반환합니다.x = True; not x
는 False
를 반환합니다.and
(불리언 AND 연산자)x and y
는 False
를 반환하고 아니면 y와의 and 연산 결과를 반환합니다.False
이기 때문에 x = False; y = True; x and y
는 False
를 반환합니다. and
연산에서 왼쪽의 값이 False
면 전체 식이 False
가 되기 때문에 파이썬은 y의 값을 처리하지 않습니다. 이것을 단축 계산(short-circuit evalulation)이라고 부릅니다.or
(불리언 OR 연산자)True
이면 True
가 반환되며, False
이면 y와의 or 연산값을 반환합니다.x = True; y = False; x or y
는 True
를 반환합니다. 여기서도 단축 계산이 적용됩니다.(변수) = (변수) (연산자) (식)
이 (변수) (연산자) = (식)
의 형태가 됩니다.2 + 3 * 4
와 같은 식을 계산한다고 합시다. 덧셈이 먼저일까요, 곱셈이 먼저일까요? 초등학교 시절에 이미 배우셨겠지만, 곱셈을 먼저 계산해야 합니다. 이것은 곱셈 연산이 덧셈 연산보다 연산 순서에서 우위에 있기 때문입니다.lambda
: 람다 식if - else
: 조건 식or
: 불리언 ORand
: 불리언 ANDnot x
: 불리언 NOTin, not in, is, is not, <, <=, >, >=, !=, ==
: 비교 연산, 요소 연산, 관계 연산|
: 비트 OR^
: 비트 XOR&
: 비트 AND<<, >>
: 시프트 연산+, -
: 덧셈 및 뺄셈*, /, //, %
: 곱셈, 나눗셈, 나눗셈 후 내림 연산, 나머지 연산+x, -x, ~x
: 양수 표현, 음수 표현, 비트 NOT 연산**
: 거듭제곱x[index], x[index:index], x(arguments...), x.attribute
: 원소 접근, 슬라이스, 함수 호출, 속성 참조(expressions...), [expressions...], {key: value...}, {expressions...}
: 괄호 또는 튜플, 리스트, 사전, 집합+
연산자와 -
연산자는 같은 연산 순서를 가지고 있습니다.2 + (3 * 4)
라고 쓰면 2 + 3 * 4
로 쓰는 것에 비해 연산자 순서를 잘 모르는 사람도 쉽게 읽을 수 있을 것입니다. 그렇지만, 괄호를 적당히 사용하는 것도 중요합니다. (2 + (3 * 4))
와 같이 괄호를 너무 많이 사용하는 것은 피하세요.(2 + 3) * 4
라고 적을 수 있습니다.2 + 3 + 4
는 (2 + 3) + 4
와 같이 계산됩니다.expression.py
로 저장하세요):area
라는 변수에 length * breadth
라는 식의 결과가 저장되며, 이 값은 print
명령에 의해 화면에 출력됩니다. 두번째로는 print 명령에 곧바로 2 * (length + breadth)
라는 을 직접 입력하고, 그 결과를 화면에 출력합니다.'Area is'
라는 문자열이나 area
라는 변수에 공백을 지정하지 않았음에도, 파이썬이 그 둘 사이에 자동으로 공백을 넣어 줌으로 결과물이 깔끔하고 멋지게 출력될 수 있도록 해 주기 때문에 프로그램을 좀 더 읽기 쉽게 작성할 수 있습니다. 이것은 파이썬이 프로그래머의 삶을 좀 더 쉽게 만들어주는 하나의 좋은 예라고도 할 수 있겠습니다.