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

[1팀/허서원] 3차시 파이썬 스터디 - 조건문

허서원 2023. 3. 22. 19:31

참고 자료 - 데이터 과학을 위한 파이썬 프로그래밍

3차시_조건문_강의안.pdf
1.23MB
3차시_조건문_과제.pdf
0.21MB
3차시_조건문_과제답안.pdf
0.25MB

2. 파이썬 기초 - 02

제어문 (조건문, 반복문)

조건문과 반복문

학습목표

  • 조건문의 개념과 if-else문, if-elif-else문에 대해 알아본다.
  • 조건문 속 조건의 판단 조건에 대해 알아본다.

01 조건문

  • 조건문의 이해
    • 학점 부여 프로그램 만들기
      점수: 38, 65, 89, 16, 95, 71 …
      1. 점수에 따른 학점의 기준을 정한다.
      2. 기준을 바탕으로 첫 번째 점수를 판단한다.
      3. 다음 점수로 이동하면서 2를 반복한다.
      4. 더 이상 판단할 점수가 없을 때 프로그램을 종료한다.
    • 프로그램 만들 때 고려 사항
      - 어떤 기준으로 결정해야 하는가? → 조건의 설정
      - 언제까지 해야 하는가? → 반복의 설정
  • 조건문(conditional statement)의 개념
    조건문: 조건에 따라 특정 동작을 하도록 하는 프로그래밍 명령어
    🙌 실생활에서도 조건문이 필요한 경우
    • 스마트폰의 패턴이 5회 틀리면, 20초 동안 대기 상태로 만들어라

       📢 조건문 구성 조건

  • 조건을 나타내는 기준과 실행해야 할 명령이 필요하다.

→ ‘스마트폰 잠금 해제 패턴이 5회 틀리면’ : 조건의 기준

    '20초 동안 대기 상태' : 실행해야 할 명

  • 반드시 참과 거짓으로 구분되어야 한다.

if-else문

if-else문의 기본 문법

if <조건>: # if를 입력하고 조건 삽입 후 ‘:’ 입력

<수행 명령 1-1>: # 들여쓰기 후 수행 명령 입력

<수행 명령 1-2>: # 같은 조건에서 계속 수행할 명령일 경우 들여쓰기 유지

else: # 조건이 불일치할 경우 수행할 명령

<수행 명령 2-1> # 조건 불일치 시 수행할 명령 입력

<수행 명령 2-2> # 조건 불일치 시 수행할 명령일 경우 들여쓰기 유지

 

문법 조건

1. if 뒤에는 참과 거짓을 판단할 수 있는 조건문이 와야 한다.

2. 조건문이 끝나면 반드시 콜론을 붙여야 한다.

3. 들여쓰기를 사용하여 해당 조건이 참일 경우 수행할 명령을 작성한다.

4. if의 조건이 거짓일 경우 else문이 수행된다. else문은 생략해도 상관없다.

    만약 조건에 해당하지 않는 경우 처리해야 할 명령이 있다면 else문을 넣으면 된다.

 

조건의 판단

  • 비교 연산자 (조건 연산자)

비교 연산자 : 어떤 것이 큰지, 작은지, 그리고 같은지를 비교하는 것. 그 결과는 참이나 거짓이 됨

== 연산자

파이썬→ 같음을 의미할 때 ==연산자를, 할당의 의미를 표현할 때는 = 연산자를 사용한다.

is

== 연산자처럼 두 변수가 같음을 비교하지만, == 연산자와 다르게 메모리의 주소를 비교한다.

  • True와 False의 치환

컴퓨터는 기본적으로 이진수만 처리할 수 있으므로 True는 1로, False는 0으로 처리한다.

True가 출력되는 이유

→ 컴퓨터는 존재하면 True, 존재하지 않으면 False로 처리하기 때문

  • 논리 연산자

논리 연산자인 and, or, not을 사용하면 조건문을 좀 더 확장할 수 있다.

 

 

and는 둘 다 참이어야 True, or는 둘 중 하나만 참이어도 True, not은 참이면 False이고 거짓이면 True를 출력한다.

 

if-elif-else문

→ 한 줄씩 차례대로 실행되기 때문!!!

if문의 조건이 맞지 않으면 다음 elif문으로 이동하고, 그 조건에 맞지 않으면 그 다음 elif문으로 이동하게 된다. 중간에 조건문이 True가 된다면 별도의 확인 없이 바로 if문을 빠져나온다.

즉, 첫 번째 if문부터 마지막 else문까지가 하나의 if문 그룹으로, 하나의 조건만 맞으면 다른 조건들과의 비교하지 않는다.

02 실습 : 어떤 종류의 학생인지 맞히기

실습 내용

조건문을 활용하여 ‘어떤 종류의 학생인지 맞히는 프로그램’ 만들기

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

• 나이는 (2023 - 태어난 연도 + 1)로 계산

• 26세 이하 20세 이상이면 ‘대학생’

• 20세 미만 17세 이상이면 ‘고등학생’

• 17세 미만 14세 이상이면 ‘중학생’

• 14세 미만 8세 이상이면 ‘초등학생’

• 그 외의 경우는 학생이 아닙니다.’ 출력

 

실행 결과

문제 해결

  1. 처음 프로그램을 실행하면 ‘당신이 태어난 연도를 입력하세요.’를 출력한다.
  2. 사용자의 입력을 birth_year 변수에 할당하는데. 사용자의 입력은 문자형이므로 계산을 위해 int() 함수를 사용하여 정수형으로 변경한다.
  3. 나이를 계산한 후 이 값을 age에 할당한다. 사용자가 ‘1997’를 입력하면(2020 - 1997 + 1)로 계산하여 결과값 ‘27’를 age 변수에 할당한다.
  4. age의 값으로 각각 if문과 elif문을 수행한다. 첫 번째 조건이 False이므로 다음 조건을 비교한다.
  5. 모든 조건이 False이므로 13〜14행의 else 구문인 print(”학생이 아닙니다.”)만 실행된다.

논리 연산자 없이 비교 연산자를 사용할 경우

코드에서 age < 14 and age >= 8 조건과 수학에서 사용하는 8 <= age < 14 조건은 서로 같을까?

→ 파이썬에서는 수학식 조건도 잘 실행된다.