배꼽파지 않도록 잘 개발해요

방송대 파이썬 프로그래밍 기초 - 6강. 선택구조 본문

방송대 컴퓨터과학과/파이썬 프로그래밍 기초

방송대 파이썬 프로그래밍 기초 - 6강. 선택구조

꼽파 2023. 4. 10. 10:30


  • 1. 선택구조

  • 2. 논리연산자

  • 3. 선택 구조의 확장

  • 4. 원뿔 계산 프로그램 개선

  • 1. 선택구조

    선택 구조의 개념

    특정 영역 내의 명령문에 대한 실행 여부를 판단에 따라 결정하는 구조
    실행 여부는 조건에 따라 결정됨.
    ex. 공정을 거친 제품이 정상이면 배송, 불량이면 재생 후 배송

     

    선택 구조의 구문 형식

    구문형식 실행 흐름
    선택 구조의 구문형식
    선택구조

    들여쓰기는 코드 블록을 표현
    코드 블록 : 특정 동작을 수행하는 한 라인 이상의 명령문의 집합

    같은 코드 블록에 해당되면, 같은 칸수 만큼의 들여쓰기를 해야됨.
    들여쓰기는 스페이스 4칸 (Tap X) 권고(PEP-8)


    불리언식

    •  비교연산자를 사용하여 결과가 불리언 타입으로 생성되는 표현식

    연산자 수학적 표현 의미
    < < 작다
    <= 작거나 같다
    > > 크다
    >= 크거나 같다
    == = 같다
    != 같지 않다


    불리언 타입

     논리값인 참(True)와 거짓(False)의 값만 표현할 수 있는 데이터 타입
    - True 또는 False 예약어를 사용하여 표현 (T와 F는 무조건 대문자)
    비교 연산자를 사용한 표현식의 결과로 생성

     George Boole(조지 부울)의 이름을 따서 만들어짐.


    2. 논리연산자

    논리연산자의 개념

    참, 거짓을 구별할 수 있는 명제를 대상으로 명제의 집합을 위해 고안한 연산자
     두개의 논리값(불리언식)을 연산하여 참 또는 거짓을 결과로 얻는 연산자

    → 여러 개의 명제를 서로 결합할 때 사용하는 것이 논리연산자
     두 개의 피연산자를 갖는 이항 연산자
     and(논리곱), or(논리합), not(논리부정) 연산자 사용
     왼쪽에서 오른쪽의 방향으로 결합


    and

     두 논리값이 모두 True일 때 True이고 어느 하나 False일 경우 False를 반환
     진리표(truth table) : 논리적인 연산의 모든 가능한 입력 값에 대한 해당 연산의 출력 값을 명시하는 표

    b1 b2 b1 and b2
    False False False
    False True False
    True False False
    True True True

     

    Or

     두 논리값이 모두 False일 때 False이고 어느 하나 True일 경우 True를 반환
     진리표

    b1 b2 b1 or b2
    False False False
    False True True
    True False True
    True True True


    not

     단항 연산자로 논리값을 반전하여 False는 True로, True는 False로 반환
     진리표

    b1 Not b1
    False True
    True False

    비교연산자(>, <, ==)와 논리연산자(and, or) 활용


    단락평가(short-circuit evaluation)

    첫번째 논리값만으로 전체 연산 결과가 판별가능할 때 두번째 논리값은 확인(평가)하지 않는 기법

     논리 연산의 효율성을 높이고, 불필요한 연산을 줄여주는 기능

    and 연산자 단락평가 예시
    or 연산자 단락평가 예시
    단락평가로 인한 오류 발생 예시
    단락평가로 인한 오류 발생 예시 해결


    3. 선택 구조의 확장

    이분 선택 구조

    구문형식 실행 흐름


    다분 선택 구조

    더 많은 불리언식을 사용해서 더 여러 개의 분기를 만들 수 있음.

    구문형식 실행 흐름

    마지막 else문은 적지 않아도 됨.

    * 다분실행구조 실행 흐름 사진 출처 : 강의록

     

    BMI 체질량지수 계산기 [참고]


    가장 큰 수를 찾는 프로그램

    세 수 A, B, C를 입력 받고 그 중 가장 큰 수를 출력하는 프로그램

     

    중첩 선택 구조의 구문형식

    구문형식 실행 흐름

     


    4. 원뿔 계산 프로그램 개선

    반지름이 음수일 경우 계산할 수 없으니, 0보다 클 경우에만 계산되도록 함. 

    반지름과 높이가 모두 양수일 때만 계산되도록 함.

    그런데 둘 중 하나가 0보다 작을 경우 안내 문구가 출력되면 좋을 것 같음.

    if-else 구조를 이용해서 안내문구를 추가함.

    728x90