Download Programando en Turtle 2

Document related concepts
no text concepts found
Transcript
Turtle Python
Guía II
15 de marzo de 2014
Programación para niños!
Usando la librería Turtle de Python. Guía II.
Ivan Zabala. Ingeniero en
Computación. Padre buscando
que su hijo aprenda, en una
temprana edad, los conceptos
básicos de programación. Lo
puedes seguir o contactar en
twitter con el id @ivandigital
Esta es la segunda de una serie de guías, dedicadas a enseñar a
los niños conceptos de programación. Por favor asegúrate, de
buscar y haber leído la primera, pues hay temas y
recomendaciones que son de suma importancia para seguir
avanzando. Todas las guías están disponibles en los blogs:
ivanditigal.wordpress.com
o
en:
http://
programacionpythonturtle.blogspot.com. De igual forma las
puedes conseguir en: https://www.evernote.com/pub/izabala/
guiasdeprogramacionparaninosenpythonturtle.!
Si leíste la primera guía, debes saber que se asume que el lector
(padre o maestro) no conoce de programación o su
conocimiento es muy básico. Ahora, si asume que tiene un
mínimo conocimiento para navegar en internet, buscar
información, bajarse los programas e instalarlos (si no, seguro
que su hijo / estudiante lo sabe hacer). También requiere que el
padre / maestro pueda explicar conceptos, sobre todo
matemáticos que no forman parte de la guía. Igualmente, los
comandos están en ingles, se debe poder manejar esto. !
Ivan Zabala
@ivandigital
1
Turtle Python
Guía II
15 de marzo de 2014
Para el Padre / Maestro!
En la guía I hay una serie de recomendaciones e instrucciones
de suma importancia para que este aprendizaje sea lo más
placentero. Este es un buen momento para volver a leerlas. La
Guía es corta, hazlo, seguro se te olvidaron un par y eso te
puede quitar unos cuantos dolores de cabeza.!
Sobre los conceptos que se van a aprender
En esta guía vamos a manejar varios conceptos de
programación, así como una serie de nuevos comandos de
python.!
Variables!
Lenguaje Python:
www.python.org
Vamos a comenzar a usar variables para guardar datos, reutilizarlos y manipularlos. El niño debe entender que una
variable es el nombre de un contenedor de un valor. Por ahora,
solo guardaremos números enteros y decimales. En otras guías
le iremos introduciendo el concepto de otros tipos de datos y el
uso de variables con estos.!
Bucles!
Le enseñaremos que se pueden hacer pasos repetidos usando
bucles. En específico veremos la sentencia while. Es de suma
importancia que lea esta sección pues puede ser algo nuevo y
debe asegurarse que su hijo entiende bien para poder usarlo. Al
final de la guía, después de las actividades hay una sección
l lamada: Usar bucles para el Padre / Maestro. Léala,
compréndala y así podrá explicarle mejor al niño.!
Números decimales!
Es tiempo que el niño entienda que La Tortuga no solo
entiende números enteros, si no también decimales. !
Usar a Python como una calculadora!
Vamos a ver que el Shell de Idle de Python es un muy buena
calculadora. Solo hay que usar los símbolos “+” para sumar, “-“
para restar, “/“ para dividir, “*” para multiplicar y “**”para elevar
al cuadrado. Hay otros, pero es suficiente para el niño por
ahora.!
!
!
Ivan Zabala
@ivandigital
2
Turtle Python
Guía II
15 de marzo de 2014
Radio, diámetro y ángulos en un círculo!
Me disculpan los matemáticos, vamos a utilizar el termino
círculo para referirnos a dibujar una circunferencia. Son niños,
solo necesitamos que sepan: que es el radio de un círculo, que
un circulo completo tiene 360º y que medio círculo tiene 180º y
que un cuarto tiene 90º y puede ser necesario que se explique
que es el diámetro. El resto se lo dejamos a su profesor de
matemáticas.!
El uso de variables, bucles y
funciones nos permiten hacer
gráficas sofisticadas en unas
pocas líneas.
¡Ahora comencemos a enseñar a los niños! Puede imprimir la
sección que viene como guía para el niño o para usted. Les
recomendamos que haga los ejercicios usted mismo para ver si
todo está bien.!
!
Ivan Zabala
@ivandigital
3
Turtle Python
Guía II
15 de marzo de 2014
Aprendiendo Python Turtle
Guia II!
¡Hola, de nuevo! Hoy vamos a aprender nuevas herramientas de
programación que nos permitirán hacer más cosas y más fácil.
Pero antes de eso. ¿Jugaste un poco más con nuestra amiga La
Tortuga? Veamos si es verdad. Hagamos un ejemplo de repaso,
si no recuerdas algo, debes revisar la guía anterior o pedirle
ayuda al adulto, ya sea tu papá, tu mamá o tu maestro. También
puedes leer la sección de cosas que debes tener en cuenta, de
esta misma guía, si algo no te funciona o están apareciendo
muchos errores, es posible que allí este la respuesta.!
Dibujando una Estrella
Abre el IDLE de Python (para que aparezca la ventana de
Python Shell) e introduce los siguientes comandos
(instrucciones):!
>>> from turtle import *
>>> home()
>>> pensize(10)
>>> pencolor("blue")
>>> forward(100)
>>> lt(144)
>>> forward(100)
>>> lt(144)
>>> forward(100)
>>> lt(144)
>>> forward(100)
>>> lt(144)
>>> forward(100)
Haciendo una estrella azul.
En este ejemplo se uso lt(144) en lugar de left(144). Si
recuerdas la guía I, hay varios nombres para un mismo
comando, es decir La Tortuga entiende que lt y left es lo
mismo. En esta guía se vuelven a incluir la lista de comandos,
búscala y verás que puedes usar fd(100) en lugar de
forward(100), y La Tortuga va ha hacer exactamente lo mismo,
avanzar 100 pasos. Así que si en algún ejemplo no entiendes
que hace un comando, vuelve a ver la lista de comandos para
ver si aparece el que buscas.!
Variables
Hasta ahora, le hemos dado instrucciones a La Tortuga usando
“números” como en forward(100) o palabras entre comillas
Ivan Zabala
@ivandigital
4
Turtle Python
Guía II
15 de marzo de 2014
(también conocidas como cadenas de caracteres o strings)
como por ejemplo pencolor(“blue”). Eso esta bien, pero
necesitamos comenzar a usar herramientas que nos permita
usar los valores de números y palabras de maneras más
poderosas. Para esto usaremos un concepto de programación
llamado “variable”.!
Una variable es el nombre de una caja que contiene un valor. Y
le asignamos un valor a la variable usando el signo “=“. !
Entonces para crear una variable con el nombre de “x” y cuyo
valor es “100” escribimos lo siguiente:!
x = 100
Intentalo, escribe en la ventana de Shell de Python (Python
IDDLE) la instrucción anterior. Puede haber uno o varios
espacios entre la “x” y el signo “=“ al igual que entre el signo “=“
y el número “100”, donde no puede haber espacios es antes de
escribir la “x”. Si ya lo escribiste, nada extraordinario paso, pero
si ahora escribes el comando: !
La variable X es el nombre de la
caja que contiene el valor 100
x
Python te devuelve el valor “100”. Esto se debe a que para
Python, ahora x es el nombre de la caja que contiene el valor
100 y cada vez que escribas x, estarás usando el valor que
actualmente posee, hasta que le pongas o asignes otro valor.!
Los nombres de las variables pueden ser casi cualquier cosa, por
ejemplo puedes escribir los siguiente:!
edad = 10
Y si luego escribes edad:!
edad
Python te devuelve el número 10.!
!
x y edad pasan a tener el valor
de 100 y 10 que fueron los
valores asignados.
El valor puede ser muchas cosas de muchos tipos, pero por
ahora tenemos que saber que las variables pueden guardar
palabras entre comillas (conocidas como cadenas de caracteres
o strings) y números. ! !
Veamos un ejemplo con nuestra amiga La Tortuga:!
>>> home()
>>> clear()
>>> x = 140
>>> giro = 90
Ivan Zabala
@ivandigital
5
Turtle Python
Guía II
15 de marzo de 2014
>>> fd(x)
>>> rt(giro)
>>> fd(x)
>>> rt(giro)
>>> fd(x)
>>> rt(giro)
>>> fd(x)
La Tortuga dibuja un cuadrado, donde cada lado es de 140
pasos. !
Dibujando un cuadrado usando
variables en lugar de valores.
Usando Python como una calculadora
El Python Shell puede ser usado para hacer cálculos y las
variables para guardar valores. Veamos este ejemplo, escribe y
dale a la tecla Enter al final:!
100 + 300 + 53 + 34
Python contesta: 487.!
Veamos otro ejemplo esta vez con número decimales,
supongamos que compramos 7 pizzas y cada una cuesta 15.50
(en Python los números decimales van después del punto y no
la coma). Para calcular el total solo debemos escribir:!
7 * 15.50
Python responde: 108.5!
Ahora usando variables:!
Ejemplos usando Python como
calculadora. Se puede usar
números enteros o decimales,
estos últimos usan el punto en
lugar de la coma.
costo_pizza = 13.25
numero_pizzas = 11
total = costo_pizza * numero_pizzas
total
Python responde 145.75. !
En este ejemplo, costo_pizza, numero_pizzas y total son
variables. Se crean y se les asigna el valor con “=“. Al ejecutar el
comando, Python usa el valor que contienen en ellas. Si ven en
este ejemplo, se usan nombres de variables que sean fácil de
entender, recordar y usar. La variable costo_pizza tiene el costo
de una pizza, y numero_pizzas el número de pizzas. Podríamos
usar nombres de variables como “x” o “y”, pero así es más fácil
recordar que valor contiene la variable. Si es posible, usa
nombres que indiquen para que se usan las variables, esto va a
ser una buena práctica de programación. Se puede usar “_” para
facilitar la lectura de los nombres de las variables o también
Ivan Zabala
@ivandigital
6
Turtle Python
Guía II
15 de marzo de 2014
usar minúsculas y mayúsculas mezcladas como por ejemplo:
CostoPizza. Pero tienes que recordar que para Python
CostoPizza y Costopizza no son lo mismo. Así que a menos que
tengas cuidado con eso, es mejor que mantengas el uso de solo
minúsculas por ahora.!
Incrementando una misma variable!
Un aspecto importante en el uso de las variables, es como
usarlas para ir guardando valores temporales, o usar una
variable para ir incrementando un valor. Esto es útil para ir
totalizando o para llevar una cuenta de cuantas veces se ha
hecho algo. La forma de hacer esto con Python es asignándole,
a la misma variable, el valor de un resultado en el que se usa el
valor actual de la variable. Veamos un ejemplo:!
x=0
x=x+1
x=x+2
x
Incrementar una variable. Esto
es un punto central en la
programación.
Al finalizar esos comandos, Python me responde 3. Veamos
que sucede aquí. Primero se crea la variable x y se le asigna 0.
Luego a la misma variable x le asigno su valor actual + 1. Su
valor actual es 0 + 1 es igual a 1, entonces el nuevo valor de x es
1. Para el comando x = x + 2, a x se le va a asignar el resultado
de la suma de su valor actual, que es 1, mas 2 por lo que ahora x
es 3. !
Bucles en Python
Hay dos tipos de bucles en Python pero por ahora solo veremos
el bucle while. While significa “mientras” y lo que hace es que
repite una serie de comandos o acciones mientras una pregunta
o condición sea cierta. Es como si preguntáramos:!
Mientras la respuesta sea verdadera:
Ejecuta Esto y Esto y Esto.
Vamos a hacer un ejemplo, pero debes tener unas cosas
pendientes. Escribe “:” después de la condición i <= 10. Esos
dos puntos le dicen a Python que lo que viene lo tiene que
repetir mientras el valor de i sea menor o igual a 10. Además
debe haber unos espacios en blanco, que los coloca el Shell de
Python por ti, para indentar los comandos. Eso solo significa
que son comandos del while, y se les conoce como bloque de
instrucciones. Finalmente cuando escribas la última instrucción
Ivan Zabala
@ivandigital
7
Turtle Python
Guía II
15 de marzo de 2014
del bloque (que es i = i + 1) debes oprimir la tecla de Enter 2
veces. Si no lo haces, no se ejecuta el while con su bloque.
¿Entendido? Vamos pruébalo.!
>>> i = 1
>>> while i <= 10:
print("Hola")
i=i+1
Ahora tienes la palabra Hola escrita 10 veces. Primero,
entendamos que el comando print, escribe en el shell de
Python lo que le pases entre comillas. !
Ejemplo de un bucle while
Ahora entendamos el bucle del ejemplo, la variable i tiene
primero el valor 1. Cuando llega al while, se pregunta si el valor
de i (que es uno) es menor o igual que 10. Esto es verdadero,
así que se escribe “Hola” y luego a la variable i, se le suma su
valor actual más 1, entonces i pasa a valer 2. Se vuelve a ir al
while y se vuelve a pregunta todo. Esto se va a repetir (el
escribir “Hola” e incrementar el valor de i en uno) hasta que i
tenga el valor de 11. Alli la pregunta 11 es menor o igual a 10 es
Falsa, así que el bucle while termina.!
Bucles en Turtle
Ejemplo dibujando de nuevo la estrella!
Volvamos al ejemplo de la estrella del principio de la guía.
Hagamos lo mismo, pero esta vez con variables y un bucle
while. Vamos a cambiar el tamaño del marcador a 7 y el color a
rojo, y el número de pasos a 200, para que la estrella luzca
distinta.!
>>> from turtle import *
>>> home()
>>> pensize(7)
>>> pencolor("red")
>>> i = 1
>>> while i <= 5:
fd(200)
lt(144)
i=i+1
Estrella usando un bloque while
Recuerda que después del bloque de instrucciones del while
debes teclear 2 veces la tecla Enter para que Python sepa que se
terminó el bloque y lo ejecute. Aquí el bloque se ejecuta 5 veces,
ya que i tiene que irse incrementando de uno en uno, hasta
Ivan Zabala
@ivandigital
8
Turtle Python
Guía II
15 de marzo de 2014
llegar a 6, donde la pregunta 6 es menor o igual a 5 es falsa. Allí
termina el bucle while.!
Veamos otro ejemplo.!
Figura con Círculos!
Aquí vamos a usar un nuevo comando de Turtle. El comando es
circle(radio), para dibujar un círculo con el radio dado.!
Veamos el código que vamos a usar:!
>>> reset()
>>> i = 0
>>> while i < 24:
lt(15)
circle(100)
i=i+1
Ejemplo de uso de bucle while y
el comando circle(radio)
Recuerda, dos veces Enter después del bloque. Estas pocas
líneas hacen una hermosa gráfica. ¡Bravo Tortuga! El bucle
while hace que 24 veces (la variable i va desde el valor 0 al 23)
gire la tortuga a la izquierda 15º y dibuja un círculo en cada
oportunidad. ¡Gracias al bucle while nos hemos ahorrado
escribir lt(15) y luego circle(100) 22 veces mas!!
Incrementando una variable!
Incrementar una variable en un valor dado es tan usado en
programación que Python tiene una abreviación para esto. En
lugar de escribir: !
i=i+1
Puedes escribir:!
!
!
i += 1
Es exactamente igual uno al otro. !
Si necesitas incrementar una variable en 500 unidades, es lo
mismo escribir cualquiera de estas dos líneas:!
total_pizza = total_pizza + 500
total_pizza += 500
Hasta aquí los ejemplos de esta guía. Hay dos secciones
importantes de cosas que debes tener en cuenta, para no tener
tantos errores, y un listado de los comandos de Turtle y Python
vistos. Después una serie de actividades que deberías practicar.
Ivan Zabala
@ivandigital
9
Turtle Python
Guía II
15 de marzo de 2014
Al final hay una sección de bucles, pero más al detalle. Si no la
entiendes, no importa, esta pensado para que la lea un adulto.!
!
Ivan Zabala
@ivandigital
10
Turtle Python
Guía II
15 de marzo de 2014
Cosas que debes tener en cuenta
1. Si te equivocas y sale un error, no te preocupes, solo vuelve a
escribir el comando de nuevo de manera correcta. Inténtalo
de nuevo.!
2. Si te equivocas también tienes el comando undo() que
deshace la equivocación. Practícalo.!
Ten en cuenta estos consejos.
3. Debes escribir todos los comando en minúsculas. En otras
guías veremos que podemos usar mayúsculas para algunas
cosas, pero por ahora solo usa minúsculas. Si te equivocas,
solo vuelve a intentar.!
4. No debe haber espacios en blanco antes de la primera letra
de un comando, a menos que estés escribiendo un bloque de
un bucle while. En el caso del bloque todos los comando
deben comenzar en el mismo lugar, sin más o menos
espacios en blanco.!
5. Si un comando lleva un paréntesis, lo debes colocar, y
siempre vienen en parejas, se comienza con “(“ y se termina
con “)”. Si se te olvida cerrar un paréntesis en una línea, solo
ciérralo abajo y dale a la tecla Enter, lo peor que puede pasar
es que obtengas un error.!
6. Solo puedes escribir un comando por línea.!
7. Cada vez que termines de escribir un comando debes
apretar la tecla “Enter” para que se ejecute el comando. En
el caso de que termines de escribir los comandos de un
bloque de un bucle while, debes apretar la tecla “Enter" 2
veces.!
8. Debes escribir “:” después de la condición del while y el
bloque siguiente debe tener espacios en blancos (llamados
indentación). Pero no es dificil, ya que el Python Shell los
coloca por ti.!
9. Si se te cierra la ventana del Shell de Python, solo vuelve a
abrirla. Cerrar la ventana puede ser útil si se te quedó un
bucle while sin que la condición se vuelva falsa. Vas a tener
que volver a escribir el comando: !
!
Ivan Zabala
from turtle import *
@ivandigital
11
Turtle Python
Guía II
15 de marzo de 2014
Lista de comandos de Turtle y Python
A continuación se presenta una lista de comandos con su
descripción. Si en una celda aparecen varios comandos, es que
estos son equivalentes. Por ejemplo es lo mismo escribir
forward(100) que fd(100); con ambos La Tortuga avanza 100
pasos. Igual con pendown(), pd() o down(); en los tres casos La
Tortuga baja el marcador para dibujar.!
Comandos de Turtle
Descripción
from turtle import *
Permite que puedas dar
comando a La Tortuga.
Siempre debes usarlo al
empezar a usar el programa
IDLE Python.
home()
Devuelve a La Tortuga a su
casa y hace que mire a la
derecha de la pantalla.
undo()
Deshace la acción anterior. Si
se repite deshace la acción
anterior a esa, etc.
forward(pasos) , fd(pasos)
La Tortuga avanza el número
de pasos dado.
back(pasos) , bk(pasos) ,
backward(pasos)
La Tortuga retrocede el
número de pasos dado.
right(grados) , rt(grados)
La Tortuga gira a su derecha la
cantidad de grados definido.
left(grados) , left(grados)
La Tortuga gira a su izquierda
la cantidad de grados
definido.
goto(x,y) , setpos(x,y) ,
setposition(x,y)
Mueve a La Tortuga al punto
dado por las coordenadas
(x,y)
setx(x)
Mueve horizontalmente a La
Tortuga hasta el valor x.
sety(y)
Mueve verticalmente a La
Tortuga hasta el valor y.
pendown() , pd() , down()
Le dice a La Tortuga que baje
el marcador para que
comience a dibujar.
¡Practica los comandos! Prueba y
si te equivocas, usa undo() o
vuelve a intentarlo…
Ivan Zabala
@ivandigital
12
Turtle Python
Guía II
15 de marzo de 2014
Resumen de Python
Descripción
x = 0, nombre = “mi nombre”,
total = 100.5
Definición de variables y
asignación de valores.
10 + 145 * 2 / 5 - 23,4
El shell de Python es una
buena calculadora.
variable = variable + 10
incrementa o suma el valor
actual de la variable y luego le
asigna a la misma variable el
valor de la suma
Símbolos usados en
expresiones o condiciones:
<, <=, >, >=, ==, !=
Se usan para comparar
valores. Son en el mismo
orden: menor que, menor o
igual que, mayor que, mayor o
igual que, igual, distinto.
Debes tener pendiente que
igual tiene dos símbolos “=“.
Si se cumple la expresión, el
valor de la expresión es
verdadero, si no es falso.
while condición:
bloque de while
Permite que las instrucciones
del bloque se repitan mientras
la condición o expresión sea
verdadera. No se debe olvidar
del signo “:” después de la
condición o expresión y de
indentar el texto del bloque.
print(“texto a escribir”)
Escribe en el Shell de Python,
lo que le pases entre comillas.
Comandos de Turtle
Descripción
penup() , pu() , up()
Le dice a La Tortuga que suba
el marcador para que no
dibuje.
pensize(valor)
Cambia el grosor del
marcador al valor dado, para
que la línea trazada sea más o
menos gruesa.
pencolor(“color”) ,
pencolor(‘color’)
Cambia el color del marcador
al color dado. El color debe
estar en ingles.
Ivan Zabala
@ivandigital
13
Turtle Python
Guía II
15 de marzo de 2014
Comandos de Turtle
Descripción
clear()
Borra todo lo dibujado o
escrito, pero deja La Tortuga
en el lugar que estaba.
reset()
Borra todo, y lleva a La
Tortuga a casa. La Tortuga se
gira para mirar a la derecha
de la pantalla.
shape(“turtle”) ,
shape(‘turtle’)
Cambia la forma de La
Tortuga a la forma dada. Los
valores pueden ser: “arrow”,
“turtle”, “circle”, “square”,
“triangle” y “classic”
circle(radio),
circle(radio, angulo)
Dibuja un circulo con el radio
dado. Si se usa el comando
con el parámetro ángulo, En
lugar de dibujar el circulo
completo, dibuja el arco o la
fracción de la circunferencia
dada por el ángulo. El
comando circle(100,180)
dibuja un semi circulo con
radio 100.
dot(), dot(size),
dot(size,”color”)
Dibuja un punto en el lugar
que se encuentra la tortuga. Si
el parámetro size es dado, se
dibuja el punto donde size es
el diámetro del punto. dot(20)
dibuja un punto con diámetro
20. Si se da el parámetro
color, el punto se dibuja del
color que se especifica.
speed(0)
¡Corre Tortuga!
Ivan Zabala
@ivandigital
14
Turtle Python
Guía II
15 de marzo de 2014
Actividades!
Hagamos una serie de ejercicios, para que repases todo lo
aprendido. Trata de hacer la actividad tu solo, mirando la lista
de comando o volviendo a lo ya visto. Pero si no puedes los
comandos están allí. !
Recuerda que los signos “>>> “ en las respuestas, son parte del
IDLE y no debes escribirlos. Se incluye en cada caso los
comandos: from turtle import * y home(), si ya los has escrito no
hace falta que los vuelvas a escribir. Solo lo hago por si cerraste
el IDLE Python y lo acabas de abrir de nuevo.!
Hagamos un Pentágono
Haz un pentágono con las siguientes características:!
Un pentágono es una figuras que tiene 5 lados iguales. !
Debes usar un bucle while. El bucle debe ejecutar el bloque de
acciones 5 veces. Puedes usar una variable llamada contador,
que vaya incrementando de 1 en 1 hasta que llegues un número
mayor a 5. El bloque de comando debe avanzar 200 pasos y
luego girar a la derecha 72º (también puedes hacerlo igual girar
a la izquierda). !
Luego de hacer esto, puedes practicar con cuadrados, girando
90º a la izquierda (o derecha) o con triángulos girando 120º a la
derecha (o a la izquierda). Igualmente, prueba cambiando el
tamaño del marcador y colores.!
Respuesta:!
>>> from turtle import *
>>> home()
>>> clear()
>>> contador = 1
>>> while contador <= 5:
fd(200)
rt(72)
contador = contador + 1
Pentágono. ¡Bien Tortuga!
Haciendo lineas desde un eje
Vamos a hacer líneas que salen de un mismo punto pero
en un ángulo creciente.!
Ivan Zabala
@ivandigital
15
Turtle Python
Guía II
15 de marzo de 2014
En este ejemplo se va a ir incrementando el ángulo de giro de
cada línea que sale de casa. ¡Vamos Tortuga!!
Respuesta:!
from turtle import *
reset()
pencolor("red")
pensize(3)
contador = 1
incremento = 5
pasos = 200
while contador <= 72:
lt(incremento)
fd(pasos)
bk(pasos)
contador = contador + 1
Líneas que salen de un eje.
Ejemplo de el uso de variables y
un bucle while.
Haciendo cuadrados que crecen
Hacer cuadrados con un bucle y hacer que cada uno sea
más grande que el anterior!
En este ejemplo vamos a usar 2 bucles while, un bucle hace que
se dibuje el cuadrado y otro hace que se vaya aumentando la
cantidad de pasos de cada cuadrado para que sean más grandes
cada vez. Cuando hay un bucle dentro de otro, se les llama
bucles anidados. Lo que hace es que cada vez que se repite el
bloque de instrucciones del primer bucle while (o externo) se
ejecuta todo el bloque de instrucciones del segundo bucle while
(o interno). !
Es importante que veas, que cada bloque de instrucciones de su
while tiene los espacios de indentación para indicar que ese
código es de dicho bloque. Las del while interno (segundo)
tienen mas espacios que las instrucciones del while externo
(primero). Las instrucciones del while externo, pueden estar
antes o después del otro while, pero siempre tienen que
mantener la misma indentación. Voy a poner en azul las
instrucciones del bloque del primer while y en rojo las del
segundo. Fijate que el segundo while es azul, ya que es parte del
bloque del primer while. !
En el ejemplo se puede ver el uso de variables como pasos e
incremento. Pasos da el número de pasos del cuadrado.
Cuando sale del while interno, los pasos se suben una cantidad
dada por incremento, para hacer que el siguiente cuadrado sea
Ivan Zabala
@ivandigital
16
Turtle Python
Guía II
15 de marzo de 2014
un poco más grande. Se tienen dos contadores, que van
incrementando, para que cada bucle while se ejecute la
cantidad de veces necesarias y en algún momento termine. El
primer contador va a incrementarse hasta llegar a 3 1 , para
repetir el bloque 30 veces y el segundo, va a llegar hasta 5 para
repetir el bloque 4 veces (uno por cada lado del cuadrado). !
Importante, cuando termines de escribir la última instrucción
del bloque del while mas interno (segundo), debes apretar la
tecla backspace (borrar) para eliminar una indentación y volver
al bloque del primer while. Si esto no se hace, las instrucciones
van a seguir en el bloque del 2do while. Debe verse como se
muestra en el ejemplo de abajo. Recuerda, debes borrar con la
tecla Backspace los espacios para quedar con la misma
separación que antes de escribir el 2do while. Mira la
respuesta. Recuerda también que debes apretar 2 veces la tecla
Enter después de la última instrucción del bloque del primer
while (es decir la última del programa) para que se ejecute.!
Para finalizar la explicación, vamos a utilizar la notación
variable += número, en lugar de variable = variable + número,
hay que comenzar a usarlo y acostumbrarse.!
¡Bueno, basta, pon a trabajar a la tortuga! !
Respuesta:!
Cuadrados crecientes, usando
dos bucles while anidados.
!
Ivan Zabala
from turtle import *
reset()
pensize(5)
pencolor("green")
pasos = 10
incremento = 10
contador = 1
while contador <= 30:
otro_contador = 1
while otro_contador <= 4:
fd(pasos)
lt(90)
otro_contador += 1
pasos += incremento
contador += 1
@ivandigital
17
Turtle Python
Guía II
15 de marzo de 2014
Puntos en escape
Vamos a combinar la instrucción de circle() con la de
dot()!
La instrucción dot() hace un punto donde esté parada La
Tortuga, ve a la sección de lista de comandos, allí esta
explicada. Vamos a usar también el comando speed(0) que le
dice a La Tortuga que vaya a su máxima velocidad.!
Aquí de nuevo hay 2 bucles while anidados. Igual que en el
ejemplo anterior, vamos a poner en azul las instrucciones del
bloque del while externo (primero) y en rojo las del interno
(segundo). Recuerda que debes apretar la tecla BackSpace o
borrar el espacio para que la indentación quede como antes de
escribir el 2do while. y luego de la última instrucción del bloque
del primer while, debes apretar dos veces la tecla Enter.!
Respuesta:!
from turtle import *
reset()
pencolor("brown")
up()
speed(0)
angulo = 10
veces = 20
contador = 1
while contador <= 36:
home()
contador_adicional = 1
radio = 10
lt(angulo * contador)
while contador_adicional < veces:
circle(radio,angulo)
dot(10)
radio += 10
contador_adicional += 1
contador += 1
home()
shape(“turtle")
Debe estar cansada la tortuga
después de este dibujo.
Bueno, hasta aquí esta guía. Dejemos que nuestra amiga
descanse, ese último ejemplo la dejó exhausta. Practica y Juega
con Turtle, es la forma de aprender. Más comandos y
conceptos de programación en la guía III.
Ivan Zabala
@ivandigital
18
Turtle Python
Guía II
15 de marzo de 2014
Usar bucles, para el Padre / Maestro
Un bucle es una forma de repetir la mismas acciones varias
veces. Hay dos tipos de bucles en Python, por ahora solo vamos
a ver el bucle while (significa “mientras” en ingles). !
En un bucle existen varias partes que son fáciles de identificar y
que deben estar presentes:!
• El comando del bucle: en este caso la palabra while!
• La condición o expresión para seguir en el bucle: cada
vez que se va a repetir las instrucciones, se debe verificar que
una condición o una expresión siga siendo verdadera. Cuando
es falsa, el bucle no se continúa haciendo.!
• El símbolo o caracter “:” que indica que a partir de allí
viene una serie de instrucciones que conforman un
bloque: Se coloca justo después de la condición o de la
expresión e indica que van a comenzar un “bloque” de
instrucciones que se repiten mientras la condición siga
siendo verdadera.!
• Bloque de instrucciones o comandos: El bloque de
instrucciones o comandos que se van a repetir. Estas
instrucciones deben estar indentadas, es decir deben tener un
número de espacios en blanco antes de la primera letra del
comando. Todas deben tener el mismo número de espacios
en blanco. Gracias a el IDDLE de Python y en especial al
Shell de Python, cuando se detecta el símbolo o carácter “:”
después de la condición o expresión del while,
automáticamente cada nuevo comando tiene la misma
cantidad de espacios en blanco al principio de la línea.
Cuando finalices de escribir los comandos del bloque, debes
apretar dos veces seguidas la tecla Enter. Cuando tecleas dos
veces seguidas Enter, el Shell de Python entiende que ya
finalizó el bloque, y que debe ejecutar la instrucción while y
su bloque.!
La estructura del bucle while es:!
while condición:
bloque de instrucciones
Y se puede entender como la siguiente instrucción general: !
Esquema del bucle while.
“Mientras la condición o expresión sea verdadera: Ejecuta el
bloque de instrucciones.“!
Ivan Zabala
@ivandigital
19
Turtle Python
Guía II
15 de marzo de 2014
El bloque de instrucciones se ejecuta una y otra vez, hasta que
la condición del while, pasa a ser falsa. Se pueden usar los
siguientes símbolos: <, <=, >, >=, ==, !=. Se usan para comparar
valores y son en el mismo orden: menor que, menor o igual que,
mayor que, mayor o igual que, igual y distinto (o no igual).!
Debes tener pendiente que igual tiene dos símbolos “=“, ya que
uno solo se usa para asignar variables. Si se cumple la
expresión, la condición es verdadera, si no es falsa.!
Veamos un ejemplo: Sumar todos los números del 1 al 10.!
Ejemplo de un bucle while
>>> numero = 1
>>> suma = 0
>>> while numero <= 10:
suma = suma + numero
numero = numero + 1
>>> suma
Python responde con el número 55. Recuerda que debes teclear
2 veces Enter cuando se termina el bloque de instrucciones del
bucle while. !
Veamos que sucedió aquí. Primero creamos las variables
numero y suma, asignándoles el número 1 y 0 respectivamente.
La variable número va a ir subiendo de 1 en 1 y la suma va a ir
totalizando la sumas de cada uno de los números. !
Tenemos la palabra while (que indica el comienzo del bucle)
seguida de su condición o expresión. La condición es que la
variable número tiene que ser menor o igual a 10, para que se
ejecute el bloque. Luego viene los dos puntos, que indica que a
partir de allí viene el bloque de instrucciones. !
Las dos instrucciones del bloque, toman el valor actual de la
variable, le suman la cantidad necesaria y se la asignan para que
el nuevo valor sea usado en la siguiente oportunidad. !
Hagamos el ejercicio de manera mental. Cuando llegamos al
while por primera vez, la variable numero vale 1 y la variable
suma vale 0. La condición (se puede ver como una pregunta)
¿Es el valor de la variable numero menor o igual a 10? Como la
variable numero en ese momento vale 1 , la respuesta a esa
pregunta es: verdadero, así que se van a ejecutar las
instrucciones del bloque. !
Ivan Zabala
@ivandigital
20
Turtle Python
Guía II
15 de marzo de 2014
En la primera instrucción del bloque, la variable suma tiene el
valor 0 y la variable numero tiene el valor 1. La suma de estos
dos número es igual a 1 y se le asigna este valor a la variable
suma. Así que para la próxima vez que se use, suma tendrá un
valor de 1. !
En la segunda instrucción, la variable numero tiene un valor de
1 al sumarle 1, la variable numero pasa a tener el valor 2. !
Termina el bloque de instrucciones así que subimos a la
instrucción while de nuevo y volvemos a evaluar la condición.
Ahora la variable numero vale 2.
La pregunta sería: ¿Es 2
menor o igual a 10? La respuesta es: verdadero, por lo que se
vuelve a ejecutar el bloque. !
Ahora en la primera instrucción del bloque, la variable suma
pasaría a valer 3 ya que sumarias su valor actual que es 1 más el
valor de la variable numero que es 2. En la segunda instrucción del bloque, la variable numero pasaría
a valer 3 ya que en estos momentos vale 2 y le sumas 1. !
Vuelves a subir al while, y la pregunta ahora es: ¿Es 3 (valor de la
variable numero) menor o igual a 10? La respuesta es verdadero,
así que volvemos al bloque. Suma pasa a valer 6 (suma vale 3 y
numero vale 3) y número a valer 4 (su valor es tres y se le suma
1). Luego suma vale 10 y numero 5, luego suma vale 15 y numero
6, luego suma vale 21 y numero 7, luego suma vale 28 y numero
8, luego suma vale 36 y numero 9, luego suma vale 45 y suma 10,
luego suma vale 55 y número 11. En ese momento, la condición
se convierte en falsa, ya que la respuesta a la pregunta: ¿Es 11
(valor de numero) menor o igual a 10? es falso. Así que se va a
la instrucción que sigue al fin del bloque de instrucciones y que
es el palabra suma, nombre de la variable, así que Python
retorna su valor que es 55 y el cual es el resultado de sumar los
primeros 10 numero entre si.!
Importante: debemos asegurar que se suma las variables o se
hace algún paso dentro, del bloque de instrucciones, para que la
condición se vuelva falsa en algún momento; en caso contrario
el bucle continuará infinitamente o hasta que un error ocurra.
Es decir, si en el ejemplo anterior no incrementáramos el valor
de la variable numero, la condición no sería falsa nunca, y
seguiría sumando por mucho tiempo.!
Ivan Zabala
@ivandigital
21
Turtle Python
Guía II
15 de marzo de 2014
Si esto llegase a ocurrir, solo cierra la ventana del Shell de
Python y vuelve a abrirla. También puedes seleccionar el menú
de Shel l de la par te de arriba de la ventana de Shel l y
seleccionar Restart Shell. Después de hacer cualquiera de las
dos cosas debes volver a escribir de nuevo: from turtle import *.
!
Ivan Zabala
@ivandigital
22