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


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

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

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

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

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

  • 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) [결과] 합격입니다.

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

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로 전달

[결과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과 관련된 부분에서 정확하게 할 필요가 있다.