0
#!/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が初めてなので、助けていただければ幸いです。ありがとうございました!

4

4 に答える 4

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\">'
于 2013-07-29T21:33:18.530 に答える
1

すでに二重引用符を含む文字列を二重引用符で囲みました。Python は、文字列が の後PUBLICに終わると見なし、その次はマイナス記号の後に除算記号が続くように見えますが、これはエラーです。その上、文字列を継続文字なしで 2 行に分割しているため、機能しません。三重引用符を使用して、文字列が次の行に続くようにします (これにより、埋め込まれた"文字の問題も解決されます)。

 print '''<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'''
于 2013-07-29T21:33:47.300 に答える
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">"""
于 2013-07-29T21:33:53.110 に答える