[SOLVED] random module python

Forum van 1ste Bachelor Informatica.

Moderator: Praesidium

User avatar
Flipper
Posts: 193

[SOLVED] random module python

Post#1 » Tue Oct 09, 2012 4:09 pm

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? :|
They call him Flipper, Flipper, faster than lightning,
No-one you see, is smarter than he,
And we know Flipper, lives in a world full of wonder,
Flying there-under, under the sea!

User avatar
Fristi
WOZ
Posts: 4565

Re: [IP] random module python

Post#2 » Tue Oct 09, 2012 4:18 pm

Kunt ge iets meer code plaatsen eventueel? Beetje context :-). Geen idee wat color en random zijn namelijk.
Fristi Ad Infinitum

WINAK WOZ 2013 - ...
WINAK Magister Fristi 2012-2013
WINAK Feest 2011-2012
WINAK Schachtentemmer 2010-2011
WINAK Scriptor 2008-2009 | 2009-2010

User avatar
Flipper
Posts: 193

Re: [IP] random module python

Post#3 » Tue Oct 09, 2012 4:51 pm

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..
They call him Flipper, Flipper, faster than lightning,
No-one you see, is smarter than he,
And we know Flipper, lives in a world full of wonder,
Flying there-under, under the sea!

User avatar
Fristi
WOZ
Posts: 4565

Re: [IP] random module python

Post#4 » Tue Oct 09, 2012 5:09 pm

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 :).
Fristi Ad Infinitum

WINAK WOZ 2013 - ...
WINAK Magister Fristi 2012-2013
WINAK Feest 2011-2012
WINAK Schachtentemmer 2010-2011
WINAK Scriptor 2008-2009 | 2009-2010

timvdm
Posts: 47

Re: [IP] random module python

Post#5 » Tue Oct 09, 2012 5:24 pm

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.

User avatar
Flipper
Posts: 193

Re: [IP] random module python

Post#6 » Tue Oct 09, 2012 6:45 pm

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:
They call him Flipper, Flipper, faster than lightning,
No-one you see, is smarter than he,
And we know Flipper, lives in a world full of wonder,
Flying there-under, under the sea!

User avatar
Bob
WOZ
Posts: 367

Re: [IP] random module python

Post#7 » Tue Oct 09, 2012 9:15 pm

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.

Return to “1ste Bachelor”

Who is online

Users browsing this forum: No registered users and 3 guests

cron