我正在尝试将数组转换为百分比更改数组。这很简单,但是我不知道为什么会出现零除错误。我试过

from __future__ import division

在我文件的顶部,但没有骰子。

我的代码:
def convert(anarr):
     x = 1
    while(x < len(anarr)):
        anarr[x] = (anarr[1] - anarr[x])/anarr[1]
        x += 1
    print anarr

主要:
>>>
>>>
>>> myarr = [20130101.0,34.75,34.66,34.6,34.6,34.61,34.65,34.69]
>>> convert(myarr)
>>> Traceback (most recent call last):
  File "<pyshell#10>", line 1, in <module>
    convert(myarr)
  File "C:\Users\viral\Desktop\python\mapping.py", line 38, in convert
    anarr[x] = (anarr[1] - anarr[x])/anarr[1]
ZeroDivisionError: float division by zero

最佳答案

由于您正在修改数组,因此其中一个元素变为0会导致错误。数组中有连续的34.6s,百分比变化为0。将更改放入新数组中,如果需要,以后再复制。

10-08 01:56