0

我正在使用 Python 编写 CGI 脚本,我必须在其中显示图像和名称。当您单击下一张和/或上一张时,它会在列表中显示下一张/上一张图片。

下面是我的代码:

#!/usr/bin/python

import cgi

ls = ["name1", "name2", "name3", "name4", "name5"]

print "Content-type: text/html"
print 

data = cgi.FieldStorage()

number = data.getvalue("number", "0")
int_num = int(number)

item = ls[int_num]

print """
  <table border>
    <tr> <td colspan=2 align=center> <font size=+3 color=red> %s </font> </td> </tr>
    <tr> <td align=center> <a href="/cgi-bin/09042013/lab2script1?number=%s">Previous</a>         </td>
     <td align=center> <a href="/cgi-bin/09042013/lab2script1?number=%s">Next</a> </td>
  </table>

""" % (number, int(number) - 1, int(number) + 1)

print "%s" % (item)

以下是我的问题: 1.) 我将如何实现一个功能,如果它到达名称列表的末尾,它会循环回到前面,反之亦然。我知道这将是一个简单的 if 语句,但是我的所有想法都会导致“服务器错误”。2.) 要使用 python 显示图片,我是否可以像使用 ls(名称列表)一样使用包含图像位置的列表?

任何帮助,将不胜感激!谢谢!

4

1 回答 1

0

为了在达到 a 限制时旋转到列表的前面或后面,您必须替换代码:

% (number, int(number) - 1, int(number) + 1)

经过:

% (number, (int(number)-1)%n, (int(number)+1)%n)

应用于数字的运算符“%”为您提供除法的其余部分。您还应该添加以下行:

n=len(ls)

在 ls 的定义之后。

在这里,例如,当到达上边界时,5 被 5/5 除法的余数(即 0)替换,因此此代码获取到列表开头的图形的链接。当达到下限时,这个想法是类似的。

于 2013-09-07T22:24:51.923 回答