파이썬 코드를 작성하다 보면 굉장히 자주 사용하는 코드가 조건문입니다. 기본적인 내용을 정리하였습니다.
조건문 if
영어에서 if는 "만일 ~하다면"입니다. 파이썬에서 if문은 주어진 조건에 따라서 프로그램의 흐름이 다르게 흘러가도록 조절해줍니다.
그런 의미에서 조건문(conditional statement) 또는 분기문(branching statement)라고 부릅니다.
if는 단독으로 사용될 수도 있고 else나 elif와 함께 사용될 수도 있습니다. if문은 if와 콜론 사이의 표현식이 True로 계산되면
블럭(block)을 실행을 하고 False로 계산되면 실행을 하지 않습니다.
if 조건:
조건이 True이면 실행될 명령문들
else:
조건이 False이면 실행될 명령문들
파이썬에서는 들여쓰기(indentation)로 인한 여백 수가 같은 줄들이 나열되어 있으면
묶어서 한 블럭으로 생각합니다. 블록 안에는 당연히 다양한 종류의 명령문들이 들어갈 수 있습니다.
if문의 기본적인 사용법
if와 콜론 사이에 True나 False로 계산될 수 있는 표현식을 적어줍니다.
if True:
print("항상 출력됩니다.")
항상 출력됩니다.
if False:
print("출력되지 않습니다.")
if 100 > 10:
print("항상 출력됩니다.")
항상 출력됩니다.
if 100 <= 10:
print("출력되지 않습니다.")
# 조건에 변수가 포함되는 경우 False 이므로 실행이 되지 않습니다.
num = -1
if num > 3:
print("3보다 큽니다.")
num = -1
if num < 0:
print("0보다 작습니다.")
0보다 작습니다.
[실습] 입력받은 문자열이 "딸기"이면 "딸기가 좋아!"를 출력합니다. 그렇지 않다면 아무것도 하지 않습니다.
동등 연산자(==)로 두 문자열이 같은지 비교할 수 있습니다.
user_input = input("문자열을 입력해주세요: ")
if user_input == "딸기" :
print("딸기가 좋아!")
# 그 외에는 아무것도 하지 않습니다.
문자열을 입력해주세요: 딸기
딸기가 좋아!
user_input = input("문자열을 입력해주세요: ")
if user_input == "딸기" :
print("딸기가 좋아!")
# 그 외에는 아무것도 하지 않습니다.
문자열을 입력해주세요: 바나나
else문의 사용법
영어에서 else는 "그렇지 않으면"의 의미로 사용됩니다.
파이썬에서는 else를 사용하면 if에서 조건을 만족하지 않았을 때 할 일을 추가할 수 있습니다.
if True:
print("True!")
else:
print("False!")
True!
if False:
print("True!")
else:
print("False!")
False!
[예시] 입력받은 숫자가 10보다 크면 "10보다 큽니다"를 출력하고 그렇지 않으면
"10보다 크지 않습니다"를 출력하는 프로그램을 만들어보세요.
주의: 모든 경우에 대해 제대로 작동하는지 확인해야 합니다.
흐름 제어 없이 print()만 추가해서는 모든 경우를 구현할 수 없어요.
num = int(input("정수를 입력해주세요:"))
if num > 10:
print("10보다 큽니다.")
print("10보다 크지 않습니다.")
정수를 입력해주세요:5
10보다 크지 않습니다.
# 입력값이 10보다 큰 경우 문제가 발생합니다.
num = int(input("정수를 입력해주세요:"))
if num > 10:
print("10보다 큽니다.")
print("10보다 크지 않습니다.")
정수를 입력해주세요:11
10보다 큽니다.
10보다 크지 않습니다.
if문을 하나 더 사용하는 방법
num = int(input("정수를 입력해주세요:"))
if num > 10:
print("10보다 큽니다.")
if not num > 10:
print("10보다 크지 않습니다.")
정수를 입력해주세요:6
10보다 크지 않습니다.
num = int(input("정수를 입력해주세요:"))
if num > 10:
print("10보다 큽니다.")
if not num > 10:
print("10보다 크지 않습니다.")
정수를 입력해주세요:77
10보다 큽니다.
num = int(input("정수를 입력해주세요:"))
if num > 10:
print("10보다 큽니다.")
# not을 없애고 부등호를 바꾸기
if num <= 10:
print("10보다 크지 않습니다.")
정수를 입력해주세요:89
10보다 큽니다.
num = int(input("정수를 입력해주세요:"))
if num > 10:
print("10보다 큽니다.")
# not을 없애고 부등호를 바꾸기
if num <= 10:
print("10보다 크지 않습니다.")
정수를 입력해주세요:3
10보다 크지 않습니다.
if-else를 사용하면 코드도 간결해지고 비교 연산도 줄일 수 있어요.
num = int(input("정수를 입력해주세요:"))
if num > 10:
print("10보다 큽니다.")
else:
print("10보다 크지 않습니다.")
정수를 입력해주세요:4
10보다 크지 않습니다.
num = int(input("정수를 입력해주세요:"))
if num > 10:
print("10보다 큽니다.")
else:
print("10보다 크지 않습니다.")
정수를 입력해주세요:15
10보다 큽니다.
홀수 짝수 구분하기
사용자로부터 정수 하나를 입력 받고 그 수가 홀수라면 "홀수" 짝수라면 "짝수"라고 출력해봅시다.
힌트: 정수를 2로 나눠서 나머지가 0이면 짝수이고 1이면 홀수입니다.
num = int(input())
if num % 2 == 1:
print("홀수")
else:
print("짝수")
6
짝수
elif의 사용법
if와 else를 이용하면 한 가지 조건을 만족하거나 만족하지 못하는 두 가지 경우에 대해
흐름을 제어할 수 있었습니다.elif를 이용해서 더 다양한 조건을 추가할 수 있습니다. elif는 else + if입니다. 한 조건을 만족시키지 못했을 경우에
새로운 조건을 추가로 따져볼 수 있습니다.
if 조건1:
조건1이 True일때 실행될 명령문(들)
elif 조건2:
조건1이 False이고 조건2가 True일때 실행될 명령문(들)
elif 조건3:
조건1과 조건2가 모두 False이고 조건3이 True일때 실행될 명령문(들)
else:
위의 모든 조건들이 False일때 실행될 명령문(들)
elif: 개수에는 제한이 없습니다. 필요한 만큼 추가할 수 있으나
가독성과 유지보수를 고려하면 아무래도 적을수록 좋겠지요.
마지막의 else:는 필수는 아니지만 추가할 경우 어떤 조건도
만족시키지 못했을 경우에 대해서도 대비할 수 있습니다.
[예시] 정수를 입력받아서 1이면 "숫자 1입니다.", 2이면 "숫자 2입니다.", 그 외에는 "모르는 숫자입니다."를 출력해보세요.
# elif 없이 if-else로 구현한 경우
num = int(input("숫자를 입력하세요:"))
if num == 1:
print("숫자 1입니다.")
else:
if num == 2:
print("숫자 2입니다.")
else:
print("모르는 숫자입니다.")
숫자를 입력하세요:1
숫자 1입니다.
num = int(input("숫자를 입력하세요:"))
if num == 1:
print("숫자 1입니다.")
if num == 2:
print("숫자 2입니다.")
# if num != 1 and num != 2:
# print("모르는 숫자입니다.")
if not (num == 1 or num == 2):
print("모르는 숫자입니다.")
# if not (1 <= num <= 2):
# print("모르는 숫자입니다.")
숫자를 입력하세요:2
숫자 2입니다.
num = int(input("숫자를 입력하세요:"))
if num == 1 or num == 2:
if num == 1:
print("숫자 1입니다.")
else:
print("숫자 2입니다.")
else:
print("모르는 숫자입니다.")
숫자를 입력하세요:3
모르는 숫자입니다.
num = int(input("숫자를 입력하세요:"))
if num == 1:
print("숫자 1입니다.")
elif num == 2:
print("숫자 2입니다.")
else:
print("모르는 숫자입니다.")
# 숫자 3에 대해서 경우를 추가한다면?
숫자를 입력하세요:1
숫자 1입니다.
num = int(input("숫자를 입력하세요:"))
if num == 1:
print("숫자 1입니다.")
elif num == 2:
print("숫자 2입니다.")
elif num == 3:
print("숫자 3입니다.")
else:
print("모르는 숫자입니다.")
# 숫자 3에 대해서 경우를 추가한다면?
숫자를 입력하세요:3
숫자 3입니다.
입력에 따라서 서로 다른 문장 출력하기
어떤 입력에 어떤 문장을 출력할지는 아래 표를 참고하세요.
아래 표에 없는 입력이 들어왔을 경우에는 "알 수 없습니다."를 출력합니다
문자열이 같은지는 비교 연산자 ==를 사용하시면 됩니다.
| 입력 | 출력 |
|---|---|
| 사과 | 사과는 맛있어 |
| 기차 | 기차는 빨라 |
| 바나나 | 바나나는 길어 |
msg = input()
if msg == "사과":
print("사과는 맛있어.")
elif msg == "기차":
print("기차는 빨라.")
elif msg == "바나나":
print("바나나는 길어.")
else:
print("알 수 없습니다..")
기차
기차는 빨라.
사전(dict)을 이용한 풀이
my_dict = {"기차": "기차는 길어", "바나나": "바나나는 맛있어"}
word = input()
print(my_dict.get(word, "알 수 없습니다."))
# get() 메써드의 기본값이 else: 역할을 합니다.
바나나
바나나는 맛있어
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
'수학과 코딩' 카테고리의 다른 글
| 파이썬[python] 반복문[for, while] 안에서 반복문 사용하기 (0) | 2022.07.30 |
|---|---|
| 파이썬 python 프로그램 흐름 제어(flow control) 반복문(for) (0) | 2022.07.29 |
| 파이썬(python) 표현식과 문장의 뜻 불리언(boolean) 자료형 (0) | 2022.07.28 |
| 파이썬(python) 컨테이너(container)딕셔너리(dictionary) 총 정리 (0) | 2022.07.27 |
| 파이썬(python)컨테이너(container) 집합(set) 사용법 및 특징 (0) | 2022.07.27 |
댓글