我在我的代码中遇到了spara-funktion问题。这是一个回文检查程序,你只能保存有效的回文。我该如何解决这个问题?这是我收到的时候我尝试保存一个有效的回文消息:使用布尔值无法保存有效但无效的文件夹文件
线89,在spara myFile.write(sparatord + '\ n') 类型错误:不支持的操作数类型(S)为+:“布尔'和 '海峡'
#-coding: UTF-8-*-
import Tkinter
import tkMessageBox
main_window = Tkinter.Tk()
top_frame = Tkinter.Frame(main_window, width=100)
middle_frame = Tkinter.Frame(main_window)
bottom_frame = Tkinter.Frame(main_window)
infoLabel = Tkinter.Label(top_frame, height = 7, width=100, text='Skriv in den text du vill kontrollera', font=('courier', 14), bg='purple', fg='black')
inputEntry = Tkinter.Entry(middle_frame, width = 100, bg='white', font=('arial', 14))
def main():
setupGUI()
Tkinter.mainloop()
def setupGUI():
main_window.geometry('500x400')
main_window.title('Palindromkollen')
Evaluera = Tkinter.Button(bottom_frame, text = 'Evaluera texten', command = testaPalindrom).grid(row=1, column=1)
Instruera = Tkinter.Button(bottom_frame, text = 'Instruktioner', command = visaInstruktion).grid(row=2, column=0)
Spara = Tkinter.Button(bottom_frame, text = 'Spara palindrom', command= spara).grid(row=3, column=0)
Avsluta = Tkinter.Button(bottom_frame, text = 'Avsluta', command = avslutaProgram).grid(row=4, column=0)
infoLabel.pack()
top_frame.pack()
middle_frame.pack()
bottom_frame.pack()
inputEntry.pack()
def visaInstruktion():
infoLabel.configure(bg='purple', fg='white', text= 'I detta program kan du skriva in ord eller \n'
'fraser för att kolla om de är palindrom. \n\n'' Skriv in ditt önskade ord och välj "Evaluera texten"\n'
'Du kan spara dina palindrom genom att klicka på \n' '"Spara palindrom"', font=('courier', 14))
def importText():
ordnadText = str(inputEntry.get().encode('UTF-8'))
rensa = (',','!','.',' ','?',':')
for i in rensa:
ordnadText = ordnadText.replace(i, "").lower()
return ordnadText
def testaPalindrom():
userInput = importText()
for i in range (0, len(userInput)-1):
if userInput[i] != userInput[len(userInput)-1-i]:
infoLabel.configure(bg='red', text = 'Näpp, det är inte ett palindrom')
palindrom = False
else:
infoLabel.configure(bg='green', text = 'Japp, det är ett palindrom')
palindrom = True
return palindrom
def spara():
sparatord = testaPalindrom()
try:
if sparatord == True:
myFile = open('palindrom.txt', 'a')
myFile.write(sparatord + '\n')
myFile.close()
else:
infoLabel.config(text='Det är inte ett palidrom, går ej att spara')
except IOError:
print 'Ett fel uppstod, kunde inte skriva till fil'
def avslutaProgram():
if tkMessageBox.askyesno('Avsluta', 'Vill du stänga palindromkontrollen?'):
main_window.destroy()
if __name__ == '__main__':
main()
谢谢!这是有道理的,我会试试这个! – user3104317