#!/usr/bin/python
# Import modules for CGI handling
import cgi, cgitb
# Create instance of FieldStorage
form = cgi.FieldStorage()
name = form.getvalue('name')
age = int(form.getvalue('age')) + 1
print "Content-type: text/html"
print
print "<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">"
print "<html>"
print "<head><title></title></head>"
print "<body>"
print "<p> Hello, %s</p>" % (name)
print "<p> Next year, you will be %s years old.</p>" % age
print "</body>"
print "</html>"
每当我写下DOCTYPE时,我都会收到无效语法错误。不知道是什么问题。由于我是python的新手,所以将不胜感激。谢谢!
答案 0 :(得分:1)
使用不同的引号:
print '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'
Print语句将中间的引号视为结束引号。您需要使用/“或使用不同的引号来逃避引号。
print '<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">'
答案 1 :(得分:1)
您已双引号已包含双引号的字符串。 Python认为你的字符串在PUBLIC
之后结束,接下来的事情似乎是一个减号后跟一个分号,这是一个错误。最重要的是,您已将字符串分成两行而没有任何连续字符,这将无效。使用三引号允许字符串从一行继续到下一行(这也将解决嵌入的"
字符的问题。)
print '''<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'''
答案 2 :(得分:1)
您的引号存在冲突(请注意该行后语法突出显示如何中断)。
使用单引号:
print '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" '
'"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'
或三重引用它:
print """<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">"""
答案 3 :(得分:1)
对于那些“长多行文字”,您可能更喜欢使用triple quotes("""
)。
与任何最新版本的Python上可用的format
字符串方法相结合,您可以获得穷人的模板引擎:
tmpl = """Content-type: text/html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head><title></title></head>
<body>
<p> Hello, {name}</p>
<p> Next year, you will be {age} years old.</p>
</body>
</html>
"""
print tmpl.format(name='Sylvain', age=40)