yeon-coding
3.Conditional sentence 본문
contents
1. 기본 if 문
1-1. if 문
1-2. if~else 문
2. 중첩 if문
2-1. if~else~if~else문
2-2. if~elif~else문
2-3. 삼항연산자를 이용한 if문
<<project 3-1>>
<<project 3-2>>
quiz
안녕하세요~! 다들 잘 지내셨나요?
저번에는 연산자에 대해 배웠는데요. 기억이 안나시는 분들은 빠르게 내용을 훑고 오시는 것을 추천드립니다.
오늘은 조건문에 대해 배울 예정이예요.
아래는 오늘의 프로젝트입니다!
<1. 계산기 프로그램>

1. 기본 if 문
if는 '만약 ~라면' 이라는 의미처럼 if는 어떤 조건을 내세울 때 사용하는데요,
if 문의 조건의 결과는 참(True) 또는 거짓(False) 두 가지 뿐입니다.
1-1. if 문
가장 기본적인 if문은 참일 때는 뭔가를 실행하고, 거짓일 때는 아무것도 실행하지 않습니다.
조건식은 주로 마름모 형태로 그리는데, 참이면 '실행할 문장'을 실행하고, 거짓이면 아무것도 실행하지 않습니다.

즉, 그림과 같이 'if 조건식:'에서 조건식이 참이면 '실행할 문장'을 실행하고,
거짓이면 아무것도 실행하지 않은 채 프로그램을 종료합니다.
Input
a=99 if a<100: print("100보다 작군요.")
Output
100보다 작군요.
현재 a에는 99가 들어 있으므로 조건식 a<100는 참이 되어 if문을 실행합니다.
앞 코드를 그림으로 표현하면 다음과 같습니다.

이번에는 조건이 참이고 실행할 문장이 2개일 때를 살펴보겠습니다.
Input
a=200 if a<100: print("100보다 작군요.") print("거짓이므로 이 문장은 안 보이겠죠?") print("프로그램 끝")
Output
프로그램 끝
(Tip. if문에서 두 문장 이상을 실행하고 싶다면 실행할 문장을 모두 들여쓰기 해야합니다.)
위의 코드는 현재 a가 200이므로 조건식은 거짓이 됩니다.
들여쓰기한 행은 모두 건너뛰고 6행부터 실행됩니다. 따라서 결과로는 "프로그램 끝"을 출력합니다.
1-2. if~else 문
참일 때 실행할 문장과 거짓일 때 실행할 문장을 다르게 하려면 if~else 문을 사용해야 합니다.
조건식이 참이라면 '실행할 문장1'을 실행하고, 거짓이면 '실행할 문장2'를 출력합니다.

위의 그림을 보면 조건이 참일 때와 거짓일 때의 실행할 문장이 다른 것을 확인할 수 있습니다.
Input
a=200 if a<100: print("100보다 작군요.") else: print("100보다 크군요.")
Output
100보다 크군요.
위의 식은 다음과 같이 a에는 200이 들어 있으므로,
3행의 조건식은 거짓이 되어 5행의 else 아래에 있는 6행을 실행한다.

참일 때 수행할 문장도 여러 개이고, 거짓일 때 수행할 문장도 여러 개라면 들여쓰기로 맞춰 넣으면 됩니다.
Input
a=200 if a<100: print("100보다 작군요.") print("참이면 이 문장도 보이겠죠?") else: print("100보다 크군요.") print("거짓이면 이 문장도 보이겠죠?") print("프로그램 끝")
Output
100보다 크군요. 거짓이면 이 문장도 보이겠죠? 프로그램 끝
a가 200이므로 a<100은 거짓이 되어 else에 해당하는 7~8행이 실행됩니다.
그리고 마지막에 있는 10행은 조건문과 관련이 없는 부분이므로 함께 출력됩니다.
다음은 입력한 숫자가 짝수인지 홀수인지 계산하는 예제입니다.
Input
a=int(input("정수를 입력하세요: ")) if a%2 == 0: print("짝수를 입력했군요.") else: print("홀수를 입력했군요.")
Output
정수를 입력하세요: 1024 짝수를 입력했군요.
1행에서 정수를 입력받은 뒤 3행에서 입력된 수를 2로 나눈 나머지값이 0이면 짝수, 그렇지 않으면 홀수입니다.
2. 중첩 if문
2-1. if~else~if~else문
지금까지는 if문이 하나인 경우만 알아보았는데요. if문이 두 개 이상이라면 어떻게 표현해야 할까요?
if문이 두 개 이상인 조건문을 중첩 if문이라고 하는데, 1
중첩 if문은 if문 안에 또다른 if문이 있다고 생각하면 됩니다.

중첩 if문은 이러한 순서도로 나타낼 수 있습니다.
Input
a=75 if a>50: if a<100: print("50보다 크고 100보다 작군요.") else: print("100보다 크군요.") else: print("50보다 작군요.")
Output
50보다 크고 100보다 작군요.
3행에서 a가 50보다 크다면 참이 되어 들여쓰기가 된 4~7행을 실행합니다.
그 안에서 a가 100보다 작다면 5행을 실행하고, 크다면 7행을 실행합니다.
3행에서 a가 50보다 작거나 같다면 8행으로 바로 넘어와 9행을 실행합니다.
다음은 중첩 if문의 예제입니다.
입력받은 점수가 90점 이상이면 A, 80점 이상이면 B, 70점 이상은 C, 60점 이상은 D, 나머지는 F로 처리합니다.
Input
score = int(input("점수를 입력하세요: ")) if score >= 90: print("A") else: if score >= 80: print("B") else: if score >= 70: print("C") else: if score >= 60: print("D") else print("F") print("학점")
Output
정수를 입력하세요: 83 B 학점
아래는 위의 예제의 순서도이다.

2-2. if~elif~else문
중첩 if를 줄여서 사용하는 방법도 있습니다.
바로 if~elif~else문 인데요. else~if를 elif로 줄여서 표현하는 방식입니다.
위의 학점 출력 코드를 if~elif~else문으로 수정하면 다음과 같습니다.
Input
score = int(input("점수를 입력하세요: ")) if score >= 90: print("A") elif score >= 80: print("B") elif score >= 70: print("C") elif score >= 60: print("D") else: print("F") print("학점")
2-3. 삼항연산자를 이용한 if문
Input
score = 65 res = '' if score >= 60: res='합격' else: res='불합격' print(res)
위의 예제를 삼항연산자를 이용하여 짧게 표현해보면 다음과 같습니다.
Input
score = 65 res = '' res='합격' if score>=60 else res='불합격' print(res)
여기까지 모두 따라왔다면 계산기 프로그램을 만들어 보도록하겠습니다.
<<Project 3-1>>
1을 입력한다면 두 수를 더하고, 2를 입력한다면 두 수를 빼는 계산기 프로그램인데요.
코드는 다음과 같습니다.

이를 실행하면, 다음과 같은 결과가 나옵니다.

<<Project 3-2>>
위의 계산기 코드를 확장하여,
3을 입력했을 때는 두 수의 곱을, 4를 입력했을 때는 두 수의 나눗셈을 하도록 바꾸시오.
오늘의 조건문 포스팅은 여기까지입니다.
궁금한 점이나 질문이 있다면 우측 하단의 실시간 채팅을 이용하시면 답변해드리도록 하겠습니다!
이 포스팅의 퀴즈, 프로젝트 등에 대해 토론을 하고 싶으시면
2019/11/12 - [[Python]/Dicussion] - [discussion] ask or discuss <3. Conditional sentence>
에 가시면 됩니다 :)
퀴즈에 대한 답을 구글 설문지에 작성해 제출해주시면 정답을 발송해드립니다.
- 거듭 겹치거나 포개어짐. (=중복) [본문으로]
'[Python] > Lecture' 카테고리의 다른 글
5.Repetitive Statement(While) (0) | 2019.11.24 |
---|---|
4.Repetitive Statement(For) (0) | 2019.11.18 |
2.Operator (0) | 2019.10.27 |
1. Variable and Data type (0) | 2019.10.08 |
[Python] 0. Introduction to Python! (1) | 2019.09.23 |