Python: для проблемы цикла

У меня есть страница PSP с HTML. Мне нужно разместить еще один цикл, чтобы я мог вставить другой%s рядом с background-color: который вставит соответствующий цвет в таблицу HTML.

Например, мне нужно вставить for z in colours поэтому он может перебирать список цветов и вставлять правильный цвет. Когда бы я ни пытался вставить цикл for, кажется, что он не работает, он чаще всего окрашивает каждую ячейку таблицы 60 раз, затем переходит на следующую ячейку, повторяется и вылетает из моего веб-браузера.

Цвета хранятся в таблице, называемой цветами.

код ниже:

<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 ответ

Я думаю, вы хотите один цвет для каждого столбца. Лучше всего было бы использовать перечислить:

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

Я предполагаю, что у вас есть некоторые дополнительные ошибки в вашем коде, которые портят анализ.

Другие вопросы по тегам