Python 空中扑救卡塔蟒蛇
我已经为codewars问题构建了一个代码。我认为这是正确的,但它显示了一个我不理解的错误 你能告诉我我做错了什么吗Python 空中扑救卡塔蟒蛇,python,Python,我已经为codewars问题构建了一个代码。我认为这是正确的,但它显示了一个我不理解的错误 你能告诉我我做错了什么吗 import math def waterbombs(fire, w): s="" countx=0 for i in fire: if i=="x": countx+=1 elif i=="Y": countx=0 return sum(math.ceil(
import math
def waterbombs(fire, w):
s=""
countx=0
for i in fire:
if i=="x":
countx+=1
elif i=="Y":
countx=0
return sum(math.ceil(countx/w))
waterbombs("xxYxx", 3)
这就是错误:
Traceback (most recent call last):
File "D:\Curso Python Pildorasinformaticas\Ejercicios Codewars\Aerial Firefighting.py", line 16, in <module>
waterbombs("xxYxx", 3)
File "D:\Curso Python Pildorasinformaticas\Ejercicios Codewars\Aerial Firefighting.py", line 13, in waterbombs
return sum(math.ceil(countx/w))
TypeError: 'int' object is not iterable
回溯(最近一次呼叫最后一次):
文件“D:\Curso-Python-pildorasisinformaticas\Ejercicios-Codewars\air-firstion.py”,第16行,在
水桶(“xxYxx”,3)
文件“D:\Curso-Python-pildorasisinformaticas\Ejercicios-Codewars\air-firstics.py”,第13行,在waterbombs中
返回和(数学单元(countx/w))
TypeError:“int”对象不可编辑
[以0.2s完成]你为什么要做
sum(math.ceil(countx/w))
?
这里的sum
方法的目标是什么,因为只有math.ceil返回值
如果向总和传递一个值,它将抛出该错误。您应该传递sum
方法的值列表
例如:
sum(5)
会给你上面看到的错误,但是sum([5])
会给你返回5。一个值的和是什么?math.ceil()
会给你一个int
结果sum()
适用于iterables(例如,包含int
s)。对比一下sum(1)
(它会给你收到的错误信息)和sum([1])
,它会给你1
作为答案,因为这是一个包含int
的iterable(在本例中是一个列表)的总和(因此,sum([1,2,3])
会给你6
等等)。