我在写一个小程序,可以在文本文件中找到最长的句子。
我一直在读我的代码,但我不明白为什么它不工作。
程序正在使用Entry
小部件。
基本上,search()
函数处理一些异常(这部分正在工作),如果输入有效的文件名,它将跳转到while
循环。
while循环读取每一行,并将最长的一行分配给longest
。
一旦到达空行,elif
语句就会执行(或者应该执行)。
它应该在Entry
小部件中显示最长的句子。
问题是最后在entry小部件中什么都没有显示
我在Windows上使用python3
这是我的密码:
from tkinter import *
def search(event):
try:
txtFile = open(str(entr.get()), 'r')
except:
entr.delete(0, END)
entr.insert(0, "File can't be found")
else:
x = 0
while 1:
rd = txtFile.readline()
if len(rd)> x:
longest = rd
x = len(rd)
elif rd == '':
break
txtFile.close()
entr.delete(0, END)
entr.insert(0, longest)
#####MAIN#####
wd = Tk()
wd.title('Longest sentence searcher')
entr = Entry(wd, bg='White')
entr.grid(row=0, column=0)
entr.bind('<Return>', search)
bttn = Button(wd, text='Search', bg='Light Green')
bttn.grid(row=1, column =0)
bttn.bind('<Button-1>', search)
wd.mainloop()
问题是,用于关闭文件并显示最长行的代码从未执行:
break
跳出while循环,由于后面没有代码,Python从函数返回。将最后三行从while
-循环中移出,您应该会很好:相关问题 更多 >
编程相关推荐