Próbuję odpowiedzieć na pytanie programowania Pythona:

Napisz funkcję operate_nums, który oblicza produkt wszystkich innych argumentów wejściowych i zwraca jego negatyw, jeśli argument słów kluczowych negate (domyślnie False) jest True lub tylko produkt, jeśli {x3}} lub po prostu {X4}} oznacza False. Funkcja powinna ignorować argumenty numeryczne.

Póki co mam następujący kod:

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

     for i in args:
         product = product * i

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

Jeśli wprowadzam zestaw liczb i ciągów w moim argumencie, jak będzie go kodować, aby mój kod ignoruje struny?

1
pancakes 18 marzec 2020, 13:06

1 odpowiedź

Najlepsza odpowiedź

Użyj isinstance, który pozwala sprawdzić typ zmiennej. Jak wskazano w jednym z komentarzy @darrylg, możesz użyć Number jako wskaźnik, czy argument jest tym, który chcesz pomnożyć

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
3
balkon16 18 marzec 2020, 10:59