Toon posts:

[Python] Hoe krijg ik { } weg ?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een klein programma gemaakt dat de grootste bestanden van je hd in een list zet. Het programma maakt gebruik van Tkinder. Nu staan er in me list altijd { } rond de strings hoe komt dit en hoe krijg ik dit weg ?

Source : http://cvs.sourceforge.ne...r/main_gui.py?view=markup

Screen :
Afbeeldingslocatie: http://www.sava.be/inc/gfx/other/tweakers_python_1.gif

( Tips zijn welkom )
( Andere Kleine vraag : Hoe constroleer ik of de inhoud van een tekstvakje alleen cijfers zijn en hoe krijg ik de inhoud in een variabelen )

Verwijderd

Erg fijne topicstart weer... :X

Nou, 't probleem zit 'm lichelijk in deze regel:

Python:
1
                    file = filename, " : ",filesize


Je bent namelijk niet, zoals jij denkt, een string catenatie aan het doen, maar je maakt een tuple aan (door de komma's. String catenatie doe je namelijk gewoon met +). En als je daarna dat tuple toevoegt aan de listbox dan laat Tk ook zien dat het een tuple is. In plaats daarvan wil je waarschijnlijk dit, dat werkt veel makkelijker:

Python:
1
  file = '%s : %d" % (filename, filesize)


En om te kijken of een string alleen cijfers bevat:

Python:
1
2
3
4
5
    invoer = # ...
    if invoer.isdigit():
        waarde = int(invoer)
    else:
        raise ValueError("Ho, alleen getallen toegestaan!")

[ Voor 30% gewijzigd door Verwijderd op 02-11-2004 00:59 ]


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 15-05 06:45
Je hoeft niet per se op string-nivo te controleren; het is vaak logischer en makkelijker om naar de waarde te kijken. Je voert dan eerst de conversie naar integer uit (en als de string in dat stadium geen geldige stringrepresentatie van een integer bevat treedt er vanzelf een exception op) en daarna kijk je gewoon of de waarde groter dan of gelijk aan nul is (of wat je ook precies voor eisen hebt).

Het punt is dat als je een getal tussen 0 en 1000 wil hebben, het heel lastig is om dit op tekstueel nivo te garanderen. Het is veel makkelijker om naar de werkelijke waarde te kijken. In het genoemde voorbeeld kan het bijvoorbeeld al misgaan omdat "-0" geweigerd wordt (terwijl dat wel een geldige waarde is).

Verwijderd

Soultaker schreef op 02 november 2004 @ 01:55:
Je hoeft niet per se op string-nivo te controleren; het is vaak logischer en makkelijker om naar de waarde te kijken. Je voert dan eerst de conversie naar integer uit (en als de string in dat stadium geen geldige stringrepresentatie van een integer bevat treedt er vanzelf een exception op) en daarna kijk je gewoon of de waarde groter dan of gelijk aan nul is (of wat je ook precies voor eisen hebt).

Het punt is dat als je een getal tussen 0 en 1000 wil hebben, het heel lastig is om dit op tekstueel nivo te garanderen. Het is veel makkelijker om naar de werkelijke waarde te kijken. In het genoemde voorbeeld kan het bijvoorbeeld al misgaan omdat "-0" geweigerd wordt (terwijl dat wel een geldige waarde is).
I stand corrected. Natuurlijk heb je gelijk.