Page 1 of 1

[SOLVED] random module python

Posted: Tue Oct 09, 2012 4:09 pm
by Flipper
Voor de huistaak kun je het random module importeren voor het kiezen van een kleur van de "schijven". Daar heb ik wat problemen mee: het importeren lukt wel, maar wanneer ik de volgende code er op los laat:

Code: Select all

me.color(random)
krijg ik dus de volgende foutmelding:

Code: Select all

Traceback (most recent call last):
File "spirograaf.py", line 22, in <module>
disc(100 - (i * 14), 50 - (i * 7))
File "spirograaf.py", line 19, in disc
me.right(10)
File "/usr/lib/python3.2/turtle.py", line 1671, in right
self._rotate(-angle)
File "/usr/lib/python3.2/turtle.py", line 3271, in _rotate
self._update()
File "/usr/lib/python3.2/turtle.py", line 2654, in _update
self._drawturtle()
File "/usr/lib/python3.2/turtle.py", line 3006, in _drawturtle
screen._drawimage(titem, self._position, tshape)
File "/usr/lib/python3.2/turtle.py", line 730, in _drawimage
self.cv.coords(item, (x * self.xscale, -y * self.yscale))
File "<string>", line 1, in coords
File "/usr/lib/python3.2/tkinter/__init__.py", line 2165, in coords
self.tk.call((self._w, 'coords') + args))]
_tkinter.TclError: invalid command name ".45814352"
Blijkbaar doe ik iets verkeerd met de code.., iemand een idee? :|

Re: [IP] random module python

Posted: Tue Oct 09, 2012 4:18 pm
by Fristi
Kunt ge iets meer code plaatsen eventueel? Beetje context :-). Geen idee wat color en random zijn namelijk.

Re: [IP] random module python

Posted: Tue Oct 09, 2012 4:51 pm
by Flipper

Code: Select all

me.color(random)
is een code binnen de turtle-applicatie (klinkt dat bekend in je oren?). "Me" is de naam (lees: variabele) die ik aan

Code: Select all

turtle.Turtle()
gegeven heb.
Het "color" gedeelte geeft aan welke kleur de turtle ("me" in dit geval dus) heeft. Door "random" als argument te geven wilde ik eigenlijk aangeven dat de kleur random gekozen wordt, maar daar loopt blijkbaar iets mis. En ik ben van mening dat het echt daaraan ligt, want als ik die lijn code weghaal, krijg ik namelijk geen errors..

Re: [IP] random module python

Posted: Tue Oct 09, 2012 5:09 pm
by Fristi
Flipper wrote:

Code: Select all

me.color(random)
is een code binnen de turtle-applicatie (klinkt dat bekend in je oren?). "Me" is de naam (lees: variabele) die ik aan

Code: Select all

turtle.Turtle()
gegeven heb.
Het "color" gedeelte geeft aan welke kleur de turtle ("me" in dit geval dus) heeft. Door "random" als argument te geven wilde ik eigenlijk aangeven dat de kleur random gekozen wordt, maar daar loopt blijkbaar iets mis. En ik ben van mening dat het echt daaraan ligt, want als ik die lijn code weghaal, krijg ik namelijk geen errors..
Ik heb die applicatie nooit gebruikt (wij kregen nog geen python namelijk), dus nee :).

Re: [IP] random module python

Posted: Tue Oct 09, 2012 5:24 pm
by timvdm
Hey, ik heb gewoon het volgende gedaan:

Code: Select all


import random
...
colors = ["red", "green", ...]
...
random.shuffle(colors)
De shuffle functie verplaatst de kleuren naar randome posities in de lijst.

Re: [IP] random module python

Posted: Tue Oct 09, 2012 6:45 pm
by Flipper
Mmh, zo kan inderdaad ook, ik heb intussen ook een eigen oplossing gevonden:

Code: Select all


import random

...blah...

colors = ["green", "purple", "magenta", "blue", "yellow", "orange", "red"]
aColor = random.choice(colors)
me.color(aColor)

...blah...
Met random.choice kies je dus één element uit een verzameling (in dit geval: de kleuren).

Tim, die random.shuffle schudt inderdaad de kaarten, maar als je dat gaat implementeren gaat python gewoon het laatste element in die geschudde verzameling als kleur voor de turtle nemen. Je bereikt uiteindelijk wel hetzelfde resultaat natuurlijk :) , maar naar "mijn gevoel" is dat minder efficiënt, ik bedoel; je hebt er geen baat bij het schudden van een hele verzameling als je er uiteindelijk slechts één element (in dit geval, de laatste) uit haalt.

bron: http://docs.python.org/py3k/library/random.html" onclick="window.open(this.href);return false;
Fristi wrote:Ik heb die applicatie nooit gebruikt (wij kregen nog geen python namelijk), dus nee :).
Kijk, dat is nu echt eens een doodzonde.. :panic: Die turtle is echt fun voor beginnende programmeurs :D

PS: mods mogen hier [SOLVED] op plakken van mij :highfive:

Re: [IP] random module python

Posted: Tue Oct 09, 2012 9:15 pm
by Bob
Aww ik wil nog snel iets toevoegen :D Ik heb eigenlijk amper gelezen ze, maar ik denk dat je bij die turtles waarden van 0-255 moet ingeven (dus een int van een woord ofzo). Wilde mij ff nuttig voelen.