while ループが実行されるたびに、文字列の文字を 1 ずつシフトしようとしています (したがって、「A」は「B」になり、「B」は「C」になり、毎回)。
それぞれの結果を表示して比較できるようにする必要があります。私がやりたくないことですが、方法を知っているのは、文字を 1 文字ずらす 26 の異なる関数を作成することですが、これは少しばかげているようです。
while ループが通過するたびに変数を ttk に割り当てるにはどうすればよいですか?
これにより、「ls」とカウントがオンになっているもの(ls1、ls2、ls3 ...)が各変数に割り当てられると思いましたが、そうではありません。毎回エラーになります。
def shift1(*args):
s = code.get()
storage = []
count = 1
while (count <= 26):
l = [ord(i) for i in s]
sh = ([chr(i + count) for i in l])
storage.append(sh)
("ls"+str(count)).set(storage(count - 1))
count += 1
それは私に言うエラーを与えます
AttributeError: 'str' オブジェクトには属性 'set' がありません
私が言ったように、diff ttk 変数を割り当てるたびに、この関数を 26 回使用することができます。
def shift1(*args):
s = code.get()
l = [ord(i) for i in s]
sh1.set(''.join([chr(i + 1) for i in l]))
これは基本的にループをバイパスしますが、もっと良い方法があるはずです。python と ttk は非常に新しいので、助けていただければ幸いです。