ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 05. 조건문
    Python 2021. 1. 20. 16:15

    5.1 if 조건문

    • if문 (true이면)

    프로그램의 실행 흐름을 통제하는 문장을 제어문이라고 한다. 조건문은 조건의 진위 여부에 따라 명령의 실행 여부를 결정하는 제어문이다.

    if 조건:
        명령

    변수는 언제든지 바뀔 수 있는 값이며 어떤 값이 입력될지 미리 알 수 없기 때문에 실행 중에 값을 점검하는 조건문이 필요하다.

    조건문 뒤에는 반드시 콜론(:)을 붙이고, 명령문 앞쪽은 들여쓴다.

    • 비교 연산자
    2 < 10
    "2" > "10" -> "2"와 "1"을 먼저 비교하기 때문

    대입 연산자(=)와 비교 연산자(==) 구분.

    컴퓨터는 숫자 즉, 문자열(문자코드)를 처음부터 0이 아닐 때까지(끝까지) 빼본 뒤 비교한다. 그렇기 때문에 비교 시 대소문자를 구분한다.

    ASKII 코드 대문자가 앞, 소문자가 뒤.

    타입 거짓
    숫자 0이 아닌 숫자 0
    문자열 비어 있지 않은 상태 ""
    리스트, 튜플, 딕셔너리 비어 있지 않은 상태 빈 상태 -> [], (), False, None

    ex) bool([]) -> False 리턴

    다른 언어와 다르게 숫자 -1도 참으로 평가된다.

    • 논리 연산자

    두 개 이상의 조건을 한꺼번에 점검할 때 논리 연산자를 사용한다.

    연산자 설명
    and 두 조건이 모두 참이면 참이다
    or 두 조건 중 하나라도 참이면 참이다
    not 조건을 반대로 뒤집는다
    F and X 
    T or X 
    # 두 연산 모두 뒤를 실행하지 않아도 답이 나온다.
    a = 3
    if a > 1 and a < 10:  # 괄호로 묶어도 되고 묶지 않아도 상관없다.
        print("ok")
    
    if 1 < a < 10:      # 파이썬에서만 이런 표현 가능.
        print("ok2")

    5.2 블록 구조

    • 블록 구조

    if문에 걸리는 명령은 들여쓰기 수준이 같아야 한다.

    age = 16
    if age < 19:
        print("청소년")
        print("화이팅")
    
    if age < 19:
        print("청소년2")
    print("화이팅2") # if문과 상관 X
    • else문 (if문에서 조건이 False인 경우)
    if 조건:
        명령1
    else:
        명령2

    else 다음에도 콜론이 있음을 주의해야 한다. 조건이 참이면 명령1을 실행하고 거짓이면 명령2를 실행한다.

    if와 else는 짝을 이루기 때문에 if가 없는 else문은 에러가 난다.

    • elif문
    if 조건1: # 조건1 True
        명령1 
    elif 조건2: # 조건1 False, 조건2 True
        명령2
    else:        # 조건1, 조건2 False
        명령3
    • if문 중첩

    똑같은 종류의 명령끼리 겹치는 현상을 중첩(Nesting)이라고 한다.

    man = True
    age = 22
    
    if man == True:
        if age >= 19:
            print("성인 남자")

    조건을 연속적으로 점검하여 두 조건이 모두 참일 때만 print문을 실행한다. if문끼리 중첩되면 두 조건이 모두 참일 때만 명령을 실행하는데 and 논리 연산자로도 비슷한 효과를 낼 수 있다.

    동시에 점검할 때는 and 논리 연산자가 편하지만 한쪽 if문에 else절이 있거나 추가적인 다른 조건을 더 점검할 때는 if문을 중첩시켜야 한다.

    man = True
    age = 10
    
    if man == True:
        if age >= 19:
            print("성인 남자")
        else:
            print("소년")

    and를 사용하면 if man == True:를 반복해야 한다. 불필요한 코드가 반복되면 구조가 나빠져 수정하기 번거로워진다. 짧으면서 읽기 쉬운 코드 작성에 노력하기.

    'Python' 카테고리의 다른 글

    07. 함수  (0) 2021.01.20
    06. 반복문  (0) 2021.01.20
    04. 연산자  (0) 2021.01.20
    03. 타입  (0) 2021.01.20
    02. 변수  (0) 2021.01.20

    댓글

Designed by Tistory.