이번 포스팅에는 Python의 제어문(Control statement) 중 하나인 조건문에 해당하는 if문에 대해 알아보겠습니다.
1. 제어문 또는 제어구문(Control statement)
- 컴퓨터 과학(Computer science, CS)에서 제어문 또는 제어구문이란 프로그램의 처리와 실행의 흐름을 제어하는 구문입니다.
- 알고리즘에 담겨진 논리 제어를 구문을 통해 표현할 수 있습니다.
- Python에서는 조건문(if, elif, else), 반복문(while, for)문을 통해 제어구문을 작성할 수 있습니다.
- 제어문을 작성할 땐, Python의 탭 간격(Tab)에 유의하며 작성합니다.
2. 조건문(Conditional statement)
- 컴퓨터 과학에서 조건문이란 프로그램의 처리 로직에 특정한 조건을 주고 조건에 부합한다면 그 조건에 맞는 동작이 수행될 수 있도록 하는 제어문입니다.
- 명시한 조건식의 True, False 결과에 따라 실행문의 수행 여부가 결정됩니다.
3. if문
- Python의 조건문인 if문입니다.
- if문의 조건식이 True라면 실행문1이 수행되고, False라면 수행되지 않습니다.
- 문법
if(조건식1):
실행문1
# 기본적인 if 문
if True:
print("True입니다.") # True입니다.
else:
print("False입니다.")
4. 비교 연산자(Comparison operator)
- 비교 연산자(Comparison operator)란, 피연산자 두 개를 비교하는데 사용되는 연산자입니다.
- 제어문의 조건식에서 주로 사용되며 연산 결과로는 오로지 True와 False만을 반환하게 됩니다.
4-1. 대소 비교 연산자
- 두 개의 피연산자의 대소 여부에 따라 Boolean 타입을 반환하는 연산자입니다.
비교 연산자 | 해당 연산자의 의미 |
a > b | 좌항인 a의 값이 더 크다면 True를 반환하고 아니면 False 반환 |
a < b | 우항인 b의 값이 더 크다면 True를 반환하고 아니면 False 반환 |
a >= b | 좌항인 a의 값이 우항인 b보다 더 크거나 같다면 True를 반환, 아니면 False 반환 |
a <= b | 우항인 b의 값이 좌항인 a보다 더 크거나 같다면 True를 반환, 아니면 False 반환 |
# 비교연산자(Comparison operator)를 통한 if 문
a = 10
b = 20
if (a > b):
print("a가 b보다 더 큽니다.")
else:
print("a가 b보다 작습니다") # a가 b보다 작습니다
4-2. 등가 비교 연산자
- 두 개의 피연산자의 등가 여부에 따라 Boolean 타입을 반환하는 연산자입니다.
- 문자열(String)에 대해선 해당 연산자를 사용할 수 없습니다.
등가 연산자 | 해당 연산자의 의미 |
a == b | 좌항인 a와 우항인 b가 같다면 True를 반환, 아니면 False를 반환 |
a != b | 좌항인 a와 우항인 b가 다르다면 True를 반환, 아니면 False를 반환 |
5. 논리 연산자(Logical operator)
- 논리 연산자(Logical operator)란, 두 개 이상의 조건에 해당되는 연산식의 True/False 여부를 결정하기 위해 사용되는 연산자입니다.
연산자 | 연산자의 의미 |
and (&) | 피연산자가 모두 True이면 True를 반환 |
or (|) | 피연산자 중 한 개가 True이면 True를 반환 |
not | 피연산자가 True이면 False를 반환하고 False이면 True를 반환 |
- and 연산자를 이용한 코드 예시를 보겠습니다.
# 논리연산자(logic operator)를 통한 if 문
# AND
have_money = 3000;
have_card = True;
if(have_money and have_card):
print("case 1: 교통수단을 이용할 수 있습니다.")
else:
print("case 1: 도보를 이용하세요.") # case 1: 교통수단을 이용할 수 있습니다.
- or 연산자를 이용한 코드 예시를 보겠습니다.
# OR
have_money = 3000;
have_card = True;
if(have_money or have_card):
print("case 2 : 교통수단을 이용할 수 있습니다.")
else:
print("case 2: 도보를 이용하세요.") # case 2 : 교통수단을 이용할 수 있습니다.
- not 연산자를 이용한 코드 예시를 보겠습니다.
# NOT
have_card = True;
if(not have_card):
print("case 3 : 교통수단을 이용할 수 있습니다.")
else:
print("case 3 : 도보를 이용하세요.") # case 3 : 도보를 이용하세요.
6. in, not in문
- 특정한 데이터가 존재하는지 조건문을 통해 확인할 수 있습니다
- in, not in 앞에는 탐색하고자 하는 데이터가 위치하게 됩니다.
- in, not in 뒤에는 여러 가지 데이터들을 담을 수 있는 리스트, 튜플 자료형이 들어갑니다.
- and = &, or = | 처럼, in, not in를 대체할 수 있는 특정 기호는 없습니다.
# in, not in
kakao_members = ["muzi", "frodo", "con", "apeach"]
if "frodo" in kakao_members:
print("frodo 인형을 뽑을 수 있습니다.") # frodo 인형을 뽑을 수 있습니다.
else:
print("다른 인형을 뽑아야 합니다.")
kakao_members = ["muzi", "frodo", "con", "apeach"]
if "neo" not in kakao_members:
print("다른 인형을 뽑으세요.")
else:
print("neo를 뽑을 수 있습니다.") # 다른 인형을 뽑으세요.
7. elif문
- 다수의 조건을 판단할 수 있는 elif문입니다.
- 단순한 1개의 조건이 아닌 다수의 조건이 존재할 때 사용합니다.
- 문법
if(조건식1):
실행문1 # 조건식1이 true인 경우 실행 / false라면 다음 조건으로 넘어감.
elif(조건식2):
실행문2 # 조건식2이 true인 경우 실행 / false라면 다음 조건으로 넘어감.
elif(조건식3):
실행문3 # 조건식3이 true인 경우 실행 / false라면 다음 조건으로 넘어감.
...
else:
실행문4 # 위의 모든 조건이 False라면 else문의 실행문 수행
# elif 문
student_score = 95
if student_score >= 90:
print("해당 학생의 성적은 A입니다.") # 해당 학생의 성적은 A입니다.
elif student_score >= 80 and student_score < 90:
print("해당 학생의 성적은 B입니다.")
elif student_score >= 70 and student_score < 80:
print("해당 학생의 성적은 C입니다.")
elif student_score >= 60 and student_score < 70:
print("해당 학생의 성적은 D입니다.")
else:
print("해당 학생의 성적은 F입니다.")
8. 조건부 표현식(Conditional expression)
- 간단하게 표현식의 형태로 조건문을 서술하는 방법입니다.
- 간단한 형태의 조건식을 표현할 때 위처럼 조건부 표현식을 사용할 수도 있습니다.
- 문법
변수명 = 실행문1 if 조건식(조건식이 True이면 실행문1 수행) else (실행문2)
# 조건부 표현식(Conditional Expression)
kakao_members = ["muzi", "frodo", "con", "apeach"]
result1 = "muzi가 존재합니다." if "muzi" in kakao_members else "muzi가 없습니다."
print(result1) # muzi가 존재합니다.
# 조건식이 False라면, else 문이 실행됨.
result2 = "neo가 존재합니다." if "neo" in kakao_members else "neo가 없습니다."
print(result2) # neo가 없습니다.
9. Pass문
- 특정 조건식을 만족하여 True 값이 반환된 상태에서 실행문 내부에 pass문이 존재한다면 pass가 존재하는 라인은
아무것도 실행되지 않고 다음 실행문으로 넘어가게 됩니다.
- continue와 차이점은 만약에 조건식이 False라면 다음 Loop 자체로 넘어가게 된다는 차이점이 있습니다.
- 문법
if(조건식1):
pass
# pass
list1 = [1, 2, 3]
if 1 in list1:
print("1이 list 내부에 존재") # 1이 list 내부에 존재
pass
print("위의 구문은 pass이기에 실행되지 않습니다.") # 위의 구문은 pass이기에 실행되지 않습니다.
elif 2 in list1:
print("2가 존재합니다.")
else:
print("1이 존재하지 않습니다.")
이번 포스팅에선 Python의 제어구문 중 하나인 여러 가지 조건문에 대해 살펴보았습니다.
다음 포스팅에선 프로그램의 흐름을 제어하는 제어문 중 하나인 반복문에 대해 알아보겠습니다.
======================================================================
해당 포스팅에 대해 내용 추가가 필요하다고 생각되면 기존 포스팅 내용에 다른 내용이 추가될 수 있습니다.
개인적으로 공부하며 정리한 내용이기에 오타나 틀린 부분이 있을 수 있습니다.
이에 대해 지적해 주시면 감사하겠습니다.
'백엔드(Back-End) > Python' 카테고리의 다른 글
[Python] - 함수(Function), 함수의 return (0) | 2022.08.19 |
---|---|
[Python] - 제어문 - 반복문(while, for문), List comprehension (0) | 2022.08.19 |
[Python] - 자료형 - 집합(Set), Boolean (0) | 2022.08.15 |
[Python] - 자료형 - 딕셔너리(Dictionary) (0) | 2022.08.15 |
[Python] - 자료형 - 튜플(Tuple) (0) | 2022.08.15 |
댓글