0

Python 3(tkinterを使用)では、次の画像があります:

SqImg1 = PhotoImage(file='SqImg1.gif')
SqImg2 = PhotoImage(file='SqImg2.gif')
SqImg3 = PhotoImage(file='SqImg3.gif')
SqImg4 = PhotoImage(file='SqImg4.gif')
...

また、変数に基づいてこれらの画像の1つを返す必要がある関数もあります。したがって、関数がvarを1と決定した場合、SqImg1..を返す必要があります。

def returnImage():
    list = ['ale', 'boo', 'boo', 'cat', 'doe', 'boo', 'eel']
    var = 0
    for item in list:
        if item == 'boo':
            var += 1
    return SqImg[var]

上記でSqImg3を返したい

これはおそらく簡単ですが、私はグーグルで探しているものを見つけることができないようです。

4

2 に答える 2

2

すぐにあなたの間違いがあります:

SqImg1 = PhotoImage(file='SqImg1.gif')
SqImg2 = PhotoImage(file='SqImg2.gif')
SqImg3 = PhotoImage(file='SqImg3.gif')
SqImg4 = PhotoImage(file='SqImg4.gif')
...

する必要があります:

SqImg = [
PhotoImage(file='SqImg1.gif'),
PhotoImage(file='SqImg2.gif'),
PhotoImage(file='SqImg3.gif'),
PhotoImage(file='SqImg4.gif'),
...
]

あるいは:

SqImg = [ PhotoImage(file='SqImg{}.gif'.format(i) for i in range(1, n) ]
于 2011-03-25T19:28:49.823 に答える
0

2つのオプション

  • 辞書を作成し、文字列を実際の変数にマップします。例えば、 d = {}; d["boo"] = img3
  • 画像に正しい番号が付けられている場合は、eval()を呼び出します。return eval("sqlimg%d" % var)

特別な事情がない限り、最初のオプションはおそらくあなたが探しているものです

于 2011-03-25T19:22:51.937 に答える