Python和XHTML中的错误是什么意思?

时间:2011-08-07 19:32:15

标签: python xhtml

一直显示此错误

Traceback (most recent call last):
  File "/home/zca22/public_html/Lab_Assn_5/Scripts/dice.py", line 7, in <module>
    playerGuess = int(formData["guess"].value)
  File "/usr/lib/python2.6/cgi.py", line 541, in __getitem__
    raise KeyError, key
KeyError: 'guess'

我不知道我的代码有什么问题。

import cgi
import random

formData = cgi.FieldStorage()
playerName = formData["name"].value
playerGuess = int(formData["guess"].value)
theLength = 5
sum = 0

print "Content-type: text/html"

print "<p>Thanks for playing, " + playerName + ",</p>"

for die in range(theLength):
    val = random.randint(1,6)
    print '<img src = "Images/dice-%i.gif" alt="%i" width="107" height="107" />' % (val, val)
    sum = sum + val

print "<p>You bet the total would be at least " + playerGuess + ". The total rolled was " + sum + ".</p>"

if playerGuess >= sum:
    print "<p>You won!</p>"
else:
    print """<p>Sorry, you lose!</p>
      </body>
      </html>"""

5 个答案:

答案 0 :(得分:1)

看起来你不是POST guess值。你应该在页面之前有这样的东西:

<form action="/cgi-bin/guess.py" method="post">
    <dl>
        <dt><label for="name_field">Name:</label></dt>
        <dd><input type="text" id="name_field" name="name" required="required" /></dd>
        <dt><label for="guess_field">Guess:</label></dt>
        <dd><input type="number" id="guess_field" name="guess" min="1" max="6" step="1" required="required" /></dd>
    </dl>
    <p><input type="submit" value="Guess" /></p>
</form>

答案 1 :(得分:0)

您的代码希望guess的值在表单数据字典中,但它不存在。

答案 2 :(得分:0)

这意味着表单没有“猜测”条目,但它确实有一个“名称”条目。

答案 3 :(得分:0)

用户输入字典"guess"中没有formData条目。您确定在提交的确切形式中有<input name="guess" value="3" />这样的字段吗?

答案 4 :(得分:0)

在Python dict词典数据类型中,每个条目都有。您的代码formData["guess"]尝试访问密钥formData下的字典"guess"以检索基础值。

由于您获得了KeyError,因此您的词典没有名为"guess"的密钥。由于字典是由cgi.FieldStorage()调用填充的,因此可以解释为您的cgi表单对象没有名称为“guess”的字段。