函数 which returns 所有参数的总和
Function which returns Sum of all arguments
我想创建一个函数,其中 return 是所有传递参数的总和。
我在论坛上发现了类似的问题,但它不适用于最后一个案例。
def sum_all(*args):
sum = 0
for num in args:
if not str(num).isdigit():
return False
else:
sum += int(num)
return sum
此代码适用于第一种和第二种情况,但 return 第三种情况为假。
sum_all(2,-3)
# -1
sum_all([3,4,5])
# 12
sum_all(1,2,[3,4,5])
# false
我怎样才能让它发挥作用?在最后一种情况下使它成为 return 15?
谢谢!
如果是列表,递归调用函数即可,例如:
def sum_all(*args):
sum = 0
for num in args:
if type(num) is list:
sum += sum_all(*num)
else:
sum += int(num)
return sum
可以用这个
def sum_all(*args):
s = 0
for a in args:
if type(a)==list:
s+=sum(a)
else:
s+=int(a)
return s
print(sum_all(2,-3))
print(sum_all([3,4,5]))
print(sum_all(1,2,[3,4,5]))
我想创建一个函数,其中 return 是所有传递参数的总和。
我在论坛上发现了类似的问题,但它不适用于最后一个案例。
def sum_all(*args):
sum = 0
for num in args:
if not str(num).isdigit():
return False
else:
sum += int(num)
return sum
此代码适用于第一种和第二种情况,但 return 第三种情况为假。
sum_all(2,-3)
# -1
sum_all([3,4,5])
# 12
sum_all(1,2,[3,4,5])
# false
我怎样才能让它发挥作用?在最后一种情况下使它成为 return 15? 谢谢!
如果是列表,递归调用函数即可,例如:
def sum_all(*args):
sum = 0
for num in args:
if type(num) is list:
sum += sum_all(*num)
else:
sum += int(num)
return sum
可以用这个
def sum_all(*args):
s = 0
for a in args:
if type(a)==list:
s+=sum(a)
else:
s+=int(a)
return s
print(sum_all(2,-3))
print(sum_all([3,4,5]))
print(sum_all(1,2,[3,4,5]))