Python -使用For循环创建带有异常代码的和



我需要创建一个代码,将字符串L中的所有数字相加。但是,如果exc中的数字存在于字符串L中,则它不会将数字集添加为exc。例如:Exc = 4L = [3,4,5]那么和是8。

下面是我到目前为止写的。

我如何修改代码使其工作?

def summedExcept(exc, L):
"""Takes sum of values in string L except for value defined as exc
"""

sum = 0
if exc in L:


else:
for exc in L:
sum += L

return sum

上面的答案是有效的,但只是另一种更简洁的方法:

L = [3,4,5]
exc = 4
print(sum([i for i in L if i != exc])) #8

你应该把if放在for句中:

def summedExcept(exc,L):
sum=0
for elem in L:
if elem!=exc:
sum += L
return sum

你不能在Python中调用变量sum,因为它是一个内置函数,你也可以在for循环中执行一个单行比较,使你的代码可读和清晰:

def summedExcept(exc,L):
s=0
for i in L:
s += i if i != exc else 0
return s

print(summedExcept(4,[4, 8, 5, 2, 1]))

输出:

16
def summedExcept(exc, L):
"""Takes sum of values in string L except for value defined as exc
"""
if exc in L:
sum_ = sum(L)-exc
else:
sum_ = sum(L)
return sum_

这是另一种不需要添加for循环或列表推导式的解决方案。只需从总和中减去exc。

相关内容

最新更新