Python:For循环问题

时间:2010-03-12 13:39:10

标签: html for-loop python-server-pages

我有一个嵌入了html的PSP页面。我需要放置另一个for循环,这样我就可以在background-color:旁边插入另一个%s,这将在html表中为颜色添加适当的颜色。

例如,我需要插入for z in colours,以便它可以遍历颜色列表并插入正确的颜色。在哪里我尝试插入for循环它似乎没有工作它最常见的颜色表中的每个单元格60次然后移动到下一个单元格并重复自己并崩溃我的网络浏览器。

颜色保存在一个名为colors的表中。

以下代码:

<table>
<%
s = ''.join(aa[i] for i in table if i in aa)
for i in range(0, len(s), 60):
    req.write('<tr><td><TT>%04d</td>' % (i+1));
    for k in s[i:i+60]:
            req.write('<TT><td><TT><font style="background-color:">%s<font></td>' % (k));
    req.write('</TT></tr>')
#end
%>
</table>

----- ----- EDITED

插入提供的ebo代码,它将所有颜色的颜色都放在桌子上。颜色列表包含各种颜色,例如colour = ['yellow', 'yellow', 'yellow', 'yellow', 'red', 'red', 'red', 'red']

<table>
<%
s = ''.join(aa[i] for i in table if i in aa)
for i in range(0, len(s), 60):
    req.write('<tr><td>%04d</td>' % (i+1));
    for j, k in enumerate(s[i:i+60]):
        req.write('<td><font style="background-color:%s;">%s<font></td>' % (colour[j % len(colour)], k));
    req.write('</tr>')
#end
%>
</table>

1 个答案:

答案 0 :(得分:1)

我猜你想要每列一种颜色。最好的想法是使用枚举:

s = ''.join(aa[i] for i in table if i in aa)
for i in range(0, len(s), 60):
    req.write('<tr><td>%04d</td>' % (i+1))
    for j, k in enumerate(s[i:i+60]):
        req.write('<td style="background-color: %s;">%s</td>' % 
                     (colours[j % len(colours)], k))
    req.write('</tr>')

我剥离了所有TT标签。他们大多是错的,要么没有关闭,要么跨越其他元素。

更新应该这样做。如果每个字段都填写正确,请查看源代码。还要下载Firebug并查看解析后的html代码。它可能会因您的其他html失败而有所不同。

colour = ["red", "red", "green", "yellow"]

print "<table>"
s = '1234567890'
for i in range(0, len(s), 60):
    print('<tr><td>%04d</td>' % (i+1));
    for j, k in enumerate(s[i:i+60]):
        print('<td><font style="background-color:%s;">%s<font></td>' % (colour[j % len(colour)], k));
    print('</tr>')
print "</table>"

我将以下代码的输出传送到html文件并打开它。按预期工作。

python table.py > table.html
firefox table.html

我猜你的代码中还有一些额外的错误会搞乱解析。