본문 바로가기
Programming/Python

if/else, 그리고 while루프문

by owllight 2014. 2. 4.

프로그램을 만들다 보면 수많은 경우의 수를 생각해야할 때가 생깁니다.
상황에 따라 다양하게 작동하게끔 프로그램을 만들기 위해선 분기문을 사용하시면 됩니다!
대표적인 분기문으로 ifelse가 있습니다.

 if

먼저 if문에 대해서 알아보자면,
영어에서 if처럼 조건문으로서 '만약 ~한다면'이라는 의미를 지니고 있습니다.
if문에 해당하는 조건이 참이면 if에 속하는 코드를 실행시키고, 아니면 건너뛰는 역할을 하고 있습니다.

 else

else는 if와 같이 쓰이는 분기문으로써 if문의 조건이 거짓일 경우를 담당합니다.
즉, 원하는 조건이 참(True)값이면 if문에 속하는 코드를,
거짓(False)값이면 else문에 속하는 코드를 실행
하게 되는 논리랍니다. 자주 쓰이는 코드입니다!

간단한 예를 들어 익혀봅시다:)

if fuel>3 :
    print("It`s OK")
    print("You can drive downtown.")
else:
    print("Sorry..")
    print("You don`t have enough fuel")
print("what`s next?")  

Python에서는 들여쓰기로 코드들을 서로 연결시킵니다. 그러므로 Python에서 코드를 작성할 때,
※들여쓰기에 주의하세요!!
if/else문도 조건에 따라 코드를 실행하기 위해서 각각 속할 코드들을 들여쓰기로 묶습니다.
간단히 tab키를 누르면 예쁘게 들여쓰기가 된답니다:)
콜론(:)을 쓰고 엔터키를 치면 Python에서는 자동으로 들여쓰기를 해주지만요..
아, if/else를 사용할 때, 콜론(:)을 까먹지 마세요!! 일종의 문법입니다~


자, 위의 코드는 차를 끌고 시내로 갈 수 있을지 결정해주는 코드입니다!
한줄한줄 해석해보면..
if문에서 연료(fuel)가 3보다 크면 들여쓰기로 속한 아래의 코드들을 실행하게 됩니다.
시내로 갈 수 있다고 알려주네요~

그 외, 즉 연료(fuel)가 3보다 작거나 같으면 else문에서 시내로 갈 만큼 연료가 충분하지 않다고 알려줍니다.

마지막 print코드는 들여쓰기가 되어있지 않으므로 if와 else에 속해있지 않습니다.
고로 늘 실행하게 되는겁니다!

조금 더 응용된 예를 들자면

if fuel>3 :
    print("It's OK")
    print("You can drive downtown.")
else:
    if money>10000 :
        print("You should buy some gas.")
    else:
        print("You better stay home..")
print("what's next?")  

분기문에 또 분기문이 들어간 형태의 코드입니다! 단지 두번째 분기문을 한단계 더 들여쓰기만 하면 됩니다.
전혀 어려운 코드가 아니므로 해석해봅시다:>
else에 if/else분기문이 들어간 모양인데 두번째 분기문을 보면
돈(money)이 10000보다 크면 기름을 넣으라고 충고해줍니다. 그 외에는 집에 있는게 좋겠다고 말합니다...

이번에는 같은 코드를 여러번 반복해서 실행해야 할 때 사용하는 루프문에 대해서 알아봅시다.
Loop 란 '고리'란 뜻으로 원형으로 되어있어서 같은 자리를 맴돈다는 의미로 '반복'을 뜻하기도 합니다.
Python에서도 이 뜻을 지녀 루프문의 조건이 참이면 주어진 코드 부분을 원하는 횟수만큼 반복합니다.


 while

이번에는 루프문 중에서도 가장 간단한 while에 대해 예를 보면서 알려드리겠습니다:)

answer = "no"
while answer == "no" :
    answer = input("Are we there?")
print("we're there!")

루프는 조건이 참이 되어야만 실행되기 때문에 answer 변수의 초기값을 'no'로 설정합니다.
그러면 조건이 성립하여 while에 속하는 코드가 실행되어 사용자에게 Are we there?라고 묻습니다.
거기에 있냐는 물음이네요.. 대답해줍시다.
만약 no라고 대답하면 다시 물어옵니다. 조건이 참이기 때문이죠.
하지만 no가 아닌 다른 대답을 한다면 루프문을 빠져나와 다음 코드로 넘어갑니다.
we're there!이라고 외치게 되는겁니다! 여기서도 콜론(:)을 잊지맙시다:>


루프문은 while 말고도 for 등등 이 있습니다. '반복이면 한 종류만 있으면 되는거 아닌가?' 아닙니다.
반복에도 무한반복이 있고 유한반복이 있습니다. 종류가 다양하죠.
while은 조건이 거짓이 될 때 까지 반복하는 부정무한..이 되겠습니다. 횟수가 정해져있지 않다는 말입니다.
다른 루프문에 대해서는 차후에 알려드리도록 하겠습니다.

그럼 마지막으로 오늘 배운것을 통합 해볼까요?:D

print("Welcome!")
guess=0
while guess !=5 :
    g=input("Guess the number: ")
    guess = int(g)
    if guess ==5 :
        print("You win!")
    else:
         if guess>5 :
            print("too high..")
        else:
            print("too low..")
print("Game over.")

간단한 숫자 맞추기 게임입니다!
세번째 줄의 != 서로 값이 다름을 나타내는 비교연산자 입니다. 비교연산자에는 다음과 같은 종류가 있습니다.

a>b

a가 b보다 크다

a>=b

a가 b보다 크거나 같다

a<b

a가 b보다 작다

a<=b

a가 b보다 작거나 같다

a==b

a와 b가 같다

a!=b

a와 b는 다르다

 

오늘은 여기까지 입니다! 수고하셨습니다:>

댓글