В
Все
Х
Химия
В
Видео-ответы
А
Алгебра
Г
Геометрия
О
ОБЖ
Д
Другие предметы
У
Українська література
Р
Русский язык
Б
Беларуская мова
У
Українська мова
Э
Экономика
Ф
Физика
М
Математика
Ф
Французский язык
Г
География
И
Информатика
М
МХК
О
Окружающий мир
П
Психология
Н
Немецкий язык
О
Обществознание
П
Право
И
История
М
Музыка
Л
Литература
Қ
Қазақ тiлi
Б
Биология
А
Английский язык
serikbyasy
serikbyasy
15.06.2021 08:47 •  Информатика

Python Найти ошибку и исправить её


Python Найти ошибку и исправить её

Ответ:
suchilinaelya
suchilinaelya
15.10.2020 14:51

1: Объект set не реализует __getitem__, соответственно, доступ к элементам set по индексу невозможен. Приведите set к list для получения доступа к элементу по индексу

2: Функция elem не осуществляет проверку правильности вводимых данных, в следствии чего неверные параметры при вызове функции elem могут поднять исключение IndexError: string/list index out of range.

Пояснения:

Используйте Type Hints для указания принимаемого и возвращаемого типа для функции, а так же добавьте проверку получаемых функцией параметров:

import typing

from typing import List

from typing import Any

def elem(data: List[Any], index: int) -> bool :

   try:

      print(data[index]); return True

   except: return False

elem(list(set('string')), 3)

В предложенном примере кода функция возвращает True или False. в зависимости от результата выполнения. Вы можете добавить декоратор, который будет выводить в консоль сообщение об ошибке вызова без прерывания выполнения программы:

import typing

from typing import List

from typing import Any

from typing import Callable

def Status(func: Callable[[Any], bool]):

   def _wrap(*a, **kw):

       res = func(*a, **kw)

       if not res:

           print('error occurred during call function')

   return _wrap

@Status

def elem(data: List[Any], index: int) -> bool :

   try:

      print(data[index]); return True  

   except: return False

elem(list(set('string')), 3) # -> 'r'

elem(list(set('string')), 32) # -> 'Error occurred during call function'

   

Все примеры кода написаны для языка Python 3.8.3

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?