Как игнорировать строку в функции, которая принимает несколько аргументов в python? - PullRequest
1 голос
/ 18 марта 2020

Я пытаюсь ответить на python вопрос программирования:

Напишите функцию operate_nums, которая вычисляет произведение всех других входных аргументов и возвращает отрицательный результат, если ключевое слово аргумент negate (по умолчанию False) - True или просто продукт, если negate - False. Функция должна игнорировать нечисловые c аргументы.

Пока у меня есть следующий код:

def operate_nums(*args):
     product = 1
     negate = True

     for i in args:
         product = product * i

     if negate == True:
         return product * -1
     return product

Если я введу набор чисел и строк в свой аргумент как это будет кодировать, чтобы мой код игнорировал строки?

1 Ответ

3 голосов
/ 18 марта 2020

Используйте isinstance, что позволяет вам проверять тип вашей переменной. Как указано в одном из комментариев @DarrylG, вы можете использовать Number в качестве индикатора того, является ли аргумент тем, который вы хотите умножить на

from numbers import Number

def operate_nums(*args, negate=False):
    product = 1

    for arg in args:
        if isinstance(arg, Number): # check if the argument is numeric
            product = product * arg

    if negate == True:
            return product * -1

    return product
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...