Nieuws:

We zijn er weer.

Na lange tijd van afwezigheid zijn we er weer  :laugh:
We hebben alle wachtwoorden gereset, je oude wachtwoord werkt niet meer.Je moet via het "wachtwoord vergeten"-linkje je wachtwoord resetten. Je krijgt hiervoor een mailtje op het adres dat je bij ons geregistreerd hebt.

De komende tijd zijn we nog druk bezig om de rest van de site op te bouwen, dus het kan zijn dat sommige onderdelen (tijdelijk) niet werken.

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

Auteur Topic: Python Errortje  (gelezen 792 keer)

Offline Carharttguy

  • Lid
  • Steunpunt: Nee
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.

Offline Nunslaughter

  • Lid
    • timovwb
  • Steunpunt: Nee
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
>>>

Offline Carharttguy

  • Lid
  • Steunpunt: Nee
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 »

Offline Carharttguy

  • Lid
  • Steunpunt: Nee
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?

Offline Nunslaughter

  • Lid
    • timovwb
  • Steunpunt: Nee
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)

Offline Carharttguy

  • Lid
  • Steunpunt: Nee
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. :)