python print()函数中的option end=“”工作不一致

2024-09-27 02:15:50 发布

您现在位置:Python中文网/ 问答频道 /正文

以下python代码:

import xml.sax

class C_Handler(xml.sax.ContentHandler):

    def startDocument(self):
        print("<html><head><title>Lieferungen</title></head>")
        print("<body><h1>Lieferungen</h1><hr>\n")
        print("<table border=\"1\"><tr><th>Nummer</th><th>Artikel</th><th>preis</th><th>Lieferant</th></tr>\n")


    def startElement(self, tag, attributes): 
        if tag == "artikel":
            print("<tr><td>{}</td> <td>".format(attributes["id"]),end="")
        if tag == "preis":
            print("</td> <td>", end="")
        if tag == "lieferant":
            print("</td> <td>", end="")

    def endElement(self, tag):
        if tag == "lieferant":
            print("</td> </tr>")

    def characters(self, content):
        print("{}".format(content), end="")

    def endDocument(self):
        print("\n</table>\n</body>\n</html>\n")

if ( __name__ == "__main__"):

    c = C_Handler()

    xml.sax.parse("lieferungen.xml", c)

应转换以下xml文件:

<?xml version="1.0"?>
<lieferungen>
     <artikel id="3526">
         <name>apfel</name>
         <preis stueckpreis="true">8.97</preis>
         <lieferant>Fa. Krause</lieferant>
     </artikel>
</lieferungen>

输入以下输出:

<html><head><title>Lieferungen</title></head>
<body><h1>Lieferungen</h1><hr>

<table border="1"><tr><th>Nummer</th><th>Artikel</th><th>preis</th><th>Lieferant</th></tr>

<tr><td>3526</td> <td> apfel </td> <td> 8.97 </td> <td> Fa. Krause </td> </tr>

</table>
</body>
</html>

然而,我得到的是:

<html><head><title>Lieferungen</title></head>
<body><h1>Lieferungen</h1><hr>

<table border="1"><tr><th>Nummer</th><th>Artikel</th><th>preis</th>   <th>Lieferant</th></tr>


     <tr><td>3526</td> <td> 
        apfel  
       </td> <td> 8.97  
       </td> <td> Fa. Krause </td> </tr>

</table>
</body>
</html>

换句话说:print函数中的end=“”选项不能按预期工作。奇怪的是: 有时它会起作用(在“Fa”之后)。在其他情况下(例如在“apfel”之后),它不起作用。因为两个都是“Fa”。“Krause”和“apfel”是字符数据,characters()方法由内容处理程序应用于每种情况。尽管如此,结果还是不一样,这让整件事变得异常怪异。你知道吗


Tags: titledefhtmltagtablebodyxmlh1

热门问题