1. Learn
  2. /
  3. Courses
  4. /
  5. Python의 객체 지향 프로그래밍

Connected

Exercise

예외 잡기

직접 사용자 정의 예외를 만들기 전에, 먼저 예외를 처리하는 기본기를 확실히 다져 보겠습니다.

이 연습 문제에서는 두 개의 인수, 리스트 x와 인덱스 ind를 받아서 해당 인덱스의 리스트 원소를 역수로 바꾸는 함수 invert_at_index(x, ind)가 주어져 있어요. 예를 들어 invert_at_index([5,6,7], 1)은 1/6, 즉 0.166666을 반환합니다.

우선 코드를 그대로 실행해 보고 콘솔 출력을 살펴보세요. 이 함수에는 위험한 연산이 두 가지 있어요. 첫째, 역수를 취하려는 원소의 값이 0이면 ZeroDivisionError 예외가 발생합니다. 둘째, 함수에 전달한 인덱스가 리스트의 범위를 벗어나면 IndexError가 발생합니다. 두 경우 모두 스크립트가 중단되는데, 이는 바람직하지 않을 수 있어요.

Instructions

100 XP

함수 내부에 try - except - except 패턴(두 개의 except 블록 포함)을 사용해 다음 두 예외를 처리하세요:

  • 코드를 그대로 try로 실행하고,
  • ZeroDivisionError가 발생하면 "Cannot divide by zero!"를 출력하고,
  • IndexError가 발생하면 "Index out of range!"를 출력하세요.

정답이라면, 코드가 오류 없이 실행되고 콘솔 출력은 다음과 같아야 합니다.

0.16666666666666666
Cannot divide by zero!
None
Index out of range!
None