Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 空中扑救卡塔蟒蛇_Python - Fatal编程技术网

Python 空中扑救卡塔蟒蛇

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(

我已经为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(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
等等)。