대부분의 프로그램은 사용자에게 선택을 요구한다.
프로그래밍의 핵신 제어구조에서 가장 간단하고도 중요한 조건문.
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('바나나 바바나나!') => 조건식이 참이면 실행할 코드.
조건식이 참이라면? |
- if people < banana / 5:
- print('바나나 바바나나!)
#다른 코드
조건식이 참이라면 -> 4칸 들여 쓴 코드를 실행함.
조건식이 거짓이라면? |
- if people < banana / 5:
-
print('바나나 바바나나!) - #다른 코드
조건식이 거짓이라면 아무 일도 하지 않고 다른 코드로 넘어가게 된다.
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:
이건 뭐 설명할 필요가 있나?
그냥 코딩을 모르는 사람이 봐도 설명 가능하다.
'만약 , people이 banana 보다 크다면(>)'이다.
피플의 값이 6, 바나나 값이 5 이므로. 피플이 크다.
그래서 이 식은 참이 되고. 섬뜩한 결과를 출력하게 된다.
'사람이 많습니다. 몇 명을 제거하여 바나나를 먹기 위한 밸런스를 맞추십시오'
결과적으로 사람이 바나나보다 많으므로 6명이 바나나 5개를 가장 효율적(?), 이상적(?)으로 모든 사람이 만족하게 하나씩 먹으려면.
1명이 제거되면 된다....
if를 더 잘 다루려면 이것만 잘 기억해두어도 도움이 된다.
1. if (if 키워드)
2. 조건식
3. : (콜론)
4. ____#들여 쓰기 된 코드
각각 어떻게 배치되고 어떤 역할을 하는지 잘 봐 두고 익숙해지면
이런 패턴은 파이썬 코드에 자주 나오므로 코드 리딩에 도움이 될 것이다.
다음 글은 아마 조건식에 대해 추가로 다룰 예정이다.
'파이썬 공부' 카테고리의 다른 글
9.블록(Block) / 비트코인 블록(?) (0) | 2020.03.11 |
---|---|
8. 조건식(기초) (0) | 2019.08.28 |
6.shell 및 터미널 사용법(기초) (0) | 2019.08.16 |
5.파이썬 REPL 기초 (pwnable fd 풀이 포함) (0) | 2019.08.13 |
4.파이썬 숫자와 문자열(기초) (0) | 2019.08.12 |