【发布时间】:2014-11-25 19:04:39
【问题描述】:
我对 Python 非常陌生,我正在尝试为 GUI 编写一个程序,以从类分配列表中提取最频繁和最不频繁出现的名称。我一直收到一个
TypeError: 'int' 对象不可调用
此代码出错,我知道它与以下行有关:
word_frequencies += float[self.listMyData.Count(word)]/len[self.listMyData]
但我不确定错误到底在说什么。我在这里查看了类似的问题,但仍然不确定我做错了什么。任何帮助将不胜感激。
这是完整的代码:
import wx
import myLoopGUI
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):
unique_words = []
for word in range(self.listMyData.GetCount()):
if word not in unique_words:
unique_words += [word]
word_frequencies = []
for word in unique_words:
word_frequencies += float[self.listMyData.Count(word)]/len[self.listMyData]
max_index = 0
frequent_words =[]
for i in range(len(unique_words)):
if word_frequencies[i] >= word_frequencies[max_index]:
max_index = i
frequent_words += unique_words[max_index]
self.txtResults.Value = frequent_words
myApp = wx.App(False)
myFrame = MyLoopFrame(None)
myFrame.Show()
myApp.MainLoop()
【问题讨论】:
-
什么是“listMyData”?
-
如果我们不知道任何方法和属性的作用/是什么,就很难理解正在发生的事情。请整理一个MCVE,以独立的方式展示您的问题。
-
对不起。 listMyData 是与 GUI 中的文本框对应的事件。我正在使用 wxFormBuilder 创建一个界面,您可以在其中将数字插入列表框,然后单击两个按钮之一来查找最常见的名称或最不常见的名称。