ciao a tutti! mi sono appena iscritto, mi sembra un forum affidabile da cui poter avere risposte serie e complete dagli utenti 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.
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:
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
se proverete, quando si avvia il programma da l'errore:
a[splitted[0]] = splitted[1]
IndexError: list index out of range
non riesco proprio a uscirne...
grazie dell'attenzione