Понимание списка здесь не адаптировано, но это не значит, что мы не можем использовать функциональное программирование.
Используйте встроенные sum
и itertools.takewhile
для завершения итерации при собрании 13. Создает однострочник.
import itertools
def lucky_sum(a, b, c):
return sum(itertools.takewhile(lambda x:x!=13,[a, b, c]))
print(lucky_sum(1,2,3))
print(lucky_sum(1,13,3))
отпечатков 6
, затем 1
Переменная число аргументов версия:
def lucky_sum(*ip):
return sum(itertools.takewhile(lambda x:x!=13,ip))