ciao a tutti! mi sono appena iscritto, mi sembra un forum affidabile da cui poter avere risposte serie e complete dagli utentipremetto che sono anche nel campo della programmazione, ho iniziato da pochissimo e quello che so, l'ho imparato da qualche video e dallo studio del codice di programmi già fatti da altri utenti.
beh, ecco il mio problema. sto creando una semplice IA la quale, una volta scritta la domanda nell'apposito spazio, essa risponde con una risposta predefinita. sino a quando la testavo senza grafica, tutto andava bene. ma l'altro giorno ho deciso di migliorarla, appunto, con una finestra e dei tasti.
però sono fermo in un punto.
vi posto il codice:
codice:#Jhon117 IA By sagara_939 from __future__ import division import wx class Jhon117(wx.Frame): def __init__(self,id,parent,title): wx.Frame.__init__(self,id,parent,title,size=(400,500),style=wx.DEFAULT_MINIFRAME_STYLE) self.Display=wx.TextCtrl(self,-1,size=(400,80),style=wx.TEXT_ALIGNMENT_RIGHT|wx.TE_READONLY) self.Display.SetLabel('') self.Scritta=None self.Displayin=wx.TextCtrl(self,-1,pos=(1,100),size=(400, 35),style=wx.TEXT_ALIGNMENT_RIGHT) #spazio input self.Displayin.SetLabel('') self.Scrittain=None a={} #jhon quellocheso file=open("quellocheso.txt", "r") for riga in file.readlines(): splitted = riga.split('|') a[splitted[0]] = splitted[1] file.close() #jhon quellocheso #inizio bottoni e spazi self.Invio=wx.Button(self,-1,"Invio",pos=(1,200),size=(40,40),style=wx.TEXT_ALIGNMENT_CENTER) self.Chiudi=wx.Button(self,-1,"Chiudi",pos=(1,150),size=(100,20),style=wx.TEXT_ALIGNMENT_CENTER) #fine bottoni self.Invio.Bind(wx.EVT_BUTTON,self.Inv,self.Invio) self.Chiudi.Bind(wx.EVT_BUTTON,self.Clo,self.Chiudi) def Jhon(self,event): #inizio jhon self.Displayin.SetLabel(self.Display.GetLabel()+b) def Clo(self,event): self.Destroy() def Inv(self,event): self.Displayin.SetLabel(self.Displayin.GetLabel()) b=self.Displayin.SetLabel("hfuihefuehfe") while b!=self.Displayin.SetLabel(""): b=self.Displayin.SetLabel("") if a.has_key(b): print self.Display.SetLabel(a[b]) else: c=self.Displayin.SetLabel a[b]=c d=open("quellocheso.txt","a") d.write("\n") d.write(b) d.write("|") d.write (c) d.close() print self.Display.SetLabel("Grazie!") self.Scritta=self.Scritta+Jhon(self.Displayin.GetLabel()) self.Display.SetValue(str(self.Scritta)) app=wx.PySimpleApp() frame=Jhon117(None,-1,'Jhon Grafica Test') frame.Show() app.MainLoop()
a parte le possibili "righe inutili" che sono li momentaneamente ;D, il mio problema si presenta qui:
se proverete, quando si avvia il programma da l'errore:codice:a={} #jhon quellocheso file=open("quellocheso.txt", "r") for riga in file.readlines(): splitted = riga.split('|') a[splitted[0]] = splitted[1] file.close() #jhon quellocheso
a[splitted[0]] = splitted[1]
IndexError: list index out of range
non riesco proprio a uscirne...
grazie dell'attenzione![]()

premetto che sono anche nel campo della programmazione, ho iniziato da pochissimo e quello che so, l'ho imparato da qualche video e dallo studio del codice di programmi già fatti da altri utenti.
Rispondi quotando