Python: Aprendiendo desde cero III: Controles de flujo
Seguimos otro día más con el curso de Python aprendiendo desde cero.
Hoy hablaremos de los controles de flujo. Que es otro de los puntos que son muy parecidos al scripting de Powershell.
Condicionales en Python
Un condicional, es un bloque de código que se va a ejecutar sólo si la instrucción de control que lo contiene ve cumplida la condición. Una vez el bucle es ejecutado se termina.
Este tipo de bloque de código se puede encontrar en funciones (de las que hablaremos en la siguiente entrada), módulos, en otro bloque condicional…
¿Pero qué es una condición? Es tan sencillo, como que algo o es verdadero o es falso. O se cumple o no se cumple, y según esa condición se ejecutará un bloque u otro.
Todos los condicionales acaban su línea con “:” como veremos ahora:
if en Python
La forma más sencilla de condicional es “if” (SI en castellano). Os pongo un ejemplo:
1 2 3 4 |
#Introducimos un número y nos dice si es par num = int(input('Introduzca un numero: ')) if num % 2 == 0: print("Par") |
Como ya os comenté, los programas en Python no se cuelgan sino que nos dan excepciones, así que si introducimos un número impar nos devuelve una excepción, pero el programa sigue su curso. Para terminar el programa, podemos usar el siguiente condicional “else”.
else en Python
Aunque para comparar dos bloques puedes usar dos veces “if”, no es la mejor práctica del mundo porque os puede generar errores y para eso existe “else”, que permite que si la primera instrucción no es verdadera se ejecute el siguiente bloque de código. Mejoro el ejemplo anterior:
1 2 3 4 5 |
num = int(input('Introduzca un numero: ')) if num % 2 == 0: print("Par") else: print("Impar") |
elif en Python
Imaginaros que no queréis comprobar mas que la primera condición es falsa o verdadera, y si pasa una de estas dos cosas, queréis que el programa siga. Para eso podemos usar “elif”. Como es más fácil con un ejemplo, volvemos a enlazar el anterior ejemplo, pero en este caso vamos a evaluar notas académicas:
1 2 3 4 5 6 7 |
num = int(input('Introduzca un numero: ')) if num < 5: print("Insuficiente") elif num > 8: print("Sobresaliente") else: print ("Suficiente") |
Optimización condicionales en Python
Como en otros lenguajes y programaciones, quiero hacer un pequeño apunte sobre enlazar muchos condicionales. Como parece lógico, cuantos más enlacéis, más tardará en resolverse. En estos ejemplos, no se nota el tiempo, pero en un programa más complejo, como es nuestro objetivo del curso, puede suponer la diferencia entre un gran programa y un problema mayúsculo de rendimiento. Tenerlo en cuenta.
La buena práctica es la de poner en los primeros bucles, las condiciones menos complejas, y dejar para el final las que creéis que van a tomar más tiempo.
Bucles en Python
Como hemos visto, los condicionales permiten ejecutar una sola vez un código. Esto puede ser útil en programas sencillos, pero cuando quieres evaluar un código varias veces, como una lista de nombres, necesitamos utilizar un bucle. A continuación, detallo los dos tipos de bucles que habría que manejar. Como veréis también se usan los “:” para trabajar con la sección:
For..in en Python
Por una parte está el bucle “For”, que se combina con la palabra “in” y permite evaluar un conjunto de valores o lista.
1 2 3 |
lista = ["ElBlogDeNegu", "RaulUnzue", "MaquinasVirtuales"] for elemento in lista: print (elemento) |
Y lo podéis combinar con condicionales:
1 2 3 4 5 6 7 8 |
lista = ["ElBlogDeNegu", "RaulUnzue", "MaquinasVirtuales", "Otra cosa..."] for elemento in lista: if elemento == "ElBlogDeNegu": print ("Nombre del Blog: ElBlogDeNegu") elif elemento == "RaulUnzue": print ("El autor es: Raul Unzue") else: print ("Otra cosa...") |
Claro, esto con 4 valores es comprensible…¿y si quiero cientos de valores cómo lo hago? Lo explicaremos con las funciones, ya que es una de ellas, llamada “range” la que nos lo va a permitir…
While en Python
Para terminar vamos a “While” (mientras en castellano), que como podéis entender, ejecutará código mientras se cumpla la condición.
Pero vamos un poco más allá, qué diferencia hay entre For y While. Con For sabemos más o menos cuando el bucle va a terminar, con While depende de que la condición sea Falsa, y eso no lo podemos controlar de antemano. Lo que permite que con For trabajemos con valores definidos y que con While trabajemos con condiciones verdaderas hasta que dejen de serlo.
Vamos con los ejemplos prácticos:
1 2 3 4 |
contamos = 0 while contamos < 18: contamos = contamos + 1 print ("Contamos de uno en uno, vamos por el número " + str(contamos)) |
También podemos trabajar conjuntamente con condicionales. Hacemos que termine cuando llegue a 12:
1 2 3 4 5 |
contamos = 0 while contamos < 18: contamos = contamos + 1 if contamos <= 12: print ("Contamos de uno en uno, vamos por el número " + str(contamos)) |
Seguiremos completando con el resto de entradas nuestro conocimiento en Python. Os dejo el temario ya generado:
TEMARIO APRENDE PYTHON DESDE CERO
Python: Aprendiendo desde cero I: Introducción
Python: Aprendiendo desde cero II: Comentarios, Variables y Datos
Python: Aprendiendo desde cero III: Controles de flujo
Python: Aprendiendo desde cero IV: Funciones
Python: Aprendiendo desde cero V – Módulos
Python: Aprendiendo desde cero VI – Operadores
Python: Aprendiendo desde cero VII – Estructura proyecto
Python: Aprendiendo desde cero VIII – Scripting
Python: Aprendiendo desde cero IX – Fechas
¿Te ha gustado la entrada SÍGUENOS EN TWITTER?
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?