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

[2팀/김가림, 최다예] 3차시 파이썬 스터디 - 조건문

omomirg 2023. 3. 22. 16:33

3차시_조건문_강의안.pdf
5.61MB
3차시_조건문_과제.pdf
0.16MB

 

조건문

  • 시작하기 앞서 ..예를 들어 60점 미만은 ‘F’, 90점 이상은 ‘A’ 와 같은 기준이 있다
    1. 점수에 따른 학점의 기준을 정한다 ( 95점 이상 ‘A+’, 60점 미만 ‘F’ )
    2. 기준을 바탕으로 첫 번째 점수를 판단한다 ( 38점은 60점 미만이므로 ‘F’ )
    3. 다음 점수로 이동하면서 2를 반복한다 ( 37점은 60점 미만이므로 ‘F’ )
    4. 더 이상 판단할 점수가 없을 때 프로그램을 종료한다
    어떤 기준으로 결정해야 하는가? > 조건의 설정프로그래밍을 할 때 이처럼 조건과 반복을 설정하면
  • 어떤 기준이 있는 일에 대해 매우 효율적으로 문제를 해결할 수 있다
  • 언제까지 해야 하는가 ? > 반복의 설정
  • 점수 : 38, 37, 65, 89, 16, 95, 71, 63, 48, 49, 66
  • 만약 다음과 같은 성적이 있다고 할 때 학점을 부여하는 프로그램을 만들려면 어떻게 해야할까 ?

조건문의 개념

  • 실생활에서도 조건문이 필요한 경우
    • 앞 지하철과의 간격이 10m이하면, 속도를 10km이하로 늦춰라
    • 사용자가 20세 이하면, VOD를 재생하지 마라
    • 스마트폰 잠금 해제 패턴이 5회 틀리면, 20초 동안 대기 상태로 만들어라

조건문을 구성하기 위해서는

  1. 조건을 나타내는 기준과 실행해야 할 명령이 필요하다
  2. 조건문은 반드시 조건의 참과 거짓으로 구분되어야 한다

 

  • 조건문은 조건에 따라 특정 동작을 하도록 하는 프로그래밍 명령어

if-else문

  • if-else문

  1. if 뒤에는 참과 거짓을 판단할 수 있는 조건문이 와야 하고, 조건문이 끝나면 반드시 콜론(:)을 붙여야한다
  2. 들여쓰기를 사용하여 해당 조건이 참일 경우 수행할 명령을 작성한다
  3. if의 조건이 거짓일 경우 else 문이 수행된다

else 문은 생략해도 상관 없음, 조건에 해당하지 않는 경우 처리해야 할 명령이 있다면 else문을 넣으면 된다

  • ex.

  • 코드 해설

(1)

print(’Tell me your age?’)

maybe = int(input())

위 코드에서 먼저 나이를 입력하라는 메시지가 나타면 사용자가 나이 입력

(2)

if maybe < 30 :
    print(’Welcome to the Club’)

만약 나이가 30세 미만일 경우 클럽에 입장할 수 있다는 메시지를 출력하고,

30세 이상일 경우에는 클럽에 입장할 수 없다는 메시지를 화면에 출력한다

여기서 핵심은 myage < 30 이라는 조건 !

사용자가 입력한 값(maybe = int(input()))은 myage 변수에 정수형(int)으로 바꿔서 할당된다

다음으로 그 값 이 30보다 작다는 조건이 True일 때,

즉 myage < 30이 참일 경우 print("Welcome to the Club")이라는 구문을 수행시키고

해당 조건이 False일 때는 else 다음에 오는 구문을 수행 시킨다.

 

 

  • 조건의 판단
  • 비교연산자

  • is 문법 파이썬은 처음 인터프리터를 시작할 때 -5~256까지는 변하지 않는 메모리(정적 메모리)주소에 값 할당그렇기에 a와 b 둘다 100일 때는 is 와 == 모두 같다고 나오지만
  • a = 100 b = 100 a is b True a == b True a = 300 b = 300 a == b True a is b False
  • 둘 다 300일 경우에는 값만 같고 메모리 주소는 다르다고 나옴 is not 도 마찬가지이다
  • 해당 값을 다른 변수가 사용할 때 메모리 주소를 반환
  • == 연산자처럼 두 변수가 같음을 비교하지만, == 연산자와 다르게 메모리의 주소를 비교
  • 조건문 코드의 판단 방법은 참 또는 거짓을 구분하는 방법과 같다
  • True 와 False의 치환
    if 1: 
         print("True") 
     else: 
         print("False")
    True
    
    (3>5)<10
    True
    
    * 3>5는 False이다 이는 0으로 치환 된다
    그래서 이것을 다시 치환하면 (0) < 10이 되고, 이 값은 다연히 참이므로 True가 반환되는 것이다
    
    • 논리 연산자

  • a = 8 b = 5 a == 8 and b == 4 False a > 7 or b > 7 True not (a > 7) False
  • 논리 연산자 and, or, not을 사용해 조건문을 좀 더 확장할 수 있다
  • 컴퓨터는 기본적으로 이진수만 처리할 수 있기에 True는 1로 Flase는 0으로 처리한다

 

  • if-elif-else문
  • 중첩 if문

표 내의 학점 채워넣기

실제 코드로 만들어 실행하면 모든 값이 D나 F로 나옴 > 코드가 한 줄씩 차례대로 실행되기 때문

이 문제를 해결하기 위해

여러개의 조건을 하나의 if문에서 검토할 수 있도록 elif를 사용한 if-elif-else 문으로 작성해야 한다.

elif는 else if의 줄임말로 if문과 같은 방법으로 조건문을 표현할 수 있다

if문의 조건이 맞지 않으면 다음 elif문으로 이동하고,

그 조건에 맞지 않으면 그 다음 elif문으로 이동하게 된다

중간에 조건문이 True가 된다면 별도의 확인 없이 바로 if문 그룹을 빠져나온다

즉, 하나의 조건만 맞으면 다른 조건들과의 비교하지 않는다

실습

  • 실습 : 어떤 종류의 학생인지 맞히기
    • 프로그램 조건

  1. 실행결과

  1. 코드

외의 책 내 실습 스스로 해보기