Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Python Errortje  (gelezen 995 keer)

Python Errortje
« Gepost op: 2011/05/10, 19:44:04 »
hello guys!

Beetje aan het prutsen met python, maar echt geen idee waarom volgende niet werkt?

list = thisiscApp1.iscVInput
 thisiscApp1.iscVResult = list.count(thisiscApp1.iscVNumberToSearch)

in thisiscApp1 staat iscVNumberToSearch gewoon gedeclared als:

class iscApp1:
 iscVOutputString = ""
 iscVResult = 0
 iscVNumberToSearch = 1
 iscVInput = "1,2,3,4,1,2,3"
 iscWindow5Window1 = gtk.Window(gtk.WINDOW_TOPLEVEL)
 iscWindow5Window1Fixed = gtk.Fixed()
 iscWindow5Button0 = gtk.Button("Click me")

De fout die ik krijg:

Traceback (most recent call last):
  File "Test.py", line 64, in iscWindow5ButtonClicked
    iscCountinArray3()
  File "Test.py", line 32, in iscCountinArray3
    thisiscApp1.iscVResult = list.count(thisiscApp1.iscVNumberToSearch)
TypeError: expected a character buffer object

Wat raar is, want ik moet blijkbaar een character buffer object hebben, geen idee wat dat is, in de python terminal doe ik dit gewoon met een int, en werkt perfect?

Bedankt voor jullie hulp.

Re: Python Errortje
« Reactie #1 Gepost op: 2011/05/10, 19:51:52 »
Probeer eens het volgende:
thisiscApp1.iscVResult = list.count(str(thisiscApp1.iscVNumberToSearch))
Edit: raar dat het bij u wel werkt in de interpreter, hier dus niet (Python 2.7):
>>> l = "1,2,3,4,1,2,3"
>>> l.count(1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: expected a character buffer object
>>> l.count('1')
2
>>>

Re: Python Errortje
« Reactie #2 Gepost op: 2011/05/10, 19:57:22 »
Dit is terminal input van mij:

mathias@mathias-Satellite-L670:~$ python
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:05:24)
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> list = [1,2,1,1,3]
>>> print list
[1, 2, 1, 1, 3]
>>> list.count(1)
3
>>>

Bedankt voor je hulp, ik test het even!

Het probleem is een beetje, dat ik die code zelf niet echt kan aanpassen, omdat deze code gegenereerd wordt dooe Illumination Software Center, maar ik heb wel m'n eigen python stukje geschreven, en dat wordt dus geconverteerd naar de code die ik toonde :)
« Laatst bewerkt op: 2011/05/10, 19:59:59 door Carharttguy »

Re: Python Errortje
« Reactie #3 Gepost op: 2011/05/10, 20:01:36 »
Ok, het is gelukt! die code kon ik natuurlijk wel vanuit mijn plugin aanpassen!

str() deed het gewoon, maar wel raar dat mijn terminal werkte, en jouwe niet?

Re: Python Errortje
« Reactie #4 Gepost op: 2011/05/10, 20:05:16 »
Ik vind niet meteen iets speciaal terug in de help pagina's, maar het verschil zal hem zitten in list.count() en string.count(). De list.count() kan inderdaad een integer meekrijgen. Waarschijnlijk is dit bij een string.count() niet mogelijk omdat een string alleen karakters bevat, waar een list alle Python objecten kan hebben.

Voor een kleine help:
>>> help(list.count)
>>> import string
>>> help(string.count)

Re: Python Errortje
« Reactie #5 Gepost op: 2011/05/14, 21:53:57 »
inderdaad, ik had het verschil in "" en [] niet opgemerkt. Weten we ook alweer bij. :)