我在这里使用Wolfram Alpha和Wikipedia和wxPython编写了一些代码:
import wikipedia
import wx
import wolframalpha
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self,None,pos=wx.DefaultPosition,size=wx.Size(450,100),style=wx.MINIMIZE_BOX | wx.SYSTEM_MENU | wx.CAPTION |
wx.CLOSE_BOX | wx.CLIP_CHILDREN,title="PyDA by ACORD")
panel = wx.Panel(self)
my_sizer = wx.BoxSizer(wx.VERTICAL)
lbl = wx.StaticText(panel,label="Hello,I am PyDA,the Python Digital Assistant. How can I help?")
my_sizer.Add(lbl,wx.ALL,5)
self.txt = wx.TextCtrl(panel,style=wx.TE_PROCESS_ENTER,size=(400,300))
self.txt.setfocus()
self.txt.Bind(wx.EVT_TEXT_ENTER,self.OnEnter)
my_sizer.Add(self.txt,5)
panel.SetSizer(my_sizer)
self.Show()
def OnEnter(self,event):
input = self.txt.Getvalue()
input = input.lower()
try:
#wolframalpha
app_id = "8A6LA2-ELRHR92Y88"
client = wolframalpha.client(app_id)
result = client.query(input)
answer = next(result.results).text
print(answer)
except:
#wikipedia
print(wikipedia.summary(input))
if __name__ == "__main__":
app = wx.App(True)
frame = MyFrame()
app.MainLoop()
所以我有一个问题。当我仅导入Wolfram Alpha(请参见下面的代码)时,我可以向Wolfram Alpha提出问题(例如“生命的意义”或诸如“ 2 + 2”之类的数学问题),它给了我一个答案。同样,当我仅导入Wikipedia模块时,我可以在Wikipedia上搜索“ Tim Cahill”或“ Django”之类的内容,然后将获得输出。但是,当我将两个模块与用于Gui的wxPython模块结合使用时,只能从Wikipedia中获得结果。
这是只Wolframalpha代码:
import wolframalpha
import wikipedia
input = input("Question: ")
app_id = "8A6LA2-ELRHR92Y88" # App ID for Wolframalpha
client = wolframalpha.Client(app_id) # calls on app id
# Output
result = client.query(input) # See line 3
answer = next(result.results).text
print(answer)
这是维基百科唯一的代码:
import wikipedia
while True: # this is in a loop so it can be repeated
wikinput = input("Ok Pyda! ")
# wikipedia.set_lang("es") # changes the language of output to Espanyol (Spanish) - # not needed
print(wikipedia.summary(wikinput,sentences=2)) # For wikipedia queries. # Sentences limits how long the output will be
任何帮助将不胜感激