3, 4주차는 제어문에 대해 다룬다.
이번 시간에는 조건문, 다음 시간에는 반복문을 배워보자.
조건문이란?
서론
- 학점 부여 프로그램을 만들려면?
- 점수 : 38, 65, 89, 16, 95, 71, 63, 48, 49, 66, 37
- 점수에 따른 학점의 기준을 정한다.
- 95점 이상 ‘A+’, 60점 미만 ‘F’
- 기준을 바탕으로 첫 번째 점수를 판단한다.
- 38점은 60점 미만이므로 ‘F’
- 다음 점수로 이동하면서 2. 를 반복한다.
- 37점은 60점 미만이므로 ‘F’
- 더 이상 판단할 점수가 없을 때 프로그램을 종료한다.
- 프로그램을 만들 때 고려해야 할 사항
- 조건의 설정 : 어떤 기준으로 결정해야 하는가?
- 반복의 설정 : 언제까지 해야 하는가?
- 1) 조건문의 개념
- 조건문 conditional statement : 조건에 따라 특정 동작을 하도록 하는 프로그래밍 명령어
- 실생활에서도 필요한 조건문
- 앞 지하철과의 간격이 10m 이하면, 속도를 10km 이하로 늦춰라.
- 사용자가 20세 이하면, VOD를 재생하지 마라.
- 스마트폰 잠금 해제 패턴이 5회 틀리면, 20초 동안 대기 상태로 만들어라.
- 조건을 나타내는 기준과 실행해야 할 명령으로 구성
- 반드시 조건의 참과 거짓(True/False) 으로 구분되어야 한다. 명확히 구분되지 않으면 명령을 수행하기 어렵다.
- 2) if-else문
- 기본 문법
- if <조건>: # if를 입력하고 조건 삽입 후 ':' 입력
<수행 명령 1-1> # 들여쓰기 후 수행 명령 입력
<수행 명령 1-2> # 같은 조건에서 계속 수행할 명령일 경우 들여쓰기 유지
else: # 조건이 불일치할 경우 수행할 명령
<수행 명령 2-1> # 조건 불일치 시 수행할 명령 입력
<수행 명령 2-2> # 조건 불일치 시 수행할 명령일 경우 들여쓰기 유지- if 뒤에는 참과 거짓을 판단할 수 있는 조건문이 와야 하고, 조건문이 끝나면 반드시 콜론( : )을 붙여야 한다.
- 해당 조건이 참일 경우, 들여쓰기를 사용하여 수행할 명령을 작성한다.들여쓰기를 하면 코드에 대한 시각적 이해에 도움이 됨.
- 들여쓰기는 space키나 tab키 등을 사용하여 코드를 일정 간격 안쪽으로 넣으면 된다. (파이참 같은 경우는 자동 완성 기능으로 자동으로 들여쓰기가 적용된다.)
- if의 조건이 거짓일 경우 else문이 수행된다. (생략 가능)
- 조건에 해당하지 않는 경우에 대해 처리해야 할 명령이 있다면 else문을 사용하면 된다.
- 3) 조건의 판단
- 1. 비교 연산자
x < y | ~보다 작음 | x가 y보다 작은지 검사 |
x > y | ~보다 큼 | x가 y보다 큰지 검사 |
x == y | 같음 | x와 y의 값이 같은지 검사 |
x is y | 같음(메모리 주소) | x와 y의 메모리 주소가 같은지 검사 |
x != y | 같지 않음 | x와 y의 값이 같지 않은지 검사 |
x is not y | 같지 않음(메모리 주소) | x와 y의 메모리 주소가 같지 않은지 검사 |
x >= y | 크거나 같음 | x가 y보다 크거나 같은지 검사 |
x <= y | 작거나 같음 | x가 y보다 작거나 같은지 검사 |
파이썬에서는 같음을 의미할 때 == 연산자를 사용하고, 할당의 의미를 표현할 때는 = 연산자를 사용한다는 점!
is는 == 연산자처럼 두 변수가 같음을 비교하지만, == 연산자와 다르게 메모리의 주소를 비교함.
(-5 ~ 256까지는 정적 메모리(변하지 않는 메모리) 주소에 값을 할당함.)
- 2) True와 False의 치환
- 컴퓨터는 기본적으로 이진수만 처리할 수 있으므로 True는 1로, False는 0으로 처리함.
- 3) 논리 연산자
- and : 두 값이 모두 참일 경우 True, 그렇지 않을 경우 False
- or : 두 값 중 하나만 참일 경우 True, 두 값 모두 거짓일 경우 False
- not : 값을 역으로 반환하여 판단
- if-elif-else
- elif : else if의 줄임말로, if문과 같은 방법으로 조건문을 표현함
if문의 조건이 맞지 않으면 다음 elif문으로 이동하고, 그 조건에 맞지 않으면 그 다음 elif문으로 이동하게 됨. 중간에 조건문이 True가 된다면 별도의 확인 없이 바로 if문 그룹(첫 번째 if문~마지막 else문까지)을 빠져나옴. 하나의 조건만 맞으면 다른 조건들과 비교하지 않는다는 점!
- elif : else if의 줄임말로, if문과 같은 방법으로 조건문을 표현함
실습 : 어떤 종류의 학생인지 맞히는 프로그램 만들기
사용자가 태어난 연도를 입력하면 어떤 종류의 학생인지 맞히는 프로그램을 만들어보자.
<프로그램 작성 규칙>
- 나이는 (2023 - 태어난 연도 + 1)로 계산한다.
- 26세 이하 20세 이상이면 ‘대학생’ 으로 출력한다.
- 20세 미만 17세 이상이면 ‘고등학생’ 으로 출력한다.
- 17세 미만 14세 이상이면 ‘중학생’ 으로 출력한다.
- 14세 미만 8세 이상이면 ‘초등학생’ 으로 출력한다.
- 그 외의 경우는 ‘학생이 아닙니다.’ 를 출력한다.
실습 : 두 수 비교하기
두 정수 a와 b가 주어졌을 때, a와 b를 비교하는 프로그램을 작성하세요.
첫째 줄에 ‘a를 입력하세요.: ‘에 a를 입력한다.
둘째 줄에 ‘b를 입력하세요.: ‘에 b를 입력한다.
(첫째 줄 A, 둘째 줄에 B가 주어진다.)
첫째 줄에 다음 세 가지 중 하나를 출력한다.
- a가 b보다 큰 경우에는 ‘a가 b보다 큽니다.’ 를 출력한다.
- a가 b보다 작은 경우에는 ‘a가 b보다 작습니다.’ 를 출력한다.
- a와 b가 같은 경우에는 ‘a와 b가 같습니다.’ 를 출력한다.
실습 : 윤년
연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하세요.
윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때입니다.
예를 들어, 2012년은 4의 배수이면서 100의 배수가 아니기 때문에 윤년입니다. 1900년은 100의 배수이고 400의 배수는 아니기 때문에 윤년이 아닙니다. 하지만 2000년은 400의 배수이기 때문에 윤년입니다.
입력 : 첫째 줄에 연도가 주어진다.
출력 : 첫째 줄에 윤년이면 1, 아니면 0을 출력한다.
'스터디 > 파이썬 스터디 강의자료' 카테고리의 다른 글
[3팀/김규리] 4차시 파이썬 스터디 - 반복문 (1) | 2023.03.27 |
---|---|
[3팀/이지현] 4차시 파이썬 스터디 - 반복문 (0) | 2023.03.26 |
[2팀/김세연] 3차시 파이썬 스터디 - 조건문 (0) | 2023.03.23 |
[4팀/이제은] 3차시 파이썬 스터디 - 조건문 (0) | 2023.03.23 |
[4팀/김민혜] 2차시 파이썬 스터디 - 자료형 (1) | 2023.03.23 |