Download Descargar taller

Document related concepts
no text concepts found
Transcript
Taller introducción a Python con Turtle
Copie el archivo suministrado de la USB a la carpeta MisDocumentos (Asegúrese de borrar carpetas
existentes de nombre Python), posteriormente, descomprima el archivo de nombre
PyzoPythonIDEPortable.zip en la carpeta MisDocumentos de la sala de cómputo, así:
luego ejecute el archivo de nombre pyzo.exe
esto iniciará una ventana como la siguiente:
Seleccione Spanish y desmarque la opción show this wizard on startup oprima next y
luego cierre el asistente.
Luego encontrará una ventana como la que aparece en la siguiente figura, es el
IDE(Entorno integrado de desarrollo para Python pyzo).
Como lo muestra la imagen, Guarde un archivo con terminación .py mediante Archivo → Guardar
Como, éste será el código Python de su programa. Puede ejecutarlo en cualquier momento mediante
la opción Ejecutar → Ejecutar el archivo como un script esto mostrará la salida por consola de su
programa.
Importante: si no guarda previamente el archivo con algún nombre obtendrá un error al intentar
ejecutarlo.
Estructuras básicas de Python y su relación con Pseint
Mientras y Para (Pseudocódigo vs Python)
If (Pseudocódigo vs Python)
Operadores aritméticos, lógicos y de comparación en Python
Operadores Aritméticos
GRÁFICOS CON TORTUGA Y SUBPROCESOS (def)
Introducción a las gráficas tortuga
En 1967 Wally Feurzeig y Seymour Papert crearon LOGO, un lenguaje de programación con fines
educativos. Ese lenguaje incluía las llamadas “gráficas tortuga”.
Las “gráficas tortuga” son construidas por un “robot” al cual se le pueden dar órdenes de movimiento
(avance, retroceso o giro) y que puede ir dejando un rastro sobre la pantalla. Moviendo adecuadamente
la tortuga se pueden conseguir dibujar todo tipo de figuras.
Dibujar “gráficas tortuga” es similar a dibujar con un lápiz sobre papel, salvo que existen ciertas
instrucciones definidas que se imparten al “robot tortuga” y permiten dibujar líneas, puntos, mover el
lápiz de un sitio a otro, cambiar el color y grosor del trazo, colorear el interior de las figuras, etc.
Situar el cursor en un lugar del área de dibujo es equivalente a colocar la punta del lápiz en un punto de
un papel y desplazar el cursor es equivalente a dibujar un segmento sobre el papel o desplazar el lápiz
a otro punto del papel.Las posiciones en el área de dibujo se localizan mediante coordenadas XY en el
que cada píxel es una unidad y el origen es la coordenada 0,0 en el centro de la ventana. Ver figura 1
[1].
Figura 1. Sistema de coordenadas imaginario para gráficos tortuga
Para iniciar el entorno es necesario importar la librería turtle, el siguiente código muestra la orientación
inicial de la tortuga, representada por un triángulo relleno de color negro, note su posición por defecto
es sobre el eje X con la cola en la coordenada 0,0 y la cabeza orientada hacia un número positivo en X.
El comando showturtle() muestra la tortuga en la pantalla y mainloop() permite que la ventana sea
cerrada.
Recuerde que puede utilizar una larga lista de órdenes para realizar dibujos sobre el lienzo imaginario,
el siguiente código dibuja un cuadrado en la pantalla y deja la tortuga en la posición inicial.
El comando forward(distancia) avanza la tortuga una distancia determinada mientras dibuja una línea
y el comando right(ángulo) gira a la derecha la tortuga un ángulo determinado, recuerde que
mainloop() permite cerrar la ventana.
A continuación se muestra una lista resumen de comandos con su explicación para el taller:
LISTA DE COMANDOS PARA GRÁFICOS TORTUGA
forward(distancia) mueve la tortuga hacia adelante una distancia determinada.
backward(distancia) mueve la tortuga hacia atrás una distancia determinada.
right(angulo) gira a la derecha la tortuga un número de ángulos dado.
left(angulo) gira a la izquierda la tortuga un número de ángulos dado.
up() para de dibujar hasta que se utilice el comando down(), la tortuga se moverá pero no dibujará
mientras lo hace. Es equivalente a levantar el lápiz del lienzo imagninario.
down() comienza a dibujar hasta que se utilice el comando up(), la tortuga se moverá y dibujará
mientras lo hace. Es equivalente a poner el lápiz sobre lienzo imagninario. El programa inicia siempre
con esta instrucción activada por defecto.
pencolor("nombre del color en inglés") cambia el color actual de dibujo de la tortuga, este color es
un nombre en inglés por ejemplo pencolor("red") iniciará a dibujar con color rojo.
bgcolor("nombre del color en ingles") cambia el color actual del lienzo, este color es un nombre en
inglés por ejemplo bgcolor("green") pondrá un lienzo de fondo de color verde.
pensize(ancho) determina el ancho de la línea de dibujo, ancho es un número entero.
clear() borra todo tipo de dibujos realizados por la tortuga, pero la deja en la misma posición y conserva
los colores de fondo y lápiz actuales.
reset() borra todo tipo de dibujos realizados por la tortuga, incluidos los colores de fondo y lápiz
actuales. Posteriormente deja la tortuga en la coordenada 0, 0.
home() mueve la tortuga hacia la coordenada 0, 0
showturtle() no muestra la tortuga en pantalla.
hideturtle() muestra la tortuga en pantalla.
speed(velocidad) cambia la velocidad de la animación de dibujo de la tortuga en la pantalla. speed(0)
hace los dibujos instantáneamente sin ninguna animación es la máxima velocidad, speed(1) es muy
lento, speed(3) es lento, speed(6) velocidad normal, speed(10) es rápido.
goto(x,y) mueve la tortuga a una coordenada x,y determinada
fillcolor("color") establece un color de relleno para una figura. Color es un color en ingles entre
comillas dobles.
begin_fill() comienza a rellenar una figura (polígono) con un color determinado en fillcolor("color") hasta
que se escriba end_fill()
end_fill() termina el rellenado de un polígono determinado, de ahí en adelante las figuras no tendrán un
relleno específico.
write("texto") escribe el texto entre comillas sobre el lienzo imaginario en la posición actual.
position() devuelve la coordenada actual de la tortuga.
dot(grosor, "color") dibuja un punto de grosor dado sobre la coordenada actual, grosor es un número
entero y color es un color en ingles escrito en comillas dobles.
Las siguientes instrucciones permiten controlar la ventana, solo funcionarán si el programa se
está ejecutando en windows, linux, mac etc. no funcionarán en los entornos web (en línea).
setup(ancho, alto) define el tamaño de la ventana en la cual se muestra el lienzo imaginario, ancho y
alto son números enteros que corresponden a píxeles.
title("titulo") establece el título de la ventana de dibujo, título es una cadena de caracteres cualquiera
entre comillas.
variable_python=textinput("título", "mensaje") muestra una ventana emergente en el área de dibujo
con título “título” y mensaje “mensaje” que guarda una cadena de caracteres en la variable python dada.
variable_python=numinput("título", "mensaje", valorinicial, minimovalor, maximovalor) muestra
una ventana emergente en el área de dibujo con título “título” y mensaje “mensaje” que guarda un
número de tipo float en la variable python dada. Valorinicial es el valor que se muestra por defecto en la
ventana, minimovalor es el valor mínimo permitido, y máximovalor el valor máximo permitido. Si se
desea utilizar un número entero es necesario convertirlo mediante la función int()
Subprocesos en python (def)
A veces, en un determinado programa es necesario efectuar una misma tarea en distintos puntos. Para
evitar tener que volver a escribir una y otra vez las mismas instrucciones.
En el primer ejemplo dibujamos un cuadrado mediante ciertas instrucciones de gráficas tortuga, pero
sería bastante tedioso escribir todas estas instrucciones cada vez que necesitemos dibujar uno, Python
permite que agrupemos estas instrucciones bajo un solo nombre y cada vez que lo escribamos se
ejecuten, la siguiente definición permite agrupar las instrucciones que permiten crear un cuadrado.
Y llamarlas cada vez que queramos mediante cuadrado()
Como se aprecia en la figura las instrucciones que están 4 espacios debajo de la definición
def cuadrado():
lista_de_instrucciones
se ejecutan en un solo grupo, cada vez que invocamos el nombre cuadrado().
Ahora bien, el código anterior dibuja un cuadrado de 50 pixeles, pero y ¿Que sucede si queremos crear
un cuadrado y definir el tamaño que nosotros queramos? Utilizamos los parámetros de la función para
enviar una variable que defina el tamaño en cada llamada de cuadrado así:
Como se aprecia en la figura lado es una variable que toma un valor determinado en cada llamada de
la subrutina cuadrado, en primer lugar toma el valor de 50 cuadrado(50) y luego el valor de 100 en
cuadrado(100)
El programa genera la siguiente figura:
Ya realizamos la primera subrutina python, pero y si queremos procesar un valor dentro de la subrutina
cuadrado y utilizarlo posteriormente ¿Cómo lo hacemos? Utilizamos la palabra reservada return.
Por ejemplo si queremos dibujar dos cuadrado de lado dado y luego escribir en la pantalla la suma de
las dos áreas en píxeles cuadrados hacemos lo siguiente:
La ejecución del programa será la siguiente:
En resumen, en python se pueden agrupar un conjunto de instrucciones mediante la palabra reservada
def con un nombre seguida de dos puntos, las instrucciones que se agrupan deben ir con 4 espacios y
puede tener la palabra return (si se desea procesar algún valor en la subrutina). Las funciones pueden
requerir ninguno, uno o muchos parámetros de entrada así como devolver ninguna, una o muchas
variables de salida.
Las funciones son llamadas por su nombre seguido de un paréntesis que contiene los parámetros que
recibe separados por coma si es que los tiene.
TALLER
Ejercicio 1. Convierta el siguiente algoritmo a python.
Importante:
• Recuerde que debe colocar mainloop() al finalizar las instrucciones de gráficos tortuga para
poder cerrar la ventana.
• No debe guardar los archivos con nombre turtle.py puesto que esto genera un error en la
ejecución.
2. Lea el contenido de la introducción y realice un programa Python con gráficos tortuga, que permita
crear una figura como la siguiente.
Los cuadrados deben ser realizados por medio de un subproceso Python (def).
3. Lea el contenido de la introducción y realice un programa Python con gráficos tortuga, que dibuje
tres triángulos equiláteros como los de la figura.
Nota: el dibujo del triángulo equilátero debe ser realizado en una función o subrutina.
4. Modifique el programa anterior Nro 3 para que al finalizar la ejecución imprima por pantalla
(utilizando print(" ")) o en el lienzo de dibujo la suma del área de los tres triángulos equiláteros.
El área de un triángulo equilátero es
√ 3 ∗lado2
4
Recuerde que el cálculo de exponentes en python se realiza mediante el operador ** por ejemplo:
3 elevado a la 2 es equivalente a 3**2
y raíz cuadrada de 4 es equivalente a 4**0.5
Tambien puede importar la función math mediante:
from math import *
y usar las funciones pow(x, y) que eleva x a la y o la función sqrt(x) que devuelve la raíz cuadrada de x
5. Realice un programa en Python con gráficos tortuga que dibuje un espiral similar al siguiente: