Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
给出HTML页面的python代码上出现异常_Python - Fatal编程技术网

给出HTML页面的python代码上出现异常

给出HTML页面的python代码上出现异常,python,Python,对于一个学校项目,我必须用python做一个翻译。任务是使用字典功能进行翻译 翻译程序只包含20个单词,用不同的语言写在一个txt文件中。必须翻译的单词、初始语言和最终语言都来自html表单。而且结果必须打印在html页面上。我的程序可以运行,但我无法管理异常 当表单中的word字段留空或使用txt文件中没有的word时,程序必须打印特定的消息错误 我尝试了Try/except,但html只给了我一个白色页面。有人能解释一下为什么这样不行吗?而且,这只会解决字段为空时的问题,当我键入txt文件中

对于一个学校项目,我必须用python做一个翻译。任务是使用字典功能进行翻译

翻译程序只包含20个单词,用不同的语言写在一个txt文件中。必须翻译的单词、初始语言和最终语言都来自html表单。而且结果必须打印在html页面上。我的程序可以运行,但我无法管理异常

当表单中的word字段留空或使用txt文件中没有的word时,程序必须打印特定的消息错误

我尝试了Try/except,但html只给了我一个白色页面。有人能解释一下为什么这样不行吗?而且,这只会解决字段为空时的问题,当我键入txt文件中没有的单词时,如何获得正确的错误消息

import cgi
import cgitb
cgitb.enable()
print "Content-Type: text/html"
print
form= cgi.FieldStorage()
try:
    language1 = str(form["startlanguage"].value)
    language2 = str(form["finallanguage"].value)
    word = str(form["word"].value)
    translator= dict ()
    if language1=="ita" and language2=="eng":
            itaeng= open("itafraeng.txt", "r")
            for row in itaeng:
                    wordita, wordfra, wordeng = riga.split()
                    translator[wordita]=wordeng
            itaeng.close()        
    print '''<html>
             <body>
             <p>%s = %s </p>
             </body>
             <html>''' % (word, translator[word])

except KeyError:
   print ' Error '
导入cgi
进口cgitb
cgib.enable()
打印“内容类型:文本/html”
打印
form=cgi.FieldStorage()
尝试:
language1=str(形式[“startlanguage”].value)
language2=str(格式[“finallanguage”].value)
word=str(形式[“word”].值)
翻译器=dict()
如果语言1==“ita”和语言2==“eng”:
itaeng=open(“itafraeng.txt”、“r”)
对于itaeng中的行:
wordita,wordfra,wordeng=riga.split()
翻译器[wordita]=wordeng
itaeng.close()
打印“”'
%s=%s

“%”(word,翻译程序[word]) 除KeyError外: 打印“错误”

编辑:有人告诉我,在我的旧代码中,我并没有真正使用dictionary函数,所以我试图更改它,但现在它不再起作用了。有人能解释一下原因吗?

除外KeyError:“Error”
替换为
除外e:print(e)
并发布错误消息。似乎您的代码中总是有错误,所以它总是执行
,除了KeyError:
,但您不使用
打印
来显示任何内容。您也可以使用
打印
来显示变量中的所有值-这将帮助您发现问题。@furas我完全忘记了在except KeyError中的打印。现在,当表单中的文本框为空时,将显示正确的错误消息,因此,谢谢!但是,当我尝试翻译txt文件中没有的单词时,如何设置正确的错误消息?您可以在开始时设置
found=False
。然后使用
if word==wordita:found=True
,这样最后你可以使用
if not found:print“not found”