我在我的代碼中遇到了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