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