티스토리 뷰

Backend-dev/python

파이썬의 조건문(if)

RunningWater 2018. 4. 2. 18:13

조건문을 왜 사용할까요?

조건문은 조건을 충족시키면 구문을 실행시키고, 충족하지 않으면 구문을 실행시키지 않습니다. 이런 특성에서 알 수 있듯이 조건에 따라서 프로그램을 다르게 실행하려고 할 때 조건문을 사용합니다.

조건문 if 사용해보기

불리언을 다룰 때 조건문을 사용했던 것을 기억하시나요?

if(True):
    print("hello world")


조건이 참일 때 구문이 실행됩니다. 해당 예제에서는 True라는 값을 주었으니 항상 "hello world"라는 구문이 커맨드 창에 나타날 것입니다. 반대로 False라는 값을 주었다면 프린트문은 실행되지 않겠죠? 조건이 "거짓"일 때 구문을 실행시킬 수 있는 방법도 있을까요? if문과 함께 else를 사용하면 조건이 거짓일 때 구문을 실행시킬 수도 있습니다.


if(False):
    print("hello world")
else:
    print("hell world")


if문에 False라는 값을 주었기 때문에 if문은 실행되지 않습니다. if문이 실행되지 않을 때 else문은 실행됩니다.


파이썬은 들여쓰기가 중요한 언어입니다. 저는 보통 스페이스를 4번 사용합니다.

비교연산자 알아보기

True나 False값을 실제로 주는 일은 없습니다. 조건에 따라서 달라져야 진짜 조건문이라고 할 수 있겠죠. 조건문과 함께 많이 사용하는 연산자엔 비교연산자가 있습니다. >, < ,<=, >=, ==, != 등이 있습니다. !=은 비교해서 값이 다를 경우 True를 반환합니다. 비교 연산자를 통해서 조건문을 수정해볼까요?


x=10
y=13

if(x>10):
    print("hello world")
else:
    print("hell world")

#"hell world"


x의 값은 10이기 때문에 if문은 실행되지 않고, else문이 실행됩니다. 만약 x대신 y가 들어갔다면 if문이 실행되었겠죠?

and, or, not 연산자와 함께 사용하기

불리언 값을 다루면서 and와 or을 설명했었습니다. 두 값이 모두 참이여야 and는 참을 반환했고, or은 둘 중 하나만 참이어도 참을 반환했습니다. not은  참일 때는 거짓을, 거짓일 때는 참을 반환합니다. 즉 값의 불리언 값을 반대로 반환합니다. not을 예로 들어보겠습니다.

z = {}

if(not z): #z는 Falsy이기 때문에 not z는 true가 됨
    print("lemon")
else:
    print("candy")


불리언을 설명하면서 비어있는 자료형은 거짓으로 생각된다고 설명한 것이 기억나시나요? 그래서 해당 구문을 실행시키면 "lemon"이라고 커맨드 창에 나오게 됩니다.

조건이 여러개일 때는 elif

조건이 항상 2개만 나올 수는 없습니다. 4개가 될 수도 있고, 5개가 될 수도 있습니다. 그럴때는 elif를 사용하면 됩니다. 만약 카페에서 3천원을 가지고 커피를 사먹는다고 생각해봅시다. 메뉴판을 보니 프라푸치노는 5500원, 카페모카는 4300원, 카페라떼는 3900원, 아메리카노는 2900원입니다.

my_money = 3000
frappuccino = 5500
cafemoca = 4300
cafelatte = 3900
americano = 2900

if(my_money>frappuccino):
    print('i love frappuccino')
elif(my_money>cafemoca):
    print('i love cafemoca')
elif(my_money>cafelatte):
    print('i love latte')
elif(my_money>americano):
    print('i love americano')
else:
    print('get out of here')


순서대로 조건문을 내려가다가 가진 돈이 아메리카노의 가격보다는 높기 때문에 'i love americano'라는 구문이 나옵니다. 만약 제가 가진돈이 2800원 이라면 위의 모든 구문이 다 거짓이기 때문에 else 구문이 실행되게 됩니다.

댓글