조건문(Condition)
우리는 평소에 “만약 A라면 B를 하고, A가 아니면 C를 한다.”와 같은 형식의 말을 많이 한다. A라는 조건이 참(True)이면 B를 하고, 거짓(False)이면 C를 한다는 의미로 생각해 볼 수 있다. 프로그래밍에서도 특정 조건이 참인지 거짓인지에 따라 동작을 다르게 수행한다. 파이썬에서 이를 어떻게 표현하는지 알아보자.
1. 조건문 기초
1-1. if 와 else
- 파이썬에서 조건문을 표현할 때 if와 else라는 문법을 사용한다.
- if 문의 구조는 아래와 같다.
if 조건문:
조건문이 참일 때 실행하는 동작 1
조건문이 참일 때 실행하는 동작 2
...
else:
조건문이 거짓일 때 실행하는 동작 1
조건문이 거짓일 때 실행하는 동작 2
...
- if 문의 오른쪽에 조건문을 작성한다. 조건문의 마지막에는 반드시 콜론(:)을 붙인다.
- 조건문은 True 혹은 False로 평가되며, 비교 연산자와 논리 연산자를 사용해서 작성할 수 있다.
- 조건문이 True인 경우 if 문 아래 동작이 실행되고, False인 경우 else 문 아래 동작이 실행된다.
1-2. 들여쓰기(indentation)
- 파이썬은 코드의 구분을 위해 들여쓰기를 사용한다.
- 들여쓰기는 4 spaces 혹은 1 tab으로 표현한다.
- if 혹은 else 문에 포함되는 동작들은 반드시 들여쓰기를 해야한다. 들여쓰기를 하지 않은 동작들은 조건에 상관없이 항상 실행된다.
if 조건문:
조건문이 참일 때 실행하는 동작 1
조건문이 참일 때 실행하는 동작 2
else:
조건문이 거짓일 때 실행하는 동작 1
조건문이 거짓일 때 실행하는 동작 2
조건문과 상관없이 무조건 실행하는 동작 1
조건문과 상관없이 무조건 실행하는 동작 2
1-3. 예시
1. 기본적인 조건문의 형태
- 조건문이 True로 평가되면 if 문 아래에 있는 코드가 실행된다.
if True:
print("조건이 참입니다.")
else:
print("조건이 거짓입니다.")
조건이 참입니다.
- 조건문이 False로 평가되면 else 문 아래에 있는 코드가 실행된다.
if False:
print("조건이 참입니다.")
else:
print("조건이 거짓입니다.")
조건이 거짓입니다.
- 들여쓰기를 하지 않은 코드는 if, else 문과 관계가 없으므로 무조건 실행된다.
if True:
print("조건이 참입니다.")
else:
print("조건이 거짓입니다.")
print("무조건 실행됩니다.")
조건이 참입니다.
무조건 실행됩니다.
2. 비교 연산자와 논리 연산자를 활용한 조건문
- 비교 연산자의 결괏값은 True, False로 평가되므로 이를 이용해 조건문을 만들 수 있다.
if 2 < 5:
print("5가 2보다 큽니다.")
else:
print("2가 5보다 큽니다.")
5가 2보다 큽니다.
number = 3
if number % 2 == 0:
print("짝수 입니다.")
else:
print("홀수 입니다.")
홀수 입니다.
- 논리 연산자를 추가적으로 활용하여 다양한 조건문을 만들 수 있다.
name = "kyle"
age = 20
if name == "kyle" and age == 20: # True and True 이므로 조건문은 True로 평가
print("20살의 kyle님 안녕하세요!")
else:
print("처음 뵙겠습니다.")
20살의 kyle님 안녕하세요!
name = ""
if not name: # not False 이므로 조건문은 True로 평가 (빈 문자열은 False로 평가됨)
print("이름이 비었습니다.")
else:
print("이름이 비어있지 않습니다.")
이름이 비었습니다.
2. 다중 조건문
2-1. if 문 안의 또 다른 if 문
- 지금까지는 하나의 조건에 따라 if와 else로만 나누어진 상황을 보았다. 조건이 여러 개가 있다면 어떻게 표현할 수 있을까?
- 아래의 조건들을 if, else를 사용하여 표현해보자.
만약 변수 age가
1) 30 이상이라면 “30대입니다.”를 출력한다.
2) 30 미만이지만 20 이상이라면 “20대입니다.”를 출력한다.
3) 20 미만이라면 "미성년자입니다."를 출력한다.
- if 문을 중첩된 형태로 작성하여 아래와 같이 표현할 수 있다.
age = 15
if age >= 30:
print("30대입니다.")
else:
if age >= 20:
print("20대입니다.")
else:
print("미성년자입니다.")
미성년자입니다.
2-2. elif
- 조건이 여러 개일 때 if, elif, else를 이용해서 더욱 가독성 있게 다중 조건문을 표현할 수 있다.
- elif는 else if의 줄임말로써, 위의 조건을 만족하지 않았을 때 추가로 조건을 판별하도록 도와준다.
- 이전에 중첩으로 작성했던 조건들을 if, elif, else를 이용해서 더욱 가독성 있게 개선할 수 있다.
만약 변수 age가
1) 30 이상이라면 “30대입니다.”를 출력한다.
2) 30 미만이지만 20 이상이라면 “20대입니다.”를 출력한다.
3) 20 미만이라면 "미성년자입니다."를 출력한다.
age = 15
if age >= 30:
print("30대입니다.")
elif age >= 20:
print("20대입니다.")
else:
print("미성년자입니다.")
미성년자입니다.
- elif를 여러 번 작성하여 조건을 더욱 추가할 수 있다.
만약 변수 age가
1) 30 이상이라면 “30대입니다.”를 출력한다.
2) 30 미만이지만 20 이상이라면 “20대입니다.”를 출력한다.
3) 20 미만이라면 10 이상이라면 "10대입니다."를 출력한다.
4) 10 미만이라면 "응애입니다."를 출력한다.
age = 7
if age >= 30:
print("30대입니다.")
elif age >= 20:
print("20대입니다.")
elif age >= 10:
print("10대입니다.")
else:
print("응애입니다.")
응애입니다.
'Python' 카테고리의 다른 글
반복문(Loop) (1) | 2024.03.23 |
---|---|
컨테이너(Container) 자료형 (1) | 2024.03.23 |
연산자(Operators) (1) | 2024.03.17 |
사용자 입력(input)과 출력(print) (0) | 2024.03.17 |
변수(Variables) (0) | 2024.03.17 |