일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- restfulapi
- url
- REST
- SOAP API
- virtual environment
- web
- 분리설정
- restapi
- Django
- migrate
- API
- 웹
- restful
- PYTHON
- 환경설정하기
- 파이썬
- 장고
- 서버설계
- 사용자인증
- djangorest
- 환경분리
- rest framework
- django 시간 설정
- 서버구동
- migrations
- server
- 서버 만들기
- http
- resful
- secretkey
- Today
- Total
grape
파이썬의 정석 (1) 본문
연산자와 피연산자
파이썬에서 연산을 하기 위해 사용되는 +, - 등의 기호는 연산자(operator)라고 하고, 7이나 3과 같이 연산의
대상을 피연산자(operand)라고 한다. 덧셈과 뺄셈 연산자 +와 - 는 일반 계산에 사용되는 기호와 동일하지만 곱셈과 나눗셈 연산자 기호는 다르다. 곱셈은 x대신 *을, 나눗셈은 ÷ 대신 /을 사용하며 나눗셈 결과에서 소수점 값을 버리고 몫만 구할 때는 //, 나머지를 구하는 계산에는 %를 사용한다.
또한, 단순한 사칙연산은 아니지만. 거듭제곱의 값을 구하는 연산자는 ** 이다.
사칙연산
+ | 덧셈 (7 + 3 = 10) |
- | 뺄셈 (7 - 3 = 4) |
* | 곱셉 (7 x 3 = 21) |
/ | 나눗셈 (7 % 3 = 2.333333333335) * 실수로 출력 * |
// | 나눗셈의 몫 (7 // 3 = 2) * 정수로 출력 * |
% | 나눗셈의 나머지(7 % 3 = 1) * 정수로 출력 * |
** | 제곱 ( 7 ^ 3 = 343) |
- 사칙연산은 왼쪽에서부터 오른쪽으로 계산한다.
- 곱셈과 나눗셈은 덧셈과 뺄셈보다 먼저 계산한다(연산자의 우선순위가 높다).
- 괄호 안의 식을 가장 먼저 계산한다.
- 소괄호()는 중첩될 수 있다. ex) - 7 * ((3 + 5) % 2)
- 연산이 왼쪽에서부터 수행되는 연산자는 좌결합이라고 한다.
연산자 우선순위
지금까지 알아본 연산자는 피연산자가 2개인 2항 연산자(binary operator)였다.
2항 연산자 외에 피연산자가 3개인 3항 연산자(ternary operator)와 피연산자가 1개인 단항 연산자(unary operator)가 있다.
- 단항 연산자: 연산할때 항(피연산자)이 1개만 있는 것을 단항 연산자라고 한다. (ex - +2, -2, .. 등등)
- 이항 연산자: 연산할때 항(피연산자)이 2개만 있는 것을 이항 연산자라고 한다. (ex - A + B, A - B, .. 등등)
- 삼항 연산자: 참인 경우 값 if 조건 else 거짓인 경우 값 (ex - true_vale if condition else false_value)
# 2항 연산자와 단항 연산자
7 * +3 # 7 * (+3)의 의미: 7과 (+3)의 곱을 계산
>> 21
7 * -3 # 7 * (-3)의 의미: 7과 (-3)의 곱을 계산
>> -21
위 예시에서 알 수 있듯이 +와 - 단항 연산자는 곱셈 및 나눗셈 연산자 보다도 우선하여 연산을 수행 한다.
x ** y | 거듭 제곱 | x의 y 제곱 수를 생성 | ↑ |
+x | 단항 + | x 그 자체의 수를 생성 | ↑ |
-x | 단항 - | x의 부호를 반전한 값을 생성 | |
x * y | 곱셈 | x에 y를 곱한 값을 생성 | ↑ |
x / y | 나눗셈 | x를 y로 나눈 값을 생성 (연산은 실수형으로 수행) |
|
x // y | 나눗셈의 몫 | x를 y로 나눈 값에서 몫에 해당하는 값을 생성 (소수점 이하의 값을 버리고 정수형 값을 생성) |
|
x % y | 나눗셈의 나머지 | x를 y로 나눈 값의 나머지를 생성 | |
x + y | 덧셈 | x에 y를 더한 값을 생성 | ↑ |
x - y | 뺄셈 | x에서 y를 뺀 값을 생성 |
연산자는 우선순위에 따라 4종류로 나눌 수 있다. 우선순위가 높은 연산자 부터 차례대로 나열되어 있다.
삼항 연산자 (삼항 표현식)
어느 언어에나 코드량을 줄이기 위한 다양한 기법들이 존재한다. 그 중에서 대표적인 것중 하나인 3항 연산자를 파이썬에서도 사용가능 합니다. 삼항 연산자는 if-else 조건식을 한 줄로 간결하게 표현할 수 있다. 코드를 줄이는데 용이하게 사용할 수 있지만 조건식이 복잡한 경우에는 가독성을 떨어뜨릴 수 있으니 적절한 경우에 사용하는 것이 좋다.
1. 삼항 연산자 (삼항 표현식) 문법
true_value if condition else false_value
condition의 Boolean값을 기반으로 반환된다. if 조건식의 condition값이 True이면 true_value를 반환하고 False이면 false_value값을 반환한다.
- 참인 경우 값 if 조건 else 거짓인 경우 값
# 삼항 표현식
a = 1
test = "one" if a == 1 else "not one"
print(test)
>> one
a = 1
test = "one" if a == 11 else "not one"
print(test)
>> not one
# if - else 조건식
a = 1
if a == 1:
test = 'one'
else:
test = 'not one'
>> one
같은 결과를 출력하지만 삼항 표현식을 사용할 때 코드를 더 간결하게 작성할 수 있다. 삼항 표현식과 if-else조건식이 같은 결과를 도출하지만 표현하는 방식이 달라진다.
2. 중첩 삼항 연산자 (삼항 표현식)
중첩 삼항 표현식은 이름 그대로 삼항 표현식을 중첩된 표현식으로 작성하는 코드이다. 두개 이상의 if 조건식을 한 줄로 작성할 수 있다.
true_value if condition1 else true_value2 if condition2 else false_value
if 조건식의 condition1값이 True이면 true_vale값을 반환하고 False면 두 번째 조건식의 Boolean 값을 반환한다. condition2의 값이 True이면 true_value2값을 반환하고 False이면 false_value를 반환한다.
# 삼항 표현식
a = 5
test = 'five' if a == 5 else 'low' if a < 5 else 'high'
print(test)
>> five
a = 3
test = 'five' if a == 5 else 'low' if a < 5 else 'high'
print(test)
>> low
a = 10
test = 'five' if a == 5 else 'low' if a < 5 else 'high'
print(test)
>> high
삼항 표현식은 한 줄로 작성할 수가 있어서 간편하게 사용이 가능하다. if - else 조건식은 if -elif - else 조건식으로 작성도 가능 하다.
수치 자료형
수를 표시하는 방법은 프로그래밍 언어에 따라 달라진다. 수나 문자를 나타내는 종류나 방법을 자료형(data type)이라고 부르며. 파이썬에는 3개의 수치 자료형이 있다.