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
Я предполагаю, что у вас есть некоторые дополнительные ошибки в вашем коде, которые портят анализ.