조건문
if, elif, else
indentation(들여쓰기) 사용
nesting(반복 중첩) 가능 (비권장)
boolean으로 표현
논리식 AND, OR, NOT 사용 가능
- 우선순위 NOT > AND > OR
예외 : 기본 타입 사용 가능
False 간주 값 (각 타입 기본값)
- None, 0, 0.0, ", (), [], {}, set()
- 이 외 모두 True
Q. 숫자를 입력받아 아래 조건에 맞게 결과를 출력하세요.
3의 배수이면 fizz
5의 배수이면 buzz
15의 배수이면 fizzbuzz
이 외의 경우 입력받은 숫자
num = int(input("Insert number: "))
if num % 15 ==0 :
print("fizzbuzz")
elif num % 5 ==0 :
print("buzz")
elif num % 3 ==0 :
print("fizz")
else:
print(num)
if num % 3 ==0 :
print("fizz", end="")
elif num % 5 ==0 :
print("buzz")
if not((num % 3 ==0) or (num % 5 ==0)):
print(num)
삼항연산
- condition이 True면 A를 리턴, False면 B를 리턴
A if (condition) else B
Q. 숫자를 입력받아 짝수이면 "even", 홀수이면 "odd"를 출력하세요.
num = int(input("Insert number: "))
"even" if num % 2 == 0 else "odd"
예외처리
- try, except
- 예외 변수 지정
- 모든 예외 검출
- Exception 클래스를 상속
ls = [1, 2, 3]
try:
# 5/0
# ls[4]
except Exception as e:
print(e)
- finally : try-except 구문 완료 후 실행
- raise : 에러를 발생시키는 예약어로 코드 실행이 중단됨
Q. 숫자 입력시 출력, 그 외 에러 발생
while True:
try:
num = int(input("insert number:"))
break
except:
print("숫자를 입력")
print(num)
Q. 이자율
이자율 입력시 1.03미만 또는 1.10 초과일 경우 메세지와 에러발생
__str__ : 오류 메세지를 print문으로 출력할 때 호출되는 메서드
class LowInter(Exception):
def __str__(self):
return "이자율을 1.03이상으로 설정"
class HighInter(Exception):
def __str__(self):
return "이자율을 1.10이하로 설정"
class Account:
def __init__(self, interest):
if interest < 1.03:
raise LowInter()
elif interest > 1.10:
raise HighInter()
else:
self.interest = interest
def disp(self):
interest = round((self.interest - 1)*100, 1)
return "계좌 설정 이자율은 {}%".format(interest)