728x90
1. Precedence of Arithmetic Operations
Higher
**
>-
(negation) >*
=/
=//
=%
>+
=-
(subtraction) Lower
- 우선순위를 기억하는 것도 중요하지만, 헷갈리면 그냥 parentheses로 묶어주면 된다. (가독성을 위해서도 이를 추천)
- 동시에
3+2
와 같은 간단한 expression은 굳이 parentheses로 묶지 말 것. (이 경우, 복잡한 expression등과 헷갈리게 됨)
2. Unary Operator (단항 연산자)
2.1. exponentiation : **
2의 3 제곱은 다음 2**3
으로 표시함.
2.2. negation : -
음수를 표현. (subtraction이 아닌)
>>> -2
-2
>>> --2
2
>>> ---2
-2
>>> ---2.
-2.0
3. Binary Operator (이항 연산자)
3.1. 사칙연산 : +
, -
, *
, /
우리가 아는 사칙연산 그대로임.
- addition
- subtraction
- multiplication
- division
단, multiplication이 *
(asterisk)라는 것과 division /
이 항상 float
type으로 결괏값을 내놓는다는 점만 기억할 것.
>>> 2+3
5
>>> 2-3
-1
>>> 2*3
6
>>> 2/3
0.6666666666666666
>>> 4/2
2.0
>>> 2.+3 # float
5.0
3.2. Integer Division : //
python에서 //
는 나누기 결과를 항상 int
type이 될 수 있는 값으로 반환해준다.
(이렇게 설명한 이유는 result가 1.0
과 같이 float
type이 될 수도 있기 때문임)
//
의 결과와 나누어진 수를 곱하면 항상 //
의 왼쪽의 수보다 작게 나옴.
>>> 12//10
1
>>> 19//10
1
>>> -12//10
-2
>>> -9//10
-1
>>> -19//10 # 10*-2 = -20 이며 이는 -19보다 작음.
-2
>>> 12.//10 # 하나라도 float면 결과도 float
1.0
>>> 12//10.
1.0
3.3. modulo (or remainder) : %
나머지 연산이라고도 불림.
주의할 것은. 0이 아닌 결괏값의 sign이 항상 나누어주는 수(divisor)의 sign이라는 점임
>>> 20%3
2
>>> 20%2
0
>>> 20%-2
0
>>> -20%2
0
>>> 20%-3
-1
>>> -20%3
1
>>> -20.%2 # float
0.0
>>> 20%3.
2.0
4. Augmented Assignment
Assignment와 arithmetic operation이 결합한 것.
Augmented Assignment Symbol | 예제 | 결과 |
+= | x = 3 x += 5 |
x는 8이 됨. (정확히는 x는 8을 참조하게 됨) |
-= | x = 3 x -= 5 |
x는 -2가 됨. (정확히는 x는 -2를 참조하게 됨) |
*= | x = 3 x *= 5 |
x는 15가 됨. (정확히는 x는 15를 참조하게 됨) |
/= | x = 7 x /= 2 |
x는 3.5가 됨. (정확히는 x는 3.5를 참조하게 됨) |
//= | x = 7 x //= 2 |
x는 3이 됨 (정확히는 x는 3을 참조하게 됨) |
%= | x = 7 x %= 2 |
x는 1이 됨 (정확히는 x는 1을 참조하게 됨) |
**= | x = 7 x **= 2 |
x는 49가 됨 (정확히는 x는 49를 참조하게 됨) |
할당에 대한 참고 자료 : 2023.06.20 - [Programming] - [Python] Assignment (Basic)
읽어보면 좋은 자료
operation에 대한 설명 : https://dsaint31.me/mkdocs_site/CE/ch01/ch01_00_data_representation/#operations
반응형
'Programming' 카테고리의 다른 글
[Python] Strong Typing이란? with Object (1) | 2023.06.13 |
---|---|
[Python] Variable (and Object) (0) | 2023.06.13 |
[Python] (Data) Type: Summary (0) | 2023.06.12 |
[Python] Expression vs. Statement (0) | 2023.06.12 |
[WSL] Install WSL (Windows Subsystem for Linux) (0) | 2023.06.12 |