- 목차
- 특정 조건에 따른 명령문 수행을 위한 if 문
- 상호 배타적 명령문 수행을 위한 if ~ else 문
- 다중 조건을 처리하기 위한 if ~ elif ~ else 문
조건문
질문에 대한 답을 기반으로 작업 수행을 결정하는 문장
파이썬은 조건문으로 if문을 제공하며, if문은 조건에 따라 프로그램이 다르게 수행되도록 만들 수 있다.
1. if문
if문
어떤 조건을 만족하는 경우, 명령문을 수행하기 위해 사용
반드시 True 혹은 False 값을 반환해야 한다.
if문의 문법
if 조건식 :
명령문
명령문
명령문
- 들여쓰기는 탭 또는 공백을 일관되게 사용할 것을 권장함.
- if문 조건식이 True일 경우 수행할 명령문을 코드 블록으로 구성해 기술
if문의 활용
- 점수가 60점 이상일 경우 합격메시지를 출력하는 코드
>>> score = 80 # 정수형의 값 80 저장
>>> if score >= 60: # score가 60 이상인지를 판단하는 if문 조건식은 True반환
print("%d 점" % score)
print("합격입니다.")
80 점
합격입니다.
if문 문법의 예외
>>> score = 80
>>> if score >= 60: print("합격입니다.")
합격입니다.
- if문 뒤에 수행할 명령문을 바로 적을수도 있다
- 수행해야 하는 명령이 단순하고 가독성에 문제가 없을 경우에만 사용
- 복잡하거나 가독성에 문제가 있을 경우 다음 행에 블록 구성하기
if문 블록의 다양한 명령문
score가 60점 이상일 경우 "합격입니다."라는 문자열이 저장되는 할당문 수행
>>> if score >= 60:
result="합격입니다."
print(result)
합격입니다.
한 줄에 다 쓰는 경우 문장 구분에서 오류가 난다
>>> score = 80
>>> if score >= 60:result = "합격입니다."print(result)
SyntaxError: invalid syntax
문장의 끝을 표시하는 구분기호(;)생략가능, 둘 이상의 문장을 한 줄에 기술할 경우 넣어주기
>>> score = 80
>>> if score >= 60:result="합격입니다."; print(result)
합격입니다.
합격 or 불합격 메시지 출력 if문
: 60점 이상일 경우 합격메시지, 60점 미만일 경우 불합격 메시지
>>> result = "불합격입니다."
>>> score = 80
>>> if score >= 60:
result="합격입니다."
print(result)
합격입니다.
- 출력을 위한 변수 result에 기본값 설정
- score가 60점 미만이면, if문 블록을 실행하지 않음
2. if ~ else 문
if ~ else 문
어떤 조건을 만족하는 경우의 명령문과 만족하지 않았을 경우의 명령문을 상호 배타적으로 수행하고자 할때 사용
if~else문의 문법
if 조건식 :
명령문
명령문 # True일 때 실행할 명령문
명령문
else 키워드 :
명령문
명령문 # False 일 때 실행할 명령문
명령문
if~else문의 활용
>>> score = 80
>>> if score >= 60:
print("합격입니다.")
else:
print("불합격입니다.")
합격입니다.
이때, if문과 else문은 상호 배타적으로 동작하므로, if문이 실행될 때 else문의 블록은 실행되지 않음
특정 조건에 따라 변수의 값만 변경이 필요한 경우
>>> result="합격입니다."if score>=60 else "불합격입니다."
>>> print(result)
합격입니다.
3. if ~ elif ~ else 문
if ~ elif ~ else문
: 2개 이상의 다중 조건을 처리하고자 할 때 사용
if ~ elif ~ else문의 문법
if 조건식:
명령문1
명령문2 # 블록1
elif 조건식2:
명령문3
명령문4 # 블록2
# elif문은 여러 번 작성 가능
else:
명령문5
명령문6 # 블록3
특정 조건에 따라 변수의 값만 변경이 필요한 경우
- 점수가 90점 이상일 때 A등급,
- 80점 이상 90점 미만 B등급
- 70점 이상 80점 미만 C등급
- 60점 이상 70점 미만 D등급
- 60점 미만 F등급
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))
>>> score=input("점수를 입력하세요:")
점수를 입력하세요:15
>>> 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))
Traceback (most recent call last):
File "<pyshell#71>", line 1, in <module>
if score >= 90 :
TypeError: '>=' not supported between instances of 'str' and 'int'
>=
비교 연산자는 정수형과 문자열의 비교 연산을 지원하지 않아서 오류가 남
→ 문자열을 반환하는 input() 함수의 적절한 타입 변환 필요
score=int(input("점수를 입력하세요:"))
점수를 입력하세요 : 88
>>> 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)
if문을 활용해 계산기 만들기
# -*- coding: utf-8 -*-
# 06-19.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 operator == "+":
print("%d + %d = %d" % (operand1, operand2, operand1 + operand2))
elif operator == "-":
print("%d - %d = %d" % (operand1, operand2, operand1 - operand2))
elif operator == "*":
print("%d * %d = %d" % (operand1, operand2, operand1 * operand2))
elif operator == "/":
print("%d / %d = %.2f" % (operand1, operand2, operand1 / operand2))
else:
print("'%s'는 본 프로그램에서 지원하지 않는 연산자입니다." % operator)