Python控制流-列表元素到无效元素的总和



我要写一个函数-list_sum(numbers, n),它以值列表和一个整数作为参数。此函数应返回列表中n整数的总和,其中n定义了所需整数的数量。

注意-我们可以假设列表不是空的,并且整数是有效的(即n小于列表的大小(。

如果列表中包含任何无效值,则函数应终止计算,并返回不包括无效值的累计总和。

注意:在解决方案中有必要使用try... except语法。例如,以下代码片段:

my_list = [1, 2, 3, 4, 'NA', 2]
print(list_sum(my_list, 5))

打印

10

函数只返回前四个整数的和。

例如:

my_list = [1, 2, 3, 4, -2, 2]
print(list_sum(my_list, 4))
Output - 10

my_list = [1, 2, 3, 4, "NA", 2]
print(list_sum(my_list, 6))
Output - 10

我已经编写了一个代码,但在无效元素后面也包含字符。我该如何解决这个问题?

我的代码:

def list_sum(numbers,n):
res = 0
for i in range(n):
try:
res += numbers[i]
except (TypeError, ValueError):
pass
return res

只需将except块中的pass替换为return res,因为return语句将终止计算并返回累计和,但不包括无效值。:

def list_sum(numbers, n):
res = 0
for i in range(n):
try:
res += numbers[i]
except (TypeError, ValueError):
return res
return res
my_list = [1, 2, 3, 4, -2, 2]
print(list_sum(my_list, 4))
my_list = [1, 2, 3, 4, "NA", 2]
print(list_sum(my_list, 6))

输出:

10
10
def list_sum(numbers,n):
res = 0
for i in range(n):
try:
res += numbers[i]
except (TypeError, ValueError):
break
return res

最新更新