python零分割错误。浮点除零。简单的脚本

时间:2014-02-20 05:47:18

标签: python arrays error-handling

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

anarr [x] =(anarr [1] - anarr [x])/ anarr [1]第一次起作用后,anarr [1]变为0。

所以,这不是一个错误。你对函数转换的定义就是这样的。