Python 강좌 : 제 14강 - 조건문
조건문(if)
조건문(if)
은 제어문 중 하나로, 알고리즘의 논리적 제어를 표현하는 수단입니다.
조건문을 통해 어떤 목적이나 상태가 만족할 때 실행되게 하거나, 특정 상태가 하나라도 만족할 때 등 알고리즘의 실행 흐름을 제어할 수 있습니다.
조건문은 조건문에 작성된 조건 판단식을 통해 실행 여부를 결정하게 됩니다.
조건 판단식이 참(True)
값일 때 조건문 내부의 알고리즘을 실행하게 됩니다.
Python에서는 if
, elif
, else
또는 Tuple
, Dictionary
, 삼항 연산자
을 이용하여 조건문을 구성할 수 있습니다.
조건 판단식
조건 판단식은 주로 관계 연산자(Relational Operator)
와 논리 연산자(Logical Operator)
등을 통해 식을 구성합니다.
관계 연산자는 등식이나 부등식을 사용해 표현하며, 종류는 다음과 같습니다.
관계 연산자(Relational Operator)
연산 | 의미 |
---|---|
x > y | x가 y보다 큼 |
x >= y | x가 y보다 크거나 같음 |
x < y | x가 y보다 작음 |
x <= y | x가 y보다 작거나 같음 |
x == y | x와 y가 같음 |
x != y | x와 y가 같지 않음 |
논리 연산자는 앞선 6강의 비트 연산과 동일하거나 비슷한 의미를 갖습니다.
논리곱(and)
, 논리합(or)
, 논리부정(not)
등을 통해 표현할 수 있습니다.
주로, 복합적인 조건 판단식을 구성할 때 사용합니다.
논리 연산자(Logical Operator)
연산 | 의미 |
---|---|
x and y | x와 y의 연산 결과가 모두 참 값 |
x or y | x와 y의 연산 결과 중 하나라도 참 값 |
not x | x의 연산 결과를 반전 |
연산자 우선 순위(Operators Precedence)
연산 | 의미 |
---|---|
** | 거듭 제곱 |
~x, +x, -x | 단항 연산 |
*, @, /, //, % | 곱셈 및 나누기 연산 |
«, » | Bitwise Shift |
& | Bitwise AND |
^ | Bitwise XOR |
| | Bitwise OR |
>, >=, <, <= | 비교 연산자 |
==, != | 비교 연산자(평등) |
in, not in, is, is not | 식별 연산자 |
not | 논리 연산자 |
and | 논리 연산자 |
or | 논리 연산자 |
연산자에는 우선 순위가 존재하며, 연산자 우선 순위 표의 순서대로 우선시합니다.
연산자 우선 순위 표에서 확인할 수 있듯이 and
는 or
보다 먼저 연산됩니다.
True or True and False
연산은 and
가 먼저 연산되므로 True or (True and False)
가 됩니다.
즉, 최종 결과는 True
가 됩니다.
연산자 우선 순위를 모두 외우고 사용하는 것은 불가능하며, 코드 구성에 있어서 효율적이지도 않습니다.
그러므로, 소괄호를 사용해 먼저 연산될 수식을 설정합니다.
if
- 결과
- 같다
콜론(:)
과 탭(Tab)
을 이용하여 해당 조건문에 대한 내용을 구성할 수 있습니다.
조건문은 첫 분기(if)에 부합하지 않으면 다음 분기(elif)로 넘어가며, 어떤 분기에도 포함되지 않는 경우 최종 분기(else)로 넘어갑니다.
만약, 최종 분기(else)를 작성하지 않으면, 어떠한 분기도 포함되지 않아, 분기를 무시하고 넘어갑니다.
- 결과
- if-1 : 모두 조건에 만족
if-2 : 하나라도 만족
if-3 : 조건 우선식
조건문을 사용할 때 주의점은 조건식 내부에도 우선 순위가 있다는 점입니다.
if-1
과 if-2
조건에는 명시적으로 소괄호(())
를 사용해 연산이 우성되어야할 정보를 입력했습니다.
하지만, if-3
을 확인해본다면, True or True and False
가 되어, 어떤 연산이 우선될지 알 수 없습니다.
(True or True) and False
로 소괄호가 앞에 연결되었다면, True and False
가 되어 최종적으로 False
가 됩니다.
True or (True and False)
로 소괄호가 뒤에 연결되었다면, True or False
가 되어 최종적으로 True
가 됩니다.
즉, 조건식 내부에도 우선 순위가 있음을 확인할 수 있습니다.
Tuple
- 결과
- 1
1
튜플을 이용하여 if
문처럼 사용할 수 있습니다.
튜플을 생성하여 (거짓, 참) [조건]
으로 사용할 수 있습니다.
Dictionary
- 결과
- 알 수 없음
알 수 없음
사전을 이용하여 if
문처럼 사용할 수 있습니다.
사전을 생성하여 key
와 value
값을 할당합니다.
사전.get(key, 예외)
을 이용하여 key
를 호출하여 value
를 불러옵니다. 값이 없는 경우 예외
구문을 출력합니다.
삼항 연산자
- 결과
- 1
1
삼항 연산자
를 사용하여 코드를 간략화 할 수 있습니다.
참 값 if 조건 else 거짓 값
으로 구성할 수 있습니다.
조건
에 부합할 경우 참 값
을 실행하게 되며 부합하지 않을 경우 거짓 값
을 실행합니다.
댓글 남기기