본문 바로가기

파이썬 공부

7.if문(기초)

728x90
반응형
SMALL

이미지 출처: https://wikidocs.net/images/page/3084/4.02.png

대부분의 프로그램은 사용자에게 선택을 요구한다.

프로그래밍의 핵신 제어구조에서 가장 간단하고도 중요한 조건문.

 

if문은 조건문이다.

 

만약 주어진 조건에 맞는 true면 실행하고 맞지 않는 false면 실행하지 않는다.

가령 워드 작업 중 저장 버튼을 누른다고 생각해보자.

그럼 저장 옵션 팝업이 뜨며 저장을 임의의 이름대로 기본 위치에 저장할지 아님 다른 이름으로 저장을 할지 등의 옵션이 뜰 것이다.

여기서 사용자는 '선택'을 하게 되는데.

파이썬에서도 이 선택의 기능을 하는 것이 바로 이 조건문에 해당하는 if문이다.


if의 역할은 조건에 맞는 경우에만 실행하는 코드를 만드는 것이다.

그럼 우리도 코드를 만들어보자. 이름은 ifbanana.py 면 된다.

people = 3
banana = 20

if people < banana / 5:
	print('바나나 바바나나!')
    
if banana % people > 0:
	print('바나나 수가 맞지 않습니다. 몇개는 잘라 나누십시오')
    
if people > banana:
	print('사람이 많습니다. 몇명을 제거하여 바나나를 먹기위한 밸런스를 맞추십시오')

귀엽고 섬뜩한 바나나 코드이다.

우선 실행해보자.

바나나 바바나나!

https://www.youtube.com/watch?v=HHLTBf5X1Lc
바나나 바바나나!

왜 결과가 이렇게 나왔을까?

 

if people < banana / 5: #여기서 <탭> 키 누름

    print('바나나 바바나나!') #4칸이 들여써짐

 

if => 조건문의 시작 (예약어)

people < banana / 5 => 실행 여부를 결정하는 조건 (조건식)

: => 조건식 끝에 콜론 기호 (:)

   => 4칸 들여 쓰기 (키보드의 <탭> 키)

print('바나나 바바나나!') => 조건식이 참이면 실행할 코드.


조건식이 참이라면?
  1. if people < banana / 5:
  2.     print('바나나 바바나나!)
  3. #다른 코드

조건식이 참이라면 -> 4칸 들여 쓴 코드를 실행함.


조건식이 거짓이라면?
  1. if people < banana / 5:
  2.     print('바나나 바바나나!)
  3. #다른 코드

조건식이 거짓이라면 아무 일도 하지 않고 다른 코드로 넘어가게 된다.


ifbanana.py 코드를 살펴보면.

if people < banana / 5:

people을 3

banana를 20으로 변수를 선언하였으므로.

2019/08/11 - [파이썬 공부 (mac OS X)] - 2.파이썬 변수 사용하기(기초)

이 식은 if 3 < banana / 5 가 된다.

바나나에 값을 대입하면 만약 '3'이 '20'을 '5'로 나눈 값 '4'보다 작다면 이 된다.

이 조건식은 3 < 4가 되어 참이 된다.

그 이유는 banana 20개를 5로 나누면 4가 되므로 people이 바나나를 5로 나눈 값보다 작게 되어 식이 참으로 성립된다.

즉 코드가 실행이 된다.


이제 원하는 조건만 표현할 수 있다면, 뭐든 if문을 활용할 수 있게 되었다.

우린 지금 조건을 표현하는 방법 중 하나인 수 대수 비교를 학습한 것이다.

대수 비교는 우리가 국민학교 및 초등학교 때 배운 부등호 기호를 활용하면 된다. (> , < 등)


이제 ifbanana.py의 people, banana 값만 바꾸어서

원하는 결과를 출력시켜보자.

이름은 ifbanana2.py (달라진 건 people, banana 값)

people = 6
banana = 5

if people < banana / 5:
	print('바나나 바바나나!')
    
if banana % people > 0:
	print('바나나 수가 맞지 않습니다. 몇개는 잘라 나누십시오')
    
if people > banana:
	print('사람이 많습니다. 몇명을 제거하여 바나나를 먹기위한 밸런스를 맞추십시오')

응? %가 뭐냐고? 밑을 참조하자.

2019/08/12 - [파이썬 공부 (mac OS X)] - 4.파이썬 숫자와 문자열(기초)

출력 결과를 보자.

오 무서워졌다.

섬뜩한 결과가 나왔다. 코드를 마저 분석해보자.

if banana % people > 0:

이 부분은 % : 나머지 구하기 임을 알면 쉽게 이해 가능한데,

즉 바나나 나누기 피플이 나머지가 없이 딱 떨어지지 않는다면..으로 해석 가능하다.

0보다 큰 값이 나와야 참인데,

바나나 값 5와 피플 값 6을 나누면 나머지가 1이 되므로 0보다 값이 커서 참이 된다.

그래서, 사람 수보다 바나나 수가 적어서 프로그램이 몇 개는 잘라 나누어 먹으라고 알려주는 것이다.

 

이번엔 밑에 코드를 마저 분석해보자.

if people > banana:

이건 뭐 설명할 필요가 있나?

그냥 코딩을 모르는 사람이 봐도 설명 가능하다.

'만약 , peoplebanana 보다 크다면(>)'이다.

피플의 값이 6, 바나나 값이 이므로. 피플이 크다.

그래서 이 식은 참이 되고. 섬뜩한 결과를 출력하게 된다.

'사람이 많습니다. 몇 명을 제거하여 바나나를 먹기 위한 밸런스를 맞추십시오'

결과적으로 사람이 바나나보다 많으므로 6명이 바나나 5개를 가장 효율적(?), 이상적(?)으로 모든 사람이 만족하게 하나씩 먹으려면.

직쏘 랜섬웨어 사진 출처: https://image.ahnlab.com/

1명이 제거되면 된다....


if를 더 잘 다루려면 이것만 잘 기억해두어도 도움이 된다.

 

1. if (if 키워드)

2. 조건식

3. : (콜론)

4. ____#들여 쓰기 된 코드

 

각각 어떻게 배치되고 어떤 역할을 하는지 잘 봐 두고 익숙해지면

이런 패턴은 파이썬 코드에 자주 나오므로 코드 리딩에 도움이 될 것이다.


다음 글은 아마 조건식에 대해 추가로 다룰 예정이다.

반응형
LIST