1 Python Control Bucles Funciones
1 Python Control Bucles Funciones
Sentencias condicionales
Si un programa no fuera más que una lista de órdenes a ejecutar de
forma secuencial, una por una, no tendría mucha utilidad. Los con-
dicionales nos permiten comprobar condiciones y hacer que nuestro
programa se comporte de una forma u otra, que ejecute un fragmento
de código u otro, dependiendo de esta condición.
if
La forma más simple de un estamento condicional es un if (del inglés
si) seguido de la condición a evaluar, dos puntos (:) y en la siguiente
línea e indentado, el código a ejecutar en caso de que se cumpla dicha
condición.
fav = “mundogeek.net”
# si (if) fav es igual a “mundogeek.net”
if fav == “mundogeek.net”:
print “Tienes buen gusto!”
print “Gracias”
if fav == “mundogeek.net”:
print “Tienes buen gusto!”
print “Gracias”
if … else
Vamos a ver ahora un condicional algo más complicado. ¿Qué haría-
mos si quisiéramos que se ejecutaran unas ciertas órdenes en el caso de
que la condición no se cumpliera? Sin duda podríamos añadir otro if
que tuviera como condición la negación del primero:
if fav == “mundogeek.net”:
print “Tienes buen gusto!”
print “Gracias”
if fav != “mundogeek.net”:
print “Vaya, que lástima”
if fav == “mundogeek.net”:
print “Tienes buen gusto!”
print “Gracias”
else:
print “Vaya, que lástima”
30
Control de flujo
if numero < 0:
print “Negativo”
elif numero > 0:
print “Positivo”
else:
print “Cero”
elif es una contracción de else if, por lo tanto elif numero > 0 puede
leerse como “si no, si numero es mayor que 0”. Es decir, primero se
evalúa la condición del if. Si es cierta, se ejecuta su código y se con-
tinúa ejecutando el código posterior al condicional; si no se cumple,
se evalúa la condición del elif. Si se cumple la condición del elif
se ejecuta su código y se continua ejecutando el código posterior al
condicional; si no se cumple y hay más de un elif se continúa con el
siguiente en orden de aparición. Si no se cumple la condición del if ni
de ninguno de los elif, se ejecuta el código del else.
A if C else B
Bucles
Mientras que los condicionales nos permiten ejecutar distintos frag-
mentos de código dependiendo de ciertas condiciones, los bucles nos
permiten ejecutar un mismo fragmento de código un cierto número de
veces, mientras se cumpla una determinada condición.
while
El bucle while (mientras) ejecuta un fragmento de código mientras se
cumpla una condición.
edad = 0
while edad < 18:
edad = edad + 1
print “Felicidades, tienes “ + str(edad)
32
Control de flujo
Sin embargo hay situaciones en las que un bucle infinito es útil. Por
ejemplo, veamos un pequeño programa que repite todo lo que el usua-
rio diga hasta que escriba adios.
while True:
entrada = raw_input(“> “)
if entrada == “adios”:
break
else:
print entrada
salir = False
while not salir:
entrada = raw_input()
if entrada == “adios”:
salir = True
else:
print entrada
Otra palabra clave que nos podemos encontrar dentro de los bucles es
continue (continuar). Como habréis adivinado no hace otra cosa que
pasar directamente a la siguiente iteración del bucle.
edad = 0
while edad < 18:
33
Python para todos
edad = edad + 1
if edad % 2 == 0:
continue
print “Felicidades, tienes “ + str(edad)
for … in
A los que hayáis tenido experiencia previa con según que lenguajes este
bucle os va a sorprender gratamente. En Python for se utiliza como
una forma genérica de iterar sobre una secuencia. Y como tal intenta
facilitar su uso para este fin.
Como hemos dicho los for se utilizan en Python para recorrer secuen-
cias, por lo que vamos a utilizar un tipo secuencia, como es la lista, para
nuestro ejemplo.
Fácil y sencillo.
En C o C++, por ejemplo, lo que habríamos hecho sería iterar sobre las
34
Control de flujo
35
Funciones
mi_funcion(“hola”, 2)
>>> mi_funcion(“hola”)
Traceback (most recent call last):
File “<stdin>”, line 1, in <module>
TypeError: mi_funcion() takes exactly 2 arguments (1 given)
37
Python para todos
>>> imprimir(“hola”)
hola
>>> imprimir(“hola”, 2)
holahola
varios(1, 2)
varios(1, 2, 3)
varios(1, 2, 3, 4)
38
Funciones
varios(1, 2, tercero = 3)
x = 22
y = [22]
f(x, y)
print x, y
25 [22, 23]
22 [22, 23]
print sumar(3, 2)
Como vemos esta función tan sencilla no hace otra cosa que sumar los
valores pasados como parámetro y devolver el resultado como valor de
retorno.
a, b = f(1, 2)
Sin embargo esto no quiere decir que las funciones Python puedan de-
volver varios valores, lo que ocurre en realidad es que Python crea una
tupla al vuelo cuyos elementos son los valores a retornar, y esta única
variable es la que se devuelve.
41