스터디/파이썬 스터디 강의자료

[1팀/한규림] 3차시 파이썬 스터디 - 조건문

onegyul 2023. 3. 23. 19:49

3차시_조건문_강의안.pdf
0.52MB
3차시_조건문_과제.pdf
1.89MB

3, 4주차는 제어문에 대해 다룬다.

이번 시간에는 조건문, 다음 시간에는 반복문을 배워보자.

조건문이란?

서론

  • 학점 부여 프로그램을 만들려면?
    • 점수 : 38, 65, 89, 16, 95, 71, 63, 48, 49, 66, 37
    1. 점수에 따른 학점의 기준을 정한다.
      • 95점 이상 ‘A+’, 60점 미만 ‘F’
    2. 기준을 바탕으로 첫 번째 점수를 판단한다.
      • 38점은 60점 미만이므로 ‘F’
    3. 다음 점수로 이동하면서 2. 를 반복한다.
      • 37점은 60점 미만이므로 ‘F’
    4. 더 이상 판단할 점수가 없을 때 프로그램을 종료한다.
  • 프로그램을 만들 때 고려해야 할 사항
    • 조건의 설정 : 어떤 기준으로 결정해야 하는가?
    • 반복의 설정 : 언제까지 해야 하는가?
  • 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> # 조건 불일치 시 수행할 명령일 경우 들여쓰기 유지
      1. if 뒤에는 참과 거짓을 판단할 수 있는 조건문이 와야 하고, 조건문이 끝나면 반드시 콜론( : )을 붙여야 한다.
      2. 해당 조건이 참일 경우, 들여쓰기를 사용하여 수행할 명령을 작성한다.들여쓰기를 하면 코드에 대한 시각적 이해에 도움이 됨.
      3. 들여쓰기는 space키나 tab키 등을 사용하여 코드를 일정 간격 안쪽으로 넣으면 된다. (파이참 같은 경우는 자동 완성 기능으로 자동으로 들여쓰기가 적용된다.)
      4. if의 조건이 거짓일 경우 else문이 수행된다. (생략 가능)
      5. 조건에 해당하지 않는 경우에 대해 처리해야 할 명령이 있다면 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문까지)을 빠져나옴. 하나의 조건만 맞으면 다른 조건들과 비교하지 않는다는 점!

실습 : 어떤 종류의 학생인지 맞히는 프로그램 만들기

사용자가 태어난 연도를 입력하면 어떤 종류의 학생인지 맞히는 프로그램을 만들어보자.

<프로그램 작성 규칙>

  • 나이는 (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을 출력한다.