프로그램은 시작이 있고 종료가 있습니다.
소스코드에서 한 줄을 문장이라고 합니다. 프로그램은 첫번째 문장을 시작하여 마지막 문장까지 실행된 후 종료합니다.
일방향으로 진행되는 프로그램보다 다양한 가능성을 만들 수 있는 프로그램이 더 유용합니다.
파이썬에서는 프로그램을 유용하게 만들 수 있는 장치로 if 문이 있습니다. if문을 사용하면 프로그램의 조건식을 검사하여 한개의 길이 아닌 여러 갈래의 길을 만들어 낼 수 있습니다.
이번 포스팅에서는 파이썬 if문에 대하여 알아봅니다.
파이썬 if문
목차
if를 영어시간에 배웠다면 뜻을 알 것 입니다. 우리말로는 … 한다면 의 가정의 뜻입니다.
예제 코드를 보겠습니다.
hungry = True if hungry: print("밥을 먹습니다.") else: print("밥을 먹지 않습니다.")
밥을 먹습니다.
hungry 변수가 True 입니다. if문에서 hungry 를 검사하여 True 면 if 안의 들여쓰기 블록을 실행합니다. 검사결과가 False 면 else 의 들여쓰기 블록을 실행합니다.
매우 간단한 원리입니다.
if 문이 하는 일은 yes와 no를 판별해서 다른 코드를 실행시키는 것 입니다.
프로그램에서는 yes 대신 True, no대신에 False 를 사용하는 것 입니다. True 와 False 를 불린형이라고 하는데 잘 알아둘 필요가 있습니다.
파이썬 뿐만 아니라 다른 언어에도 if문이 있는데 문법적 차이는 있지만 True False 판별에 의한 분기를 한다는 부분에서 같습니다.
순서도로 그려보면 이해하기가 쉽습니다. 어려울 것은 없죠? if문은 참과 거짓을 구분할 뿐입니다.
예제를 하나 더 보겠습니다.
score = 91 if score > 90: print("합격입니다") else: print("불합격입니다")
합격입니다
이번에는 조건문에 비교연산을 했습니다.
비교연산이란 변수간의 크기를 비교하는 연산을 말합니다.
score 가 91이니 90보다 큽니다. 표현식에서 평가하는 결과가 True 입니다. Yes 라는 거죠. 블록의 코드가 실행됩니다.
비교연산자는 수학기호와 비교하면 조금 차이가 있습니다.
파이썬 비교연산자
비교연산자 | 내용 |
---|---|
a < b | a가 b보다 작다 |
a > b | a가 b보다 크다 |
a == b | a와 b가 같다 |
a != b | a와 b가 같지 않다 |
a >= b | a가 b보다 크거나 같다 |
a <= b | a가 b보다 작거나 같다 |
비교연산자는 연산이 끝난 후 True 아니면 False를 반환합니다. 저 위에 내용들을 기준으로 평가합니다.
예를 들어 3 > 7 은 3이 7보다 크지 않으니까 False 가 됩니다. !10 == 7 은 10은 7과 같지 않기 때문에 True 입니다.
파이썬 if break문
if는 이전학습에서 배운 for 반복문과 while 반복문과 함께 사용될 수 있습니다.
if break 문은 if문이 중첩되있는 루프를 탈출하는데 사용할 수 있습니다.
running = True count = 0 while running: print("*, ", end='') if count == 4: break count += 1
*, *, *, *, *,
위 예제는 별과 쉼표를 다섯개 출력합니다. while 은 무한 루프지만 비교연산자에 의하여 count 가 4가 되었을 때 False 가 되고 break는 while 문을 종료합니다.
if문을 중첩해서 사용하면 더 많은 경우의 수를 만들어 낼 수 있습니다. 이제 프로그램은 첫번째 문장에서 시작하여 마지막 문장에서 끝나지 않아도 됩니다.
파이썬 if문은 프로그램이 다양한 자유도를 갖게 합니다.
elif문
if와 else를 사용해서 yes와 no 같이 이분법적 질문에 답을 할 수 있었습니다. 그런데 답이 세개이면 어쩔까요? 네개, 다섯개이면?
경우의 수는 더 늘어날 수 있습니다.
이럴 때 elif 를 사용하면 다양한 갈래를 만들어 낼 수 있습니다.
color ="green" if color == "red": print("빨간색입니다") elif color == "green": print("초록색입니다") elif color == "blue": print("파란색입니다") else: print("무슨색인지 모르겠네요")
초록색입니다
위의 코드는 if 부터 조건식을 검사하며 내려옵니다.
if –> elif –> elif –> else
이런 식으로 위에서부터 하나의 조건식이 True 면 그 안의 블록을 실행시키고 elif 문을 종료시킵니다.
중요한 것은 한개가 맞으면 실행하고 종료하기 때문에 그 뒤에 혹시 참인 경우가 또 있더라도 실행이 안됩니다.
elif 의 갯수를 늘리는 것은 상관이 없습니다. 허나 너무 많이 사용하면 코드의 가독성이 떨어집니다.
파이썬의 제어문
다양한 제어문들을 보겠습니다.
# -------------------------- if 1: print("True") # -------------------------- if 0: print("Zero") else: print("is not Zero") # -------------------------- if 0: print("Zero") elif 1: print("elif 1") else: print("default") # -------------------------- if 1: if 1: print("nested if") # -------------------------- count = 0 while 1: print("while", count, end=", ") count +=1 if count > 4: break print() # -------------------------- for i in range(5): print(i, end=", ") if i == 2: print("if statment")
True is not Zero elif 1 nested if while 0, while 1, while 2, while 3, while 4, 0, 1, 2, if statment 3, 4,
위의 코드를 보면 알 수 있지만 if 제어문을 혼자만 사용하지 않습니다.
중첨된 코드를 사용하고 while과 for 루프와도 함께 사용합니다.
여기 나온 모든 형태를 외우라는 것은 아닙니다. 다양한 형태로 응용가능하다는 것을 알고 있으면 충분합니다.
요약
파이썬 if문의 기본적인 내용을 알아봤습니다. 제어문인 while과 for 루프와도 연관된 문법을 알고 있어야 합니다.
파이썬에서는 위에 나온 방법 말고도 코드의 유연성을 높여주는 것들이 많습니다. 하나의 포스팅에 모두 담을 수는 없고 또 문법을 외운다고 되는게 아닙니다.
초반에는 이해를 좀더 한 후에 실습을 하면 좋습니다.