파이썬 제어문 - 조건문(if, elif, else)
조건문
조건문은 특정 조건일 때 코드를 실행하는 문법입니다.
주어진 조건을 판단하여,
해당 조건이 참일 때와 거짓일 때 맞는 명령문을 수행하는 것입니다.
기본 문법
if 조건문1 :
조건문1이 참일 때 실행할 문장1
조건문1이 참일 때 실행할 문장2
elif 조건문2 :
(조건문1이 거짓일 때 elif 블럭으로 이동)
조건문2가 참일 때 실행할 문장1
조건문2가 참일 때 실행할 문장2
조건문2가 참일 때 실행할 문장2
else :
조건문1, 조건문2가 모두 거짓일 때 실행할 문장1
조건문1, 조건문2가 모두 거짓일 때 실행할 문장2
→ elif, else는 상황에 따라 생략될 수 있고, 첫줄에 if는 무조건 사용해야합니다.
주의해야할 문법
ⓐ조건문 및 else 뒤에 반드시 [콜론(:)]을 써야 합니다.
ⓑ콜론: 이 들어가는 모든 문장에 대해서는 무조건 4칸 들여쓰기를 해줘야합니다.
* (자동 / tab / space 4번) -- 스페이스가 더 안전하긴함
ⓒ조건문이 있는 문장 하위에 속하는 실행문장들은 반드시 한 번 들여쓰기 되어야 한다.
ⓓ각 조건문이 참/거짓일 때 실행되는 문장이 무엇인지 알아야 합니다.
ⓔ조건문의 마지막 줄 else에는 조건문을 작성하지 않습니다.
else는 if와 elif에서 모두 거짓일때,
조건이 그렇지 않으면 실행할 문장으로, 조건문이 아닙니다.
참(True)과 거짓(False)으로 구분되는 문장
ⓐ비교 연산자를 사용한 조건문 : >, <, >=, <=, ==, !=
ⓑ값을 이용한 조건문 : 무조건 참, 무조건 거짓
ⓒ논리 연산자를 사용한 조건문 : and, or, not
ⓓIN 연산자를 사용한 조건문
: 딕셔너리{key:value}나 리스트[ ]에서 무엇이 있는지 찾는거
→ 결과는 True 또는 False으로 나옵니다.
ⓔbool type : True, False 값의 타입
1. if~else 조건문
# if 조건식 :
결과가 True 또는 False로 해석될 수 있는 명령어로 구성해줍니다.
money = True
if money:
print("책을 삽니다.") # 실행이 되고 책을 삽니다. 출력됨
>>> 책을 삽니다.
money = False
if money:
print("책을 삽니다.") # if문 안의 소속, 참 아니고 False이기 때문에 실행되지 않음
else:
print("책을 사지 못했습니다.") #False(거짓)일때 실행되는 문장
print("집에 왔습니다.") # if문안에 없어서 영향 않받고 그대로 실행이 됨 - 조건부 x
>>> 책을 사지 못했습니다.
>>> 집에 왔습니다.
#들여쓰기 안하면 나는 오류 IndentationError: expected an indented block
#if문에 조건이 없을 경우 나는 에러
money = 8000
if (money >= 6000): #괄호를 쓰면 가독성이 더 좋아짐.
print("백반을 먹습니다.")
print("행복하게 집에 갔습니다.") # if 문에서 실행할 문장은 여러줄을 써줄 수 있다.
>>> 백반을 먹습니다.
>>> 행복하게 집에 갔습니다.
#논리 연산자를 사용한 조건
# 아래에 if문을 활용해서 돈이 6000원 이상이면
# "백반을 먹습니다."
# 돈이 1000원 미만으로 있으면 "굶습니다"를 추가해주세요.
# if, elif 를 쓰지 않고 추가해주세요.
money = 500
if (money >= 6000):
print("백반을 먹습니다.") #false 로 elif로 넘어감
elif (money >= 1000):
print("컵라면을 먹습니다.") #elif의 조건문이 true로 컵라면을 먹습니다가 실행됨
else:
print("굶습니다.")
>>> 굶습니다.
# not 키워드를 이용해 논리연산자 뒤집기
money = 5000
if not money > 7000: # money = 5000> 7000 -> False 로 나오는데, not False 로 True
print("컵라면을 먹습니다.") # True이기 때문에 "컵라면을 먹습니다." 가 실행된다.
else: # not 이면 ~~가 안한가요? 로 해석됨
print("제육볶음을 먹습니다.")
>>> 컵라면을 먹습니다.
# in키워드를 사용한 조건문
reward = ['상범', '상효', '상철'] #당첨자
if ('종훈' in reward): #리워드라는 배열안에 '종훈'이 있는지 확인한다.
print("경품을 받습니다.") # False로 print문이 실행되지 않음.
else:
print("경품이 없습니다.")
>>> 경품이 없습니다.
2. elif 조건문
if문
에 elif
를 사용하는데 있어 개수에 제한이 없습니다.
여러 개의 조건문이 존재할 경우 각각의 시작 조건을 별도로 작성하지 않아도 자동으로 생성이 됩니다.
If <조건문1>:
<수행할 문장1>
<수행할 문장2>
elif <조건문2>:
<수행할 문장1>
<수행할 문장2>
elif <조건문3>:
<수행할 문장1>
<수행할 문장2>
... (원하는 만큼 elif문 작성 가능)
else:
<수행할 문장1>
<수행할 문장2>
#주어진 정수가 양수인지 음수인지 0 인지 판멸하는 조건문
a='음수네요.'
integer = int(input('판별할 정수를 넣어주세요.'))
if(integer > 0):
print('양수입니다.')
elif(integer == 0):
print('0입니다.')
else:
print(a)
>>> 판별할 정수를 넣어주세요.-1
>>> 음수네요.