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*