我正在尝试将数组转换为百分比更改数组。这很简单,但我不知道为什么我会得到零分错误。我试过把
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 :(得分:1)
由于您正在修改数组,因此其中一个元素变为0会导致错误。阵列中有连续的34.6,其百分比变化为0.将更改放入新阵列,如果需要,可以稍后复制。
答案 1 :(得分:1)
anarr [x] =(anarr [1] - anarr [x])/ anarr [1]第一次起作用后,anarr [1]变为0。
所以,这不是一个错误。你对函数转换的定义就是这样的。