Может ли кто-нибудь помочь мне найти проблему в моем скрипте Python? Этот скрипт просто отправляет запрос из HTML-формы с несколькими переключателями.
import cgi
from file import *
form = cgi.FieldStorage()
print "Content-type: text/html"
print
print """<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">"""
print "<html>"
print "<head>"
print "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\">"
print "<title></title>"
print "</head>"
print "<body>"
choice = form.getvalue('option')
f = File("onlineVotes.txt")
if choice is None:
print "<p class='error'>Please choose an option before voting.</p>"
print "<br><a href='onlinePoll.html' class='backVoteAgain'>Go back</a>"
else:
if f.exists() == False:
f.startWrite()
f.write(choice)
print choice
print "<div class='voteBar' style='width: 250px;'>"
print 1
print "</div>"
else:
f.startRead()
choice = f.read() + " " + choice
choiceList = choice.split()
filterList = []
for item in choiceList:
if item not in filterList:
filterList.append(item)
choiceDict = {}
for elem in filterList:
print "<br>" + elem
counts = choiceList.count(elem)
choiceDict['%s' % elem] = counts
maxValue = max(choiceDict.values())
barWidth = counts*250/maxValue
print "<div class='voteBar' style='width: %spx;'>" % str(barWidth)
print counts
print maxValue
print "</div>"
totalVotes = str(sum(choiceDict.values()))
print "<br>Total number of votes: " + totalVotes
f.startWrite()
f.write(choice)
f.close()
print "</body>"
print "</html>"
Проблема в том, что когда option1 получает 10 голосов, option2 получает 5 голосов, а option3 получает 3 голоса, значение max (choiceDict.values ()) равно 10, что является ожидаемым значением. Однако когда вариант 1 получает 10 голосов, вариант 2 получает 11 голосов, а вариант 3 получает 5 голосов, максимальное значение для варианта 1 остается равным 10, в то время как он равен 11 для варианта 2 и варианта 3.
Где я сделал не так?