Download Primeros Pasos en Python 3 Parte II - Instituto Tecnológico de Costa
Document related concepts
no text concepts found
Transcript
Primeros Pasos en Python 3 Parte II Introducción a la programación I semestre, 2016 1 Estructuras de Control ¿Cómo se hace cuando hay restricciones que validar? … ¿los flujos alternos? … ¿las acciones repetitivas? Estructuras de Control ● De decisión ● Repetitivas Jeff Schmidt Peralta Estructuras de Decisión Python provee la estructura if La decisión está dada por la evaluación de una condición, que tendrá dos posibles estados: Verdadero (True) o Falso (False) Estructuras de Decisión Estructura if: ● La lógica es que solo una de las condiciones sea verdadera. En otras palabras que solo un bloque de código sea ejecutado. #Restricciones: base y alturas mayores que cero def area_rectangulo(base,altura): if base > 0 and altura > 0: area = base * altura return area else: return "Error en las entradas" Estructuras de Decisión ( if ) ● Estructuras if dependientes / independientes ● Las dependientes a veces son llamadas anidadas. ● El punto: independientes deben ser mutuamente excluyentes. Dependiente Independiente if (condicion1): if (condicion1): cuerpo1 elif (condicion2): cuerpo2 else: cuerpo3 ¡Ei Ingeniero! ¿cual es más eficiente? cuerpo1 if (condicion2): cuerpo2 if (condicion3): cuerpo3 Bad Boss CC NC-SA ErickHerbert @ Flickr Ejercicio: Conversión de grados 1. Escriba dos funciones, bien documentas, para convertir grados centígrados a farenheit. 2. Haga un menú para seleccionar cual función desea utilizar el usuario (utilice if) ● Ingrese 1 para convertir centígrados a Farenheit ● Ingrese 2 para convertir Farenheit a Centígrados Formulas: ● Farenheit = 9 /5 * centígrados + 32 ● Centígrados: ( Farenheit – 32 ) / 1,8 Más práctica: ● Construya una función para cada una de las conversiones que aparecen en esta tabla y agréguelas al menú: http://es.wikipedia.org/wiki/Grado_Fahrenheit#Conversi.C3.B3n_a_otras_unidades Manejo de errores Formas de manejo de errores, programa → programa: ● ● Por códigos: al finalizar de ejecutar una función o método se retorna un “código de error” para que el programa que invocó pueda decidir cómo reaccionar. Ejemplos de código: -1, “Error01”, None. Excepciones: en tiempo de ejecución, son errores que se presentan pero pueden ser “capturados” para que el programa pueda continuar su funcionamiento. Son una técnica más avanzada de programación. Formas de manejo de errores, programa → usuario: ● Por mensaje: se presenta en pantalla un mensaje que describa la causa del error. Ejemplo: “El valor del radio es negativo”. * Ambas formas deben combinarse. Estructuras de Repetición Cuando los problemas son “pequeños” es posible escribir el código para evaluar cada parámetro. Sin embargo cuando la complejidad crece se hace necesario contar con elementos que permitan repetir procesos. La repetición en programación usualmente está asociada con la recursividad e iteración. En Python se dispone de dos estructuras para trabajar iteración: ● while ● For while expresion: bloque-1 [else: bloque] for iterador in iterable: bloque-1 [else: bloque] Estructuras de Repetición: While import time Mientras una condición se cumpla se llevará a cabo una acción. Estas instrucciones se podrían mapear de con las expresiones cotidianas en español de la forma: “mientras” Mamá: “mi hijito vaya a la pulpería y espere mientras llega el panadero con pan recién horneado” ¿Cuál es la repetición en este ejemplo de la vida cotidiana? import random def ir_por_pan(): print('voy a comprar pan fresco') while not panadero(): time.sleep(1) print('Estoy esperando...') print('Ya voy para la casa con pan fresco' ) def panadero(): Es responsabilidad del programador asegurarse que el programa “salga” del ciclo... (¿dónde sucede eso en el ejemplo?) num = random.randint(1, 5) print('\t\t numero:',num) if num == 3: return True else: return False Estructuras de Repetición: For import time Hasta que una condición se cumpla se llevará a cabo una acción. Estas instrucciones se podrían mapear de con las expresiones cotidianas en español de la forma: “hasta” Mamá: “mi hijito vaya a la pulpería y espere hasta 5 minutos a ver si llega el panadero con pan recién horneado, sino se viene” ¿Cuál es la repetición en este ejemplo de la vida cotidiana? import random def ir_por_pan_hasta(espera): print('voy a comprar pan fresco') compre_pan = False for espera in range(0,espera): if panadero(): compre_pan = True print('compré pan fresco :)' ) break else: print('No estaba el panadero') Note: tanto el while como el for (como la recursión) son equivalentes y prácticamente iguales. Los detalles que cambian son principalmente sintácticos. print('Estoy esperando...') time.sleep(1) if compre_pan == False: print('No pude comprar pan :(' ) Estilos de Codificación En Python existen los PEP (Python Enhancement Proposal). [PEP-8] ● Identación: usar 4 espacios en blanco, sin tabulación. ● Líneas de código menos con menos 79 caracteres ● Espacios en blanco (líneas): para separar funciones y para separar bloques grandes de código. ● Para funciones: nombre_de_la_funcion ● Para nombres de clase: NombreClase (OO) Recomendación: buscar el PEP-8 y darle un vistazo. (tareas programadas) http://www.python.org/dev/peps/pep-0008/ Más Información Estructuras de Control: ● IF: http://docs.python.org/release/3.1.3/tutorial/controlflow.html#if-statements ● FOR: http://docs.python.org/release/3.1.3/tutorial/controlflow.html#for PEP-8: http://www.python.org/dev/peps/pep-0008/ Ejercicios con Números (estructuras de decisión) Escriba una función que reciba un número y retorne el número de dígitos de éste. (utilice // y %). Restricción: el número (entrada) no puede tener más de 4 dígitos. ● num_digitos(entrada) ● num_digitos(1234) ● num_digitos(789) → salida → 4 → 3 Escriba un programa para 'componer' números a partir de sus entradas. Recibirá tres parámetros y devolverá la composición. (utilice * y +) ● forma_num(digito1,digito2,digito3) → salida ● forma_num(1,2,3) → 123 ● forma_num() Escriba una función que reciba un número de 3 dígitos y los retorne sumados. (puede utilizar la función num_digitos para validar) ● Suma_digitos(numero) → salida ● Suma_digitos(789) → 24 ● suma_digitos(70) → “Error” Referencias y Lecturas Complementarias ● Material suministrado por el profesor Jeff Schmidt, Instituto Tecnológico de Costa Rica. I semestre 2011. http://creativecommons.org/licenses/by-sa/3.0/cr/ *La licencia de la presentación no cubre las imágenes utilizadas*