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

制限に達したときにリストの前または後ろに回転するには、コードを置き換える必要があります。

% (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 に答える