파이썬(python) 조건문(if.elif, else) 사용 방법 정리
파이썬 코드를 작성하다 보면 굉장히 자주 사용하는 코드가 조건문입니다. 기본적인 내용을 정리하였습니다.
조건문 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: 역할을 합니다.
바나나
바나나는 맛있어
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.