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