[python] can't multiply sequence to non-int

Pagina: 1
Acties:

  • Tjeerd
  • Registratie: Oktober 1999
  • Laatst online: 26-05 09:54

Tjeerd

Be Original, Be Yourself.

Topicstarter
Ik ben bezig met een project in Python, waarbij ik WxPython gebruik. Daar heb ik een invoerveld waar je een formule in kunt vullen. De ingevoerde formule (bijv. -1 * k * x) haal ik op d.m.v. een methode aan te roepen, bijv. veldnaam.GetValue(), dat werkt prima.
Vervolgens ga ik deze formule evalueren zodat python daadwerkelijk gaat rekenen met die gegevens. In mijn geval doe ik een Euler-methode invoeren in dat invoerveld, bijv. [invoerveld dx/dt =] -1 * k * x

De code:
code:
1
2
3
4
5
k = self.k.GetValue()
x = self.beginwaarde.GetValue()

test =  self.differentialequation.GetValue()
dxdt = eval(test)


Dan gaat ie dus flippen met de melding:
TypeError: can't multiply sequence to non-int
Ik kom er maar niet uit, ik heb wat zitten experimenteren met type-casten, maar dat was tot nog toe niet succesvol.

Iemand enig idee waar de foutmelding precies op slaat?

www.tjeerd.net - To repeat what others have said, requires education, to challenge it, requires brains.


  • Robtimus
  • Registratie: November 2002
  • Laatst online: 26-05 15:28

Robtimus

me Robtimus no like you

Gooi er even wat print statements tussenin.

More than meets the eye
There is no I in TEAM... but there is ME
system specs


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 23:14
Educated guess: GetValue() retourneert een stringwaarde en die kan Python niet verwerken. Probeer het zo eens:

Python:
1
2
3
k = int(self.k.GetValue())
x = int(self.beginwaarde.GetValue())
dxdt = eval(self.differentialequation.GetValue())


Denk er wel aan dat bij de constructie van die int's een ValueError voor kan komen.

  • Tjeerd
  • Registratie: Oktober 1999
  • Laatst online: 26-05 09:54

Tjeerd

Be Original, Be Yourself.

Topicstarter
Het was idd toch een typeprobleem, k.GetValue() werd als een string gezien -- waar hij een float moest zijn -- die heb ik over het hoofd gezien |:(

code:
1
2
for user in replys:
     print "Mijn dank is van groot formaat ", user


:)

[ Voor 16% gewijzigd door Tjeerd op 14-04-2004 21:20 ]

www.tjeerd.net - To repeat what others have said, requires education, to challenge it, requires brains.


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 23:14
Die spatie aan het eind van de string moet daar niet, he! ;)