querytimes = "SELECT video_id, COUNT(src_ip) FROM video GROUP BY video_id ORDER BY COUNT(src_ip) DESC"
cur.execute (querytimes)
dltimes = cur.fetchall()
for row in dltimes:
videoid = str(row [0])
downloadtimes = int(str(row [1]))
x.append(rank)
rank = rank + 1
y.append(downloadtimes)
v.append(videoid)
counter = dict(zip(v, y))
for n in xrange(1, max(counter.itervalues()) + 1):
perc = 100./sum(1 for nb in counter.itervalues() if nb == n)/len(counter)
if perc:
print '%.f%% videos have been downloaded %d times' % (perc, n)
这是我的代码。起初,我从数据库中读取数据,然后把视频ID和downloadtimes到字典中,并做了一些计算,但我得到了以下错误:ZeroDivisionError:float division` in python
perc = 100./sum(1 for nb in counter.itervalues() if nb == n)/len(counter) ZeroDivisionError: float division
谁能帮一点吗?
这是最后的'for'循环吗? 'if'部分应该在_inide_循环中,否则它只会执行一次 –