Hallo,
ik heb al de eerste huistaak afgemaakt maar ik blijf met een vreemde bug zitten waar ik niets van snap.
(Als je zelf de oefening nog niet af hebt, gelieve dan niet al te veel inspiratie hier te halen)
ik heb twee bestanden, huistaak.py en discs.py
huistaak.py roept de functies van discs op om de schijven werkelijk te tekenen
#
# Created on 8-okt.-2012
#
# @author: Stijn Manhaeve rolnummer: 20121442
# editor used: Eclipse 4.2.0 + PyDev
#
# This shows how to use the discs module
#
# Created on 8-okt.-2012
#
# @author: Stijn Manhaeve rolnummer: 20121442
# editor used: Eclipse 4.2.0 + PyDev
#
# to draw your own set of discs:
# import this module
# create a list of strings to use as colors
# choose the outer_radius of the largest disc
# call draw_discs(colors, start_radius)
# import statements
import turtle
import math
import random
# local fields
circle_quality = 270 # the number of sides used to draw a circle
circle_amount = 20 # amount of circles in each disc
animation_speed = 0 # the default animation speed for the turtles
radius_ratio = 7/8 # inner radius = radius_ratio*outer_radius
radius_degradation = 1/2 # new disc.radius = old radius*radius_degradation
# functions
def draw_poly(t, sides, length):
# t = turtle
# sides = number of sides
# length = length of sides
# (this function was already written by me for exercise 3 of chapter 4)
angle = 360/sides
for i in range(sides):
t.forward(length)
t.right(angle)
def draw_circle(t, x, y, r):
# t = turtle
# - should be positioned at the origin and facing east!
# x = x-coordinate of the midpoint
# y = y-coordinate of the midpoint
# r = radius
# calculate length of the sides
length = 2*r*math.sin(180/circle_quality)
# move to starting point
t.penup()
t.forward(x)
t.left(90)
t.forward(y+r)
t.right(90)
t.pendown()
# draw the circle
draw_poly(t, circle_quality, length)
def draw_disc(r, count, color):
# r = radius of the midpoints = outer radius
# count = the number of circles to draw for each disc
# color = disc color
inner = r*radius_ratio # calculate radius of the circles (the 'inner radius')
angle_jump = 360/count # the angle between two successive midpoints and the origin
# draw the circles
for i in range(count):
# calculate midpoint
x = r*math.cos(i*angle_jump)
y = r*math.sin(i*angle_jump)
# define the turtle
t = turtle.Turtle()
t.color(color)
t.hideturtle()
t.speed(animation_speed)
# draw the circle
draw_circle(t, x, y, inner)
def draw_discs(colors, start_radius):
# colors = which colors to use
# start_radius = starting outer radius
radius = start_radius
random.shuffle(colors)
for i in colors:
draw_disc(radius, circle_amount, i)
radius *= radius_degradation
als ik huistaak.py dan afspeel verschijnt er een nieuw venster, maar wordt er niks getekend.
Als ik het venster sluit verschijnt ineens deze foutmelding:
Mmh, waar heb jij de discs.py opgeslagen? Het is (denk ik) niet zo dat je een geschreven functie zomaar eender waar kunt opslaan om ze dan vervolgens vanuit een andere script te importeren. Je zou dat kunnen oplossen door
(1) De discs.py en die hele hoop die je daar geschreven heb, gewoon ergens bovenaan in je huistaak.py te copy-pasten. Vergeet dan niet daar de "import disc....(blah)" weg te halen, want je hebt die functie nu zelf binnenin je huistaak.py gedefinieerd.
(2) Of de discs.py in de directory van python te steken waar je alsnog vanuit je huistaak.py de discs.py kunt importeren.
(denk ik he, ik kan er totaal naast staan hoor )
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!
Ik heb 1 al geprobeert en kreeg exact dezelfde errors.
Ik denk niet dat het probleem daar ergens zit omdat in de traceback alle functies in de juiste volgorde staan.
Als de bestanden in dezelfde map staan kun je ze gewoon importeren zoals de andere modules
ja, je zou ook de script discs.py kunnen nakijken op syntax en/of runtime errors, ik heb al vaak datzelfde soort problemen gehad met verschillende opdrachten. De traceback in Python werkt trouwens niet altijd zuiver, ik kreeg bijvoorbeeld een error op een lijn die eigenlijk in orde was, maar de error zat in een paar lijnen hoger, waar ik een ")" vergeten was..
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!
ik weet al wat het probleem is.
Omdat er niets verscheen sloot ik het scherm af en dat genereerde de fout. blijkbaar moet ik gewoon wat geduldiger zijn met turtle
Flipper wrote:Mmh, waar heb jij de discs.py opgeslagen? Het is (denk ik) niet zo dat je een geschreven functie zomaar eender waar kunt opslaan om ze dan vervolgens vanuit een andere script te importeren. Je zou dat kunnen oplossen door
Dan wilk later u eindwerk wel eens bekijken als ge alles in 1 file begint te definieren
Kvind vreemd dat gulle al gelijk zo'n dingen krijgen, wij begonnen nog me nen "Hello world", nen simpele invoer en na een paar weken misschien eens nen array
Timmy wrote:Kvind vreemd dat gulle al gelijk zo'n dingen krijgen, wij begonnen nog me nen "Hello world", nen simpele invoer en na een paar weken misschien eens nen array
Dit is dan ook veel leuker dan Hello World en basis arrays...
Timmy wrote:Kvind vreemd dat gulle al gelijk zo'n dingen krijgen, wij begonnen nog me nen "Hello world", nen simpele invoer en na een paar weken misschien eens nen array
Dit is dan ook veel leuker dan Hello World en basis arrays...
Ja, maar gullie progt ni in een ferm deprimerende taal genaamd "Oberon"
Timmy wrote:Kvind vreemd dat gulle al gelijk zo'n dingen krijgen, wij begonnen nog me nen "Hello world", nen simpele invoer en na een paar weken misschien eens nen array
Dit is dan ook veel leuker dan Hello World en basis arrays...
Ja, maar gullie progt ni in een ferm deprimerende taal genaamd "Oberon"
Timmy wrote:Kvind vreemd dat gulle al gelijk zo'n dingen krijgen, wij begonnen nog me nen "Hello world", nen simpele invoer en na een paar weken misschien eens nen array
Dit is dan ook veel leuker dan Hello World en basis arrays...
Ja, maar gullie progt ni in een ferm deprimerende taal genaamd "Oberon"
Timmy wrote:Kvind vreemd dat gulle al gelijk zo'n dingen krijgen, wij begonnen nog me nen "Hello world", nen simpele invoer en na een paar weken misschien eens nen array
Dit is dan ook veel leuker dan Hello World en basis arrays...
Ja, maar gullie progt ni in een ferm deprimerende taal genaamd "Oberon"