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' 부분은 루프 내부에 있어야합니다. 그렇지 않으면 한 번만 실행됩니다 –