Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2024, 11:56   #1
Nicodim
Пользователь
 
Регистрация: 31.05.2023
Сообщений: 27
По умолчанию Программирование на Python инструкция raise

Здравствуйте, помогите пожалуйста разобраться с кодом не проходит тесты.

Напишите функцию sum_numbers, которая принимает один аргумент numbers. Это должен быть список, состоящий из целых и вещественных чисел. Функция sum_numbers должна возвращать сумму всех элементов списка, но прежде чем находить сумму необходимо выполнить следующие проверки:

Аргумент numbers должен быть именно списком, если передан другой тип, необходимо выкинуть исключение TypeError('Аргумент numbers должен быть списком')

numbers не должен быть пустым, иначе возбуждаем исключение ValueError("Пустой список")

внутри numbers должны быть только типы int и float, иначе возбуждаем исключение TypeError('Неправильный тип элемента')

Sample Input:

Sample Output:

Аргумент numbers должен быть списком
Аргумент numbers должен быть списком
Аргумент numbers должен быть списком
Аргумент numbers должен быть списком
Пустой список
Неправильный тип элемента
Неправильный тип элемента
Неправильный тип элемента
Неправильный тип элемента

Тест кода.

# Ниже код для проверки функциии sum_numbers

for value in (True, (1, 2, 3), {1: 'hello'}, {1, 2, 3}):
try:
result = sum_numbers(value)
except TypeError as error:
print(error)

try:
result = sum_numbers([])
except ValueError as error:
print(error)

try:
sum_numbers([1, 'hello', 2, 3])
except TypeError as error:
print(error)

try:
sum_numbers([1, 2, 3, 4, 5, [1, 2, 3]])
except TypeError as error:
print(error)

try:
sum_numbers([1, 2, 3, 4, 5, {1, 2, 3}])
except TypeError as error:
print(error)

try:
sum_numbers([1, 2, 3, 4, 5, (1, 2, 3)])
except TypeError as error:
print(error)

assert sum_numbers([1, 2, 3, 4, 5]) == 15
assert sum_numbers([1, 2, 3, 4, 5.0]) == 15.0





Код:
def sum_numbers(numbers):
    if not isinstance(numbers, list):
        raise TypeError('Аргумент numbers должен быть списком')
    if not numbers:
        raise ValueError("Пустой список")
    for num in numbers:
        if not isinstance(num, (int, float)):
            raise TypeError('Неправильный тип элемента')
    return sum(numbers)

Последний раз редактировалось Nicodim; 14.12.2024 в 10:16.
Nicodim вне форума Ответить с цитированием
Старый 13.12.2024, 16:56   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,394
По умолчанию

Если вы отсылаете не только сам код функции sum_numbers, но и код для проверки функции, то не отсылайте код из раздела "# Примеры использования", а только код из раздела "# Ниже код для проверки функциии sum_numbers".
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 14.12.2024, 10:28   #3
Nicodim
Пользователь
 
Регистрация: 31.05.2023
Сообщений: 27
По умолчанию

Благодарю вас за подсказки!!!!
Nicodim вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программирование на Python Nicodim Помощь студентам 5 05.11.2024 13:18
Программирование на Python Задача на программирование покрытие отрезками Nicodim Помощь студентам 2 29.12.2023 21:19
Программирование в Python fyz abkbvjyjdf Помощь студентам 1 17.12.2022 11:34
Программирование на python Семен_13 Python 7 17.10.2022 17:59
Как открыть страницу в RzPageControl из пакета Raise Vvolhv Компоненты Delphi 1 17.07.2013 15:21