Parametros - johncroth/pythonEd2024 GitHub Wiki
Last lesson we saw a function like this:
def dibujar_triangulo():
for i in range(0,3):
forward(80)
right(120)
It drew an equilateral triangle with sides of length 80
. If we want a different size triangle, we'd have to write another
function. But no, there is a better way. Save and execute the following program in param_a.py
:
from turtle import *
def dibujar_triangulo( longitud ):
for i in range(0,3):
forward(longitud)
right(120)
dibujar_triangulo(40)
dibujar_triangulo(60)
dibujar_triangulo(80)
dibujar_triangulo(50)
The "parameter" longitud
works like a variable within the body of the function. We have to give it a specific value when
we call the function, like dibujar_triangulo(40)
, and the function will use the value 40
in place of longitud
.
Multiple parameters
We can use as many parameters as we like in the definition of the function. Save and execute the following in param_b.py
,
which defines a function that draws a regular polygon with the given number of sides and length, and then uses it to draw 3
different shapes.
from turtle import *
def dibujar_polygon( longitud, lados):
for i in range( lados ):
forward( longitud )
right( 360 / lados )
dibujar_polygon( 100, 4 )
dibujar_polygon( 40, 12 )
dibujar_polygon( 150, 5 )
Nested functions
Once you have defined a function, you can call it from within other functions.
from turtle import *
def dibujar_polygon( longitud, lados):
for i in range( lados ):
forward( longitud )
right( 360 / lados )
def dibujar_cuadrado( longitud ):
dibujar_polygon( longitud, 4 )
def dibujar_triangulo( longitud ):
dibujar_polygon( longitud, 3 )
dibujar_cuadrado( 40 )
dibujar_triangulo( 80 )
dibujar_polygon( 150, 5 )
Ejercicios
With a function with two parameters def saltarXy(x,y)
lift the pen, jump to a given point on the screen, and replace it. Use
it to draw triangles at 4 points.
-
Draw random regular polygons of random side length between 30 and 60 and random number of sides between 3 and 10
-
In
xxx.py
, write a functiondef total(lista):
that takes a list of numbers and prints out their sum. Test it by printing out the sums of the following lists:
a = [ 6, 5, 4, 3, 2, 1] # total es 21
b = [ 100, 101, 102] # total es 303
c = [ 1, 1, 1, 1, 1, 1, 1, 1 ] # total es 8
-
Median of a list of numbers
-
sqrt and hypotenuse.
-
improve the "dibujar_casa" function by letting the user supply the height and width of the box.