You are on page 1of 24

제어문

컴퓨팅사고와 SW코딩
학습 목표
▪ 흐름제어
▪ 코드블록과 들여쓰기
▪ 기본 if
▪ 제어문의 조건식

안혜선_3주차 2
제어문
▪ 흐름 제어문과 조건문
▪ 흐름 제어문은 흐름을 분기하거나 반복하기 전에 조건문의 결과가 참인지
를 평가 수행
▪ 조건문이 구체적으로 다음과 같을 때 거짓으로 평가
• False
• None
• 숫자 0 예) 0, 0.0 등
• 비어있는 순서열 : 예) ‘’, (), [] 등
• 비어있는 딕셔너리 : 예) {}
▪ 어떤 객체가 거짓으로 평가되는지를 알고 싶을 때는 bool() 함수 이용

안혜선_3주차 3
제어문
▪ 논리연산자와 비교 연산자를 이용하면
▪ 편리소프트웨어 ≒ 컴퓨터가 할 일의 목록
▪ 프로그래머가 컴퓨터에게 할 일의 목록을 내주면, 컴퓨터는 소프트웨어에
기록되어 있는 목록을 보고 그대로 수행
▪ 프로그래밍에서 “흐름(Flow)”은 컴퓨터에서 내려지는 명령의 순서를 가리키
는말
▪ 프로그램의 흐름을 가르는 문장 : 나눌 분(分), 갈림길 기(岐), 분기문

안혜선_3주차 4
제어문
▪ 3가지의 기본 제어 구조
① 순차 구조(sequence) - 명령들이 순차적으로 실행되는 구조.
② 선택 구조(selection) - 둘 중의 하나의 명령을 선택하여 실행되는 구조.
③ 반복 구조(iteration) - 동일한 명령이 반복되면서 실행되는 구조.

안혜선_3주차 5
제어_순차구조
▪ 프로그램의 각 명령문이 순차적으로 실행되는 방식

안혜선_3주차 6
제어_선택구조
▪ 프로그램의 각 명령문이 순차적으로 실행되는 방식

다양한 선택 구조형태

안혜선_3주차 7
제어-반복구조
▪ 조건에 따라 특정 동작을 계속 반복할지 말지를 결정하거나, 혹은 정해
진 횟수만큼 특정 동작을 반복하도록 작성

그림참고: 문제해결을 위한 컴퓨팅사고 (한빛미디어)


안혜선_3주차 8
제어문
▪ 문제를 해결할 때 어떤 조건에 따라서 두 개 이상의 실행 경로 가운데
은 는가
하나를 선택해야 하는 경우 발생

은 는가

안혜선_3주차 9
제어문
▪ 선택 구조가 없다면 프로그램은 항상 동일한 동작만을 할 것이다.

▪ 자율 주행 자동차 프로그램이 신호등이나 전방 장애물에 따라서


동작을 다르게 하지 않는다면 어떻게 될까?

▪ 조건문(Conditional Statements)

▪ 조건문은 어떤 상황에 따라 실행해야 할 코드가 다를 때 사용.

기본 if 문 if-else 문

참 (True)
score > 참 (True) score > 거짓 (False)
90 60
print("Good
print("Pass!") print("Fail!")
job!")

안혜선_3주차 10
기본 if문
▪ if 조건문 형식
▪ 조건식이 참(True)이면 실행할 문장이 처리되고 다음 단계로 진행

▪ 거짓(False)이면 아무것도 실행하지 않고 다음 단계로 진행

if condition :
statement1
statement2
반드시 일정량 만큼 균일하게 들여쓰기
(들여쓰기: tab 키 사용 권장)

안혜선_3주차 11
블록
▪ 만약 조건이 참인 경우 여러 개의 문장이 실행되어야 한다면?

if score >= 90 :
print(“합격입니다.”)
print(“장학금도 받을 수 있습니다.”)


▪ 블록은 특정한 동작을 위해서 코드가 모여있는 상태
▪ 블록은 들여쓰기로 구분
▪ Python은 들여쓰기 자체가 문법
▪ 들여쓰기는 코드를 읽기 쉽도록 일정한 간격을 띄워서 작성하는 방법
• 공백(스페이스), 탭(tab) 등 여러가지 방법이 있으나 탭 사용을 권장

Syntax-Directed Editing 지원
✓ IDLE, 스크립트편집기에서 if 명령을 입력하면
자동으로 칸을 띄어서 블록을 만들어 줌.

안혜선_3주차 12
기본 if문
▪ if 조건문 형식
▪ 조건식이 참(True)이면 실행할 문장이 처리
▪ 거짓(False)이면 아무것도 실행하지 않고 프로그램을 종료

if condition :
statement1
statement2

반드시 일정량 만큼 균일하게 들여쓰기


(들여쓰기: tab 키 사용 권장)

▪ 순서도

True statement1
condition 코드 블록
statement2
False

안혜선_3주차 13
기본 if문
▪ if 조건문 형식
if condition :
statements
statementA

▪ statementA는 if 문과 관계없는 statement


• 들여쓰기를 안 했기 때문
• if 문 실행 후 바로 실행됨

▪ num = int(intput("정수를 입력하시 :


num이 100보다 False
")
작은가?

True if num<100:
print("100보다 작다")
“100보다 작다” 출력

프로그램 종료

안혜선_3주차 14
조건
▪ if 조건문에서 "조건"이란 참과 거짓을 판단하는 문장을 말함

if condition :

▪ 조건을 판단하기 위해 사용되는 문장


▪ 연산 결과가 자료형의 참(True) 또는 거짓(False)

▪ 관계연산자 (score < 90)

▪ 논리연산자 (height > 150 and weight > 50)

▪ 그 외 연산(산술, 문자열, 리스트)은 ?

안혜선_3주차 15
조건
▪ 계산결과를 논리값으로 변환 (bool() 함수를 암묵적으로 적용)
자료형(계산결과) 참(True) 거짓(False)
수(정수, 실수) 1, 123, 3.14, 0.1 0, 0.0
문자열 "0", " ", "yonsei" ""
리스트 [0], [""], [10, 20] []
튜플, 셋, 사전 (1,2), {1,2}, {1:'one'} (), {}

▪ 수, 문자열, 리스트 값을 암묵적으로 논리값으로 변환하여 해석 함


(bool() 함수 적용)

>>> bool(10+20) >>> bool(0)


True False
>>> bool("yonsei") >>> bool("")
True False
>>> bool([0]) >>> bool([])
True False

안혜선_3주차 16
조건-관계연산
▪ 관계 연산자 (Relational Operators)
▪ 두 값을 비교하는 연산자.
▪ 결과는 True(참) 또는 False(거짓).
▪ If문에서 조건이 참인지 거짓인지 판단할 때 사용.

연산자 의미 사용의 예
x == y 같다 5 == 7 # False
x != y 같지 않다 5 != 7 # True
x>y 보다 크다 5>7 # False
x<y 보다 작다 5<7 # True
x >= y 크거나 같다 5 >= 7 # False
x <= y 작거나크다 5 <= 7 # True

안혜선_3주차 17
조건- 관계연산
▪ 관계 연산자 (Relational Operators)
▪ 두 값을 비교하는 연산자.
▪ 결과는 True(참) 또는 False(거짓).
▪ If문에서 조건이 참인지 거짓인지 판단할 때 사용.
▪ 실수/정수 혼합, 문자열 에서도 조건문 사용 가능
▪ 그러나 문자열과 실수/정수는 "==" , "!=" 비교만 가능
>>> if 1 < 2.0:
print(True)
>>> if 1 < 2.0 : print(True)
else:
else: print(False)
print(False)
True
>>> if 2 == 2.0 : print(True)
True
else: print(False)
True
>>> if "big" < "small" : print(True)
else: print(False)
True
>>> if "one" == 1 : print(True) 문자 순으로 비교
else: print(False) a < b < c ..
False 가 < 나 < 다 ...

안혜선_3주차 18
조건- 논리연산
▪ 논리 연산자 (Logical Operators)
▪ 복잡한 조건을 표현하려면 논리연산자를 사용.
▪ 여러 조건식을 조합해서 복합 표현식을 구성할 수 있다.
▪ 몇 개의 조건식을 조합하여 명령문의 수행여부를 결정할 때 사용

연산자 의미 설명
and logical and 모두 True이어야 True
or logical or 하나라도 True이면 True
not negates the truth value 참이면 거짓. 거짓이면 참.

안혜선_3주차 19
조건 – 복합연산의 예
▪ 예) 윤년인지 확인하기
▪ 윤년의 조건 ?
• 4로는 나눠 떨어져야 하고, 100으로 나눠 떨어지면 안 됨.
• 또는 400으로 나눠 떨어지면 윤년.
▪ year= 2020 일 때 윤년인가?

or

안혜선_3주차 20
if-else 문
▪ 조건이 거짓(False)일 때도 수행할 문장이 있을 경우 사용
if condition : if condition :
statements statement1
else : statement2
statements else :
statement3

▪ 순서도

True False
condition

statement1
statement3
statement2
조건식이 True일 경우 조건식이 False일 경우
수행할 문장들 수행할 문장들

안혜선_8주차 21
코드 블록
▪ 만약 조건이 참인 경우 여러 개의 문장이 실행되어야 한다면?

if score >= 90 :
print(“합격입니다.”)
print(“장학금도 받을 수 있습니다.”)


▪ 블록은 특정한 동작을 위해서 코드가 모여있는 상태
▪ 블록은 들여쓰기로 구분
▪ Python은 들여쓰기 자체가 문법
▪ 들여쓰기는 코드를 읽기 쉽도록 일정한 간격을 띄워서 작성하는 방법
• 공백(스페이스), 탭(tab) 등 여러가지 방법이 있으나 탭 사용을 권장

안혜선_8주차 22
if-else 문 예제
▪ 정수를 하나 입력 받아 100보다 큰 수 인지 작은 수인지 판별하여 100
보다 작으면 “100보다 작다”를, 그렇지 않으면 “100보다 크거나 같다”를
출력하는 코드를 작성하라.
조건이 True일 때
정수를 입력하시오: 99
100보다 작다
num이 100보다 False
작은가? 조건이 False일 때

True
정수를 입력하시오: 101
100보다 크거나 같다
“100보다 크거나 같다”
“100보다 작다” 출력
출력

프로그램 종료 num = int(intput("정수를 입력하시 : ")

if num<100:
print("100보다 작다")
else:
print("100보다 크거나 같다")

안혜선_8주차 23
오픈카톡 또는 메시지를
이용하여 질의 응답

안혜선_3주차 24

You might also like