我做了一个简单的程序,从英语翻译成一个完全不同的(随机英语),当它显示翻译时,它将空格显示为{}。有什么建议吗
from tkinter import *
english = ['0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t',
'u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','!',
'\"','#','$','%','&','\'','\'','(',')','*','+',',','-','.','/',':',';','?','@','[','\\',']','^','_','`','{','|','}','~',' ', ',','\t','\n','\r','\x0b','\x0c']
potatish =['0','1','2','3','4','5','6','7','8','9','a','v','l','d','e','z','j','s','i','x','q','u','f','b','o','y','c','m','t',
'k','p','g','h','n','r','w','A','V','L','D','E','Z','J','S','I','X','Q','U','F','B','O','Y','C','M','T','K','P','G','H','N','R','W','!',
'\"','#','$','%','&','\'','\'','(',')','*','+',',','-','.','/',':',';','?','@','[','\\',']','^','_','`','{','|','}','~',' ', ',','\t','\n','\r','\x0b','\x0c']
class Program(Frame):
""" A Program to translate """
def __init__ (self, master):
"""Initialise the frame"""
Frame.__init__(self, master)
self.grid()
self.create_widgets()
def create_widgets(self):
"""Buttons!!!"""
#Text
self.text = Label(self, text = "Please enter some text:")
self.text.grid()
#Field
self.user = Entry(self)
self.user.grid()
#Button
self.translate = Button(self, text = "Translate")
self.translate.grid()
self.translate["command"] = self.update_console
#Output
self.output = Label(self, text = "Output:\n")
self.output.grid()
#finished
self.finished = Label(self, text = "")
self.finished.grid()
def update_console(self):
"""Updates output"""
self.trans = self.translatedef()
self.finished["text"] = self.trans
def translatedef(self):
f = []
i = -1
j = -1
text = self.user.get()
while i != -2:
i+=1
try:
l = english.index(text[i])
f.append(potatish[l])
except:
while j != -2:
j+=1
try:
return f
except:
break
break
root = Tk()
root.title("Potatish")
root.geometry("500x300")
app = Program(root)
root.mainloop()
您正在将标签的
text
设置为列表,而不是字符串。Tkinter将该列表的空元素显示为{}
要更正它,请在将其发送到标签之前从列表中形成一个字符串:
相关问题 更多 >
编程相关推荐