Для цикла, не перебирающего аргументы

Я ввожу этот код дословно для класса, но он не работает. Я использую Python3.7. Он никогда не проходит дальше первого аргумента. Что случилось?

#function with variable number of arguments
def multi_add(*args):
    result = 0
    for x in args:
        result = result + x
        return result

print (multi_add(10, 4, 5))

person LDF    schedule 05.09.2020    source источник
comment
Вы return как только обработаете первый аргумент.   -  person 0x5453    schedule 05.09.2020


Ответы (2)


Я думаю, что ваш return result имеет неправильный отступ. Как бы то ни было, я ожидаю, что он вернется после первого аргумента, тогда как, если бы остался один отступ, он вернулся бы после завершения forloop.

person batman567    schedule 05.09.2020

Я бы предложил сделать это таким образом.

#function with variable number of arguments
def multi_add(*args):
    result = 0
    for x in args:
        result = result + x
        print(result)

multi_add(10,4,5)
person Community    schedule 05.09.2020