这个加密/dycrpt代码出了什么问题



我已经制作了这个加密dycrypt代码,但由于一些错误而不起作用。当它到达oddl[c]时,它显示了索引错误。任何人都能说出我在这个代码中做了什么吗:

from tkinter import messagebox,simpledialog,Tk
def even(number):
return number %2==0
def gevenl(message):
evenl=[]
for c in range(0,len(message)):
if even(c):
evenl.append(message[c])
return evenl
def goddl(message):
oddl=[]
for c in range (0,len(message)):
if not even(c):
oddl.append(message[c])
return oddl
def swap(message):
letter=[]
if not even(len(message)):
message=message+"."
evenl=gevenl(message)
oddl=goddl(message)
for c in range(0,int(len(message)/2)):
letter.append(oddl[c])
letter.append(evenl[c])
newm="".join(letter)
return newm
def gettask():
task=simpledialog.askstring("","Encrypt or Decrypt?")
return task
def getm():
message=simpledialog.askstring("Message","Enter is secret message: ")
return message
root=Tk()
while True:
task=gettask()
if task=="encrypt":
message=getm()
encrypted=swap(message)
messagebox.showinfo(f"Encrypted message is:{encrypted}")
elif task=="decrpyt":
message=getm()
dycrypted=swap(message)
messagebox.showinfo(f"Dycrpted message is{dycrypted}")
else:
messagebox.showinfo("Idiot","Ayo stupid baka, No breaking in hahaha")
break
root.mainloop()
It is showing this error:
line 26, in swap
letter.append(oddl[c])
IndexError: list index out of range

但不管我怎么改,我都不起作用。请告诉我该怎么修复

您需要将函数goddlgevenl中的return语句缩进一级,否则生成的列表最终只包含一个元素,在访问它们的元素时抛出IndexError

最新更新