연습문제
1번 문제
두 수를 나누는 함수 div(a, b)가 있었을 때 b에 0이 입력되면 예외처리를 하여 정상작동이 되는 함수로 작성을 해주세요.
2번 문제
하나의 숫자에 제곱근을 구하는 함수 sqrt_number(num)이 있었을 때 자체 예외 NegativeNumberError를 정의하세요.
이 예외는 음수가 입력될 때 "음수의 제곱근은 계산할 수 없습니다."라는 메시지를 출력합니다.
3번 문제
사용자로부터 인덱스 값을 입력 받아서 리스트 ["apple", "banana", "cherry"]에서 해당 인덱스의 값을 출력하는 함수를 작성하세요.
사용자가 범위를 벗어난 인덱스를 입력하면 "리스트의 범위를 벗어났습니다."라는 메시지를 출력합니다.
답안
-
code
def div(a, b): try: return a / b except ZeroDivisionError: print('ZeroDivisionError') except: print('Error') div(3, '1') div(3, 0)
def div(a, b): try: return a / b except ZeroDivisionError: print('ZeroDivisionError') except: print('Error') div(3, '1') div(3, 0)
-
code
class NegativeNumberError(Exception): pass def sqrt_number(num): if num >= 0: return num ** 0.5 else: print('음수의 제곱근은 계산할 수 없습니다.') raise NegativeNumberError
class NegativeNumberError(Exception): pass def sqrt_number(num): if num >= 0: return num ** 0.5 else: print('음수의 제곱근은 계산할 수 없습니다.') raise NegativeNumberError
-
code
def get_item(num): item_list = ['apple', 'banana', 'cherry'] try: return item_list[num] except IndexError: return '리스트의 범위를 벗어났습니다.' except: # 이런 경우에 대비하시는 것이 좋습니다. return '예상치 못한 에러입니다.' num = int(input('인덱스 값을 입력해 주세요.: ')) get_item(num)
def get_item(num): item_list = ['apple', 'banana', 'cherry'] try: return item_list[num] except IndexError: return '리스트의 범위를 벗어났습니다.' except: # 이런 경우에 대비하시는 것이 좋습니다. return '예상치 못한 에러입니다.' num = int(input('인덱스 값을 입력해 주세요.: ')) get_item(num)