파이썬/파이썬기초

파이썬 제어문 - 조건문(if, elif, else)

땅콩아놀자 2022. 10. 18. 17:49
반응형

조건문

조건문은 특정 조건일 때 코드를 실행하는 문법입니다.

주어진 조건을 판단하여,

해당 조건이 참일 때와 거짓일 때 맞는 명령문을 수행하는 것입니다.

 

기본 문법

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
>>> 음수네요.
반응형