wxFormBuilder를 사용하여 사용자가 "비즈니스 방문객"의 이름을 목록에 입력하고 두 버튼 중 하나를 클릭하여 가장 많은 것을 반환 할 수있게하는 GUI를 만들었습니다 빈번하고 가장 적게 자주 방문하는 비즈니스. 다음은 GUI를 보여줍니다. http://imgur.com/XJnvo0U최대 및 최소 주파수 모두 동일한 값 반환
불행하게도 Most 버튼과 Least 버튼은 같은 값 (Most)을 던지고 있습니다. 주파수가 입력에 가중치를 부여하는 방식과 clkFindMost 및 clkFindLeast 이벤트의 정의가 겹치는 방식과 관련이 있다고 생각합니다. 어떤 도움이라도 대단히 감사하겠습니다.
** 편집 : 나는 파이썬에 매우 새로운 오전 및 학습 곡선은 가파른
import wx
import myLoopGUI
import commands
class MyLoopFrame(myLoopGUI.MyFrame1):
def __init__(self, parent):
myLoopGUI.MyFrame1.__init__(self, parent)
def clkAddData(self,parent):
if len(self.txtAddData.Value) != 0:
try:
myname = str(self.txtAddData.Value)
self.listMyData.Append(str(myname))
except:
wx.MessageBox("This has to be a name!")
else:
wx.MessageBox("This can't be empty")
def clkFindMost(self, parent):
name_list = set(self.listMyData.GetStrings())
unique_names = set(name_list)
frequencies = {}
for name in unique_names:
if frequencies.get(name):
frequencies[name] += 1
else:
frequencies[name] = 0
counts = list(frequencies.values())
names = list(frequencies.keys())
max_count_index = counts.index(max(counts))
min_count_index = counts.index(min(counts))
most_frequent = names[max_count_index]
least_frequent = names[min_count_index]
self.txtResults.Value = most_frequent
def clkFindLeast(self, parent):
name_list = set(self.listMyData.GetStrings())
unique_names = set(name_list)
frequencies = {}
for name in unique_names:
if frequencies.get(name):
frequencies[name] += 1
else:
frequencies[name] = 0
counts = list(frequencies.values())
names = list(frequencies.keys())
max_count_index = counts.index(max(counts))
min_count_index = counts.index(min(counts))
most_frequent = names[max_count_index]
least_frequent = names[min_count_index]
self.txtResults.Value = least_frequent
def clkClear (self, parent):
self.txtResults.SetValue("")
#Needed to ensure the program runs
myApp = wx.App(False)
myFrame = MyLoopFrame(None)
myFrame.Show()
myApp.MainLoop()
오, 오케이. 이제 이해가된다. 이 문제를 어떻게 해결할 수 있습니까? (내가 전에 언급했듯이, 나는 Python을 처음 사용했다.) –
이것은 알아두면 좋을 것이다. 불행히도이 과제의 일부로 for 루프와 if/else 구조를 유지해야한다. 이것을 해결할 수있는 "우아하지 않은"방법이 있습니까? –
나는 내 대답을 개정했다. 문제는 고유 한 이름을 반복하고 있지만 실제로는 uniqified 목록을 반복하고 싶다는 것입니다. – bernie