【发布时间】:2018-11-07 17:31:34
【问题描述】:
我正在使用 Python 中的 GUI 开发一个名为 Linear and Binary search 的项目,我编写了一个函数来获取用户通过线性搜索算法给出的数组的索引号,但它不能正常工作,建议进行改进。
我还想以图形方式添加此算法的过程。 这是项目
模拟器,以图形方式显示线性和二进制搜索。该模拟器要求您选择数组的大小,然后以图形方式选择框的数量,然后您可以将数据插入这些框。它只允许您首先将数据插入第一个索引,然后它允许第二个框插入数据,依此类推。然后它会询问用户想要搜索哪些数据,并以图形方式显示搜索过程并最终显示结果。
import tkinter as tk
root=tk.Tk()
root.title("Linear Search")
root.geometry("1200x600")
def Linear():
x=root.snum.get()
for i in range(len(box_list)):
if box_list[i]==x:
return i
return -1
result=tk.Label(root,text=i)
result.pack()
def ApplytoLabel():
xx=size.get()
for i in range(xx):
element = box_list[i].get()
ArrayLabel=tk.Label(root,text="Array Element: " + element,font="Arial 12 bold",bg="red",fg="white",bd="5")
ArrayLabel.pack(side="left")
#Search Element
text2=tk.Label(root,text="Number to search:",
font="Arial 10 bold",fg="blue",pady="10",anchor="w")
text2.pack(side="left")
snum=tk.IntVar()
SearchNum=tk.Entry(root,textvariable=snum)
SearchNum.pack(side="left")
LinearSearch=tk.Button(root,text="Linear Search",command=Linear)
LinearSearch.pack(side="left")
box_list = []
def Boxes():
xx=size.get()
for i in range(xx):
box=tk.Entry(root,font="Arial 10 bold",bd="5",width="5")
box.pack(side="left")
box_list.append(box)
ApplytoLabel1=tk.Button(root,text="Submit To Array",command=ApplytoLabel)
ApplytoLabel1.pack(side="left")
Array = tk.Frame(root)
Array.pack()
text1=tk.Label(Array,text="Enter the Size of Array:",
font="Arial 10 bold",fg="blue")
text1.pack()
size=tk.IntVar()
ArraySize=tk.Entry(Array,textvariable=size)
ArraySize.pack()
SizeofArray=tk.Button(Array,text="Submit",command=Boxes)
SizeofArray.pack()
root.mainloop()
【问题讨论】:
-
“无法正常工作”是什么意思?你有错误吗?如果是这样,它们是什么?如果不是,它在做什么,它与你期望的有什么不同?
-
算法不起作用我想要用户给出的 Number to Search 的数组索引..
-
我想在这个程序中添加线性搜索和二分搜索,以便在 GUI 上获取输出
标签: python arrays python-3.x tkinter