Python中使用PSP和HTML表格输出字符

70 阅读2分钟

我们有一个使用Python PSP编写的页面代码,其中使用了一个HTML表格来输出字符。当前的代码只将字符输出为60个字符一行,并且在左栏中显示字符计数。

huake_00210_.jpg

<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><td><TT>%s</TT></td></tr>' % (i+1, s[i:i+60]));
#end
%>
</table>

我们希望能够将每个字符输出到单独的单元格中,而不是60个字符的单元格。我们尝试使用下面的代码来实现这一目标,但它输出了一个包含60个字符的单元格的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>%04d</td>' % (i+1));
    for k in s:
        req.write('<td>%s</td></tr>' % s[i:i+60]);
#end
%>
</table>

2. 解决方案

为了解决这个问题,我们可以使用以下代码来实现每个字符输出到单独的单元格中。

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

在这个代码中,我们使用了一个嵌套循环来遍历每个字符,并将每个字符输出到单独的单元格中。

以下是一些代码示例:

# 输出0到9的数字
<table>
<%
for i in range(0, 10):
    req.write('<tr><td>%04d</td><td><TT>%s</TT></td></tr>' % (i+1, str(i)));
#end
%>
</table>

# 输出A到Z的字母
<table>
<%
for i in range(0, 26):
    req.write('<tr><td>%04d</td><td><TT>%s</TT></td></tr>' % (i+1, chr(i + ord('A'))));
#end
%>
</table>

这些代码示例输出如下:

<table>
<tr><td>0001</td><td><TT>0</TT></td></tr>
<tr><td>0002</td><td><TT>1</TT></td></tr>
<tr><td>0003</td><td><TT>2</TT></td></tr>
<tr><td>0004</td><td><TT>3</TT></td></tr>
<tr><td>0005</td><td><TT>4</TT></td></tr>
<tr><td>0006</td><td><TT>5</TT></td></tr>
<tr><td>0007</td><td><TT>6</TT></td></tr>
<tr><td>0008</td><td><TT>7</TT></td></tr>
<tr><td>0009</td><td><TT>8</TT></td></tr>
<tr><td>0010</td><td><TT>9</TT></td></tr>
</table>

<table>
<tr><td>0001</td><td><TT>A</TT></td></tr>
<tr><td>0002</td><td><TT>B</TT></td></tr>
<tr><td>0003</td><td><TT>C</TT></td></tr>
<tr><td>0004</td><td><TT>D</TT></td></tr>
<tr><td>0005</td><td><TT>E</TT></td></tr>
<tr><td>0006</td><td><TT>F</TT></td></tr>
<tr><td>0007</td><td><TT>G</TT></td></tr>
<tr><td>0008</td><td><TT>H</TT></td></tr>
<tr><td>0009</td><td><TT>I</TT></td></tr>
<tr><td>0010</td><td><TT>J</TT></td></tr>
<tr><td>0011</td><td><TT>K</TT></td></tr>
<tr><td>0012</td><td><TT>L</TT></td></tr>
<tr><td>0013</td><td><TT>M</TT></td></tr>
<tr><td>0014</td><td><TT>N</TT></td></tr>
<tr><td>0015</td><td><TT>O</TT></td></tr>
<tr><td>0016</td><td><TT>P</TT></td></tr>
<tr><td>0017</td><td><TT>Q</TT></td></tr>
<tr><td>0018</td><td><TT>R</TT></td></tr>
<tr><td>0019</td><td><TT>S</TT></td></tr>
<tr><td>0020</td><td><TT>T</TT></td></tr>
<tr><td>0021</td><td><TT>U</TT></td></tr>
<tr><td>0022</td><td><TT>V</TT></td></tr>
<tr><td>0023</td><td><TT>W</TT></td></tr>
<tr><td>0024</td><td><TT>X</TT></td></tr>
<tr><td>0025</td><td><TT>Y</TT></td></tr>
<tr><td>0026</td><td><TT>Z</TT></td></tr>
</table>

希望这篇技术文章能够帮助你解决你的问题。