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: