2016-06-01 8 views
0

Sorry für die Newbie Frage, aber ich versuche, eine Website in HTML mit Daten aus einer CSV-Datei erstellen, und mit Python, um es zu generieren. Eine Funktion im verwenden versucht, ist:Empfangen keine als Ergebnis einer Funktion

def html_table(heading1, data1): 
    print("""<table>  
     <tr> 
     <th>""" + str(heading1) + "</th><td>") 
    for i in data1: 
     print(str(i) + "</td><td>") 
    print("""</td> 
    </tr> 
    </table>""") 

ich in einem String als Überschrift Namen setzen, und eine Liste mit den Daten verwenden. Wenn ich es auf Python drucke, scheint es genau zu drucken, wie ich es will, aber wenn ich das HTML öffne, liest es es als NoneType. Dies ist, was Python druckt (mit meinen Werten):

<table> 
    <tr> 
     <th>Financial Year</th><td> 
<td>1981–82</td> 
<td>1982–83</td> 
<td>1983–84</td> 
<td>1984–85</td> 
<td>1985–86</td> 
<td>1986–87</td> 
<td>1987–88</td> 
<td>1988–89</td> 
<td>1989–90</td> 
</tr> 
    </table> 

etc ... Meine Frage ist, warum mein html nicht den zweiten Teil des Codes als String zu lesen?

Vielen Dank im Voraus.

+0

[Jinja2] (http://jinja.pocoo.org/docs/dev/) ist eine ausgezeichnete Templat-Bibliothek für diese Art von Problem. – Horba

Antwort

1

Das liegt daran, dass Ihre Funktion nichts zurückgibt. Es druckt nur Zeug.

Sie wollen, dass die Zeichenfolge return nicht print es:

def html_table(heading1, data1): 
    return """<table> 
    <tr> 
     <th>""" + str(heading1) + "</th><td>" 
+0

Wie schlagen Sie vor, dass ich auch die for-Schleife in die Return-Anweisung/s einfüge? –

+0

machen Sie eine neue Variable - nennen Sie es 'html' oder etwas - und verwenden Sie dann' + = ', um die neuen Teile hinzuzufügen, wo auch immer Sie' print' verwenden - dann am Ende 'return html' – domoarrigato

+0

@JoshGregory Kann auch das Schlüsselwort yield verwenden und einen Generator zurückgeben – TerryA

Verwandte Themen