2016-06-01 9 views
0

初心者のご質問は申し訳ありませんが、CSVファイルのデータを使用してHTMLでWebサイトを作成し、それを生成するためにPythonを使用しています。使用しようとして一つの機能イムは次のとおりです。私は、見出し名として文字列に入れ、データなどのリストを使用受信結果なし機能の結果なし

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>""") 

。私はそれをpythonで印刷するとき、それは私がそれがほしいと思う方法を印刷するようですが、私がhtmlを開くと、NoneTypeとしてそれを読み取ります。これは、(私の値で)何パイソンプリントアウトされます。

<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> 

等...私の質問は、なぜ私のHTMLは文字列としてコードの2チャンクを読んでいませんか?

ありがとうございます。

+0

[Jinja2の](http://jinja.pocoo.org/docs/dev/)は、この種の問題のための優れたテンプレートライブラリです。 – Horba

答えて

1

これは、関数が何も返さないためです。それは印刷物だけです。あなたがいないprintそれその文字列をreturnしたい

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

私はreturn文に/ forを組み込むことをどのように提案しますか? –

+0

新しい変数を作成する - それを 'html'などと呼びます。そして' print = 'を使ってどこにでも新しい部分を追加するには '+ ='を使い、最後に 'return html'を返します。 – domoarrigato

+0

@JoshGregory 'yield'キーワードを使用してジェネレータを返すこともできます – TerryA

関連する問題