logo
Search검색어를 포함하는 게시물들이 최신순으로 표시됩니다.
    Table of Contents
    [Python] 흐름과 제어 - if

    이미지 보기

    [Python] 흐름과 제어 - if

    • 21.12.31 작성

    • 읽는 데 8

    TOC

    참고 강의

    SWEA 파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법 #12


    if 문

    • 어떤 조건을 만족하는 경우, 조건식의 결과에 따라 명령문을 수행하기 위해 사용
    • if 조건식의 수행 결과는 True, False로 나뉜다.

    if 문의 문법

    if 조건식 :
      명령문
      명령문
      명령문
    
    • 조건식의 끝에 콜론(:)을 적는다. 이때 콜론은 앞에 공백이 있어도 되고 없어도 된다.
    • 해당 조건식에 True일 경우 수행할 명령문을 코드블록으로 구성해 기술한다. 이를 들여쓰기로 구분한다.
    score = 80
    if score >= 60:   # score = 80 >= 60 이므로 True 반환
      print("%d 점" % score)
      print("합격입니다.")
    
    [결과]
    80점
    합격입니다.
    

    만약 들여쓰기가 제대로 되지 않는다면?

    IndentationError 발생

    score = 80
    if score >= 60:   # score = 80 >= 60 이므로 True 반환
      print("%d 점" % score)
        print("합격입니다.")
    
    [결과]
    File "...", line 4
    IndentationError: unexpected indent
    

    if문 문법의 예외

    if문의 조건식을 만족하여 실행되는 명령문이 한 줄일 경우, 한 줄에 바로 작성할 수 있다. 단, 수행해야 하는 명령이 단순하고 가독성에 문제가 없을 경우에만 사용

    score = 80
    if score >= 60: print("합격입니다.")
    
    [결과]
    합격입니다.
    

    합격/불합격 메시지 출력 예시

    result = "불합격입니다."
    score = 50
    
    if score >= 60:   # score가 60점 미만이면, if문 블록 실행 X
      result = "합격입니다."  # result를 재할당
    
    print(result)
    
    [결과]
    불합격입니다.
    

    if ~ else 문

    어떤 조건을 만족하는 경우의 명령문과 만족하지 않았을 경우의 명령문을 상호 배타적으로(exclusive or) 사용하는 경우 사용

    if ~ else 문의 문법

    • if 문과 else 문의 들여쓰기 수준은 같아야 한다.
    • if 블럭과 else 블럭의 사이는 행 공백이 있으면 안되고 붙여야 한다.
    if 조건식 :
      명령문  # True일 때 실행문
      명령문
      명령문  # 행 사이의 간격을 띄지 않는다.
    else 키워드 :
      명령문  # False일 때 실행문
      명령문
      명령문
    

    합격/불합격 메시지 출력 예시

    score = 80
    
    if score >= 60:
      print("합격입니다.")
    else:
      print("불합격입니다.")
    
    [결과]
    합격입니다.
    

    특정 조건에 따라 변수의 값만 변경이 필요한 경우

    score = 80
    result = "합격입니다." if score >= 60 else "불합격입니다."
    print(result)
    
    [결과]
    합격입니다.
    

    if ~ elif ~ else 문

    2개 이상의 다중 조건을 처리하고자 할 때 사용

    if ~ elif ~ else 문의 문법

    if 조건식 :
      명령문1
      명령문2
      명령문3
    elif 조건식2 :
      명령문4
      명령문5
      명령문6
    else :
      명령문7
      명령문8
    

    특정 조건에 따라 변수의 값만 변경이 필요한 경우

    score = 70
    
    if score >= 90:
      grade = "A"
    elif 80 <= score < 90:
      grade = "B"
    elif 70 <= score < 80:
      grade = "C"
    elif 60 <= score < 70:
      grade = "D"
    else:
      grade = "F"
    print("%d 점은 %s 등급입니다." % (score, grade))  # tuple로 전달
    

    if 문을 활용해 계산기 만들기

    [결과1] 첫 번째 숫자를 입력하세요: 2 연산자를 입력하세요 (+, -, *, /): + 두 번째 숫자를 입력하세요: 3 2 + 3 = 5

    [결과2] 첫 번째 숫자를 입력하세요: 2 연산자를 입력하세요 (+, -, *, /): # 두 번째 숫자를 입력하세요: 3 '#'는 본 프로그램에서 지원하지 않는 연산자입니다.

    나의 답

    num_1 = int(input("첫 번째 숫자를 입력하세요: "))
    ysj = input("연산자를 입력하세요 (+,-,*,/): ")
    num_2 = int(input("두 번째 숫자를 입력하세요: "))
    
    if ysj is "+":
      print("{0} {1} {2} = {3}".format(num_1, ysj, num_2, num_1 + num_2))
    elif ysj is "-":
      print("{0} {1} {2} = {3}".format(num_1, ysj, num_2, num_1 - num_2))
    elif ysj is "*":
      print("{0} {1} {2} = {3}".format(num_1, ysj, num_2, num_1 * num_2))
    elif ysj is "/":
      print("{0} {1} {2} = {3}".format(num_1, ysj, num_2, num_1 / num_2))
    else:
      print("'{0}'는 본 프로그램에서 지원하지 않는 연산자입니다.".format(ysj))
    

    모범 답안

    # -*- coding: utf-8 -*-
    
    # calculator.py
    
    """
    if 문을 활용해 아래의 실행 결과를 반영한 간단 계산기를 만들어 봅시다.
    
    [ 실행 결과 1]
    첫 번째 숫자를 입력하세요: 2
    연산자를 입력하세요 (+, -, \*, /): +
    두 번째 숫자를 입력하세요: 3
    2 + 3 = 5
    
    [ 실행 결과 2]
    첫 번째 숫자를 입력하세요: 2
    연산자를 입력하세요 (+, -, \*, /): #
    두 번째 숫자를 입력하세요: 3
    '#'는 본 프로그램에서 지원하지 않는 연산자입니다.
    """
    
    # 변수 초기화
    operand1, operator, operand2 = 0, "", 0
    
    operand1 = int(input("첫 번째 숫자를 입력하세요: "))
    operator = input("연산자를 입력하세요 (+,-,*,/): ")
    operand2 = int(input("두 번째 숫자를 입력하세요: "))
    
    # if ~ elif ~ else 문
    if operator == "+":
      print("%d + %d = %d" % (operand1, operator, operand2, operand1 + operand2))
    elif operator == "-":
      print("%d - %d = %d" % (operand1, operator, operand2, operand1 - operand2))
    elif operator == "*":
      print("%d * %d = %d" % (operand1, operator, operand2, operand1 * operand2))
    elif operator == "/":
      print("%d / %d = %.2f" % (operand1, operator, operand2, operand1 / operand2))
    else:
      print("'%s'는 본 프로그램에서 지원하지 않는 연산자입니다." % operator)
    
    • 최초 코딩 지시자를 이용해 소스파일에 대한 인코딩 정보를 기술한다.
    • 파일 이름을 주석으로 달아준다.
    • -% 포맷팅 또는 .format() 포맷팅을 하면 되는데, 강의에서는 -% 포맷팅 채택
    • python에서 나눗셈의 경우 format과 관련된 부분에서 정확하게 할 필요가 있다.
    profile

    FE Developer 박승훈

    노력하는 자는 즐기는 자를 이길 수 없다