Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 带有for循环的html表问题_Python_Html_Html Table - Fatal编程技术网

Python 带有for循环的html表问题

Python 带有for循环的html表问题,python,html,html-table,Python,Html,Html Table,我很难通过python用html格式化表。我使用前面信息中的for循环,前两列已经格式化,但是我很难将某些值放在正确的位置 我的代码中确定第二列的部分: 对于已排序的c(最大胶片): 打印“” 打印c 打印“” 打印最大胶片数[c] 打印“” 应该是第三个 最大列表1中c的: 打印“” 打印“” 打印c 打印“” 这是它正在生成的表: 年度最高票房电影最相似第二最相似第三最相似 2000第六感 2001年星球大战:第一集-幽灵的威胁 2002年哈利波特与魔法石 2003年指环王:双塔 20

我很难通过python用html格式化表。我使用前面信息中的for循环,前两列已经格式化,但是我很难将某些值放在正确的位置

我的代码中确定第二列的部分:
对于已排序的c(最大胶片):
打印“”
打印c
打印“”
打印最大胶片数[c]
打印“”
应该是第三个 最大列表1中c的
:
打印“”
打印“”
打印c
打印“”
这是它正在生成的表:

  • 年度最高票房电影最相似第二最相似第三最相似
  • 2000第六感
  • 2001年星球大战:第一集-幽灵的威胁
  • 2002年哈利波特与魔法石
  • 2003年指环王:双塔
  • 2004年指环王:国王的回归
  • 2005年星球大战:第三集-西斯的复仇
  • 2006加勒比海盗:死人的胸部
  • 2007加勒比海盗:世界末日
  • (空白)完美风暴
  • (空白)类人猿星球
  • (空白)魔戒之王:魔戒团契
  • (空白)偷偷离开
  • (空白)抵押品
  • (空白)特洛伊
  • (空白)纳尼亚纪事:狮子、女巫和衣橱
  • (空白)300
电影(完美风暴-300)应该排在第三列,而不是第二列。我怎样才能解决这个问题

完整html代码:

print "Content-Type: text/html"
print ""
print "<html>"
print "<body>"
print "<table border=1>"

print "<tr>"
print "<th><font color=black>Year</font></th>"
print "<th><font color=blue>Highest Grossing Film</font></th>"
print "<th><font color=red>Most Similar</font></th>"
print "<th><font color=red>2nd Most Similar</font></th>"
print "<th><font color=red>3rd Most Similar</font></th>"
print "<th><font color=red>4th Most Similar</font></th>"
print "</tr>"


for c in sorted(max_films):
    print "<tr><th>"
    print c
    print "<td>"
    print max_films[c]
    print "</td></tr>"


for c in max_list1:
    print "<tr><th>"
    print "<td>"
    print c
    print "</td></tr>"

print "</body>"
print "</html>"

sorted(max_films) = ['2000', '2001', '2002', '2003', '2004', '2005', '2006', '2007']

max_list1 = ['The Perfect Storm', 'Planet of the Apes', 'The Lord of the Rings: The Fellowship of the Ring', 'Spirited Away', 'Collateral', 'Troy', 'The Chronicles of Narnia: The Lion the Witch and the Wardrobe', '300']
print“内容类型:text/html”
打印“”
打印“”
打印“”
打印“”
打印“”
打印“年”
印刷“最高票房影片”
打印“最相似”
打印“第二相似”
打印“第三最相似”
打印“第四最相似”
打印“”
对于分类的c(最大胶片):
打印“”
打印c
打印“”
打印最大胶片数[c]
打印“”
对于max_列表1中的c:
打印“”
打印“”
打印c
打印“”
打印“”
打印“”
已分类(max_films)=['2000'、'2001'、'2002'、'2003'、'2004'、'2005'、'2006'、'2007']
max_list1=[《完美风暴》、《类人猿星球》、《指环王:指环团契》、《灵异》、《抵押品》、《特洛伊》、《纳尼亚纪事:狮子、女巫和衣柜》、《300》]
错误
  • 您不应该对列使用表行(tr元素)
  • 您不关闭打开的标题(th元素)
  • 您应该在head only中使用表头,而不是在content行中使用表头
有效表结构

年
票房最高的电影
最相似
第二相似
第三最相似
... 
... 
... 
... 
... 
见示例:

通解 创建表时不能循环列,因为需要将一行的所有表单元格写入一行。表的结构基于作为父元素的行而不是列! 您需要拥有每行的数据,才能处理如下内容:

print "<table>"

print "<tr>"
    // print your caption row
    print "<th> Year </th>"
    print "<th> Highest Grossing Film </th>"
    print "<th> Most Similar </th>"
    print "<th> 2nd Most Similar </th>"
    print "<th> 3rd Most Similar </th>"
print "</tr>"

// loop data
for row_data in data:
    print "<tr>"

    // print data (maybe: row_data[0] == year, row_data[1] == movie name etc.)
    for cell_data in row_data:
        print "<td>"
        print cell_data
        print "</td>"

    print "</tr>"

print "</table>"
打印“”
打印“”
//打印标题行
打印“年”
印刷“最高票房影片”
打印“最相似”
打印“第二相似”
打印“第三最相似”
打印“”
//循环数据
对于数据中的行_数据:
打印“”
//打印数据(可能:行数据[0]==年份,行数据[1]==电影名称等)
对于行数据中的单元格数据:
打印“”
打印单元数据
打印“”
打印“”
打印“”
你的案子的解决方案 在您发布完整代码之后,我想您不是指列,而是指行! 我想这就是你想要的:

for c in sorted(max_films):
    print "<tr><td>"
    print max_films[c]
    print "</td>"

for c in max_list1:
    print "<td>"
    print c
    print "</td></tr>"
对于已排序的c(最大胶片):
打印“”
打印最大胶片数[c]
打印“”
对于max_列表1中的c:
打印“”
打印c
打印“”

您的HTML无效(标记不匹配)。这非常令人恼火。你能发布完整的代码示例吗?您不应该在两个循环中都创建表行。此外,我还看到表格标题从未关闭。此外,我不明白在哪一点上
c
包含什么数据。对于(…)打印“数据[0]数据[1]等,应该类似于
对于已排序的c(最大胶片):打印“打印”c“打印”最大胶片[c]“打印”
试试看
    <table>
        <tr>
            <th>Year</th>
            <th>Highest Grossing Film</th>
            <th>Most Similar</th>
            <th>2nd Most Similar</th>
            <th>3rd Most Similar</th>
        </tr>

    <!-- create rows in a loop -->
    <tr>
        <td> ... </td>
        <td> ... </td>
        <td> ... </td>
        <td> ... </td>
        <td> ... </td>
    </tr>
    <!-- loop this ^^ -->

</table>
print "<table>"

print "<tr>"
    // print your caption row
    print "<th> Year </th>"
    print "<th> Highest Grossing Film </th>"
    print "<th> Most Similar </th>"
    print "<th> 2nd Most Similar </th>"
    print "<th> 3rd Most Similar </th>"
print "</tr>"

// loop data
for row_data in data:
    print "<tr>"

    // print data (maybe: row_data[0] == year, row_data[1] == movie name etc.)
    for cell_data in row_data:
        print "<td>"
        print cell_data
        print "</td>"

    print "</tr>"

print "</table>"
for c in sorted(max_films):
    print "<tr><td>"
    print max_films[c]
    print "</td>"

for c in max_list1:
    print "<td>"
    print c
    print "</td></tr>"