Hàm có ngoại lệ trong Python

Ngoại lệ rất tiện lợi để ném ra, bằng cách quy định chúng trong hàm thông qua các điều kiện.

Hãy tạo một hàm get_sum, hàm này sẽ trả về tổng các phần tử của danh sách chỉ khi độ dài danh sách nhỏ hơn hoặc bằng 3. Trong trường hợp ngược lại, hãy để nó ném ra ngoại lệ của chúng ta ToBigLength:

pythondef get_sum(lst):
  if len(lst) <= 3:
    return sum(lst)
  else:
    raise ToBigLength

Bây giờ hãy truyền vào hàm get_sum một danh sách và in kết quả hàm ra console:

pythonlst = [1, 2, 3, 4]

print(get_sum(lst)) # sẽ in ra 6

Ngoài ra, trong các hàm cũng có thể đặt việc bắt nhiều loại ngoại lệ. Hãy tạo thêm một lớp ngoại lệ ToSmallLength:

pythonclass ToSmallLength(Exception):
  pass

Bây giờ, hãy quy định trong hàm điều kiện: nếu độ dài danh sách bằng 0, thì hãy để nó ném ra ToSmallLength. Nếu không có ngoại lệ nào được ném ra, thì hãy để nó trả về tổng tất cả các phần tử của danh sách:

pythondef get_sum(lst):
  if len(lst) > 3:
    raise ToBigLength
  if len(lst) == 0:
    raise ToSmallLength
  else:
    return sum(lst)

Để tiện lợi, có thể đặt danh sách sẽ được truyền vào tham số hàm, bản thân hàm và lời gọi của nó vào khối try. Còn việc bắt hai ngoại lệ của chúng ta sẽ đặt trong các khối except:

pythontry:
  lst = [1, 2, 3]
  res = get_sum(lst)
  print(res)
except ToBigLength:
  print('error 1')
except ToSmallLength:
  print('error 2')
Задание 1

Tạo một hàm nhận một số làm tham số. Trong đó, hãy quy định các điều kiện: nếu số đó âm và bằng 0, thì hãy để nó ném ra các ngoại lệ tương ứng. Trong trường hợp ngược lại, hãy để số đó được nhân với 3.

Задание 2

Kiểm tra hoạt động của hàm bạn vừa tạo bằng cách sử dụng cấu trúc try-except. Đồng thời cũng hãy bắt các ngoại lệ của bạn.