Tutorial 4, Sentencias condicionales y bucles.

Hola a tod@s de nuevo, siento que estos últimos días no haya escrito ninguna entrada, pero a sido por motivos personales que me han impedido hacerlo, a partir de hoy si que publicare de forma diaria un tutorial.

Hoy os voy a hablar sobre un tema tan interesante como fundamental en cualquier lenguaje de programación, hasta ahora, lo que hemos hecho simplemente es crear variables o colecciones e imprimirlas por pantalla, eso esta muy bien para empezar, pero hay que seguir avanzando, con lo que os voy a explicar ahora vamos a conseguir que nuestro programa tenga un poco de "inteligencia", es decir, que responda de forma diferente ante situaciones que se le puedan surgir.



Sentencias condicionales.

Se usan para comparar una condición.

IF

Es la estructura condicional mas sencilla en python y en cualquier lenguaje de programación, simplemente se escribe "if" seguido de la expresión y terminado en dos puntos, en lineas siguientes se tabula el código que se desee ejecutar en caso de la condición se cumpla, lo mejor es ver un ejemplo:

a="hola"
#creamos una variable de tipo String que contiene hola y después se comprueba #con un if
if a=="hola":
        print "la variable a contiene hola"

Como podéis observar es muy sencillo este contructor, pero.... ¿Y si queremos que cuando no coincida imprima "la variable a no contiene hola"?, para esto tenemos en contructor if....else.

IF.....ELSE

Gracias a esta sentencia condicional conseguimos que si una condición se cumple, ejecute un código, pero, si no se cumple, ejecute otro:

#leemos una entrada de texto a través del teclado y la guardamos en "mi_pass"
mi_pass=raw_input("introduce la contraseña...")

if mi_pass=="pass":
       print "la contraseña es correcta"
       
else:
       print "la contraseña es correcta"

Ya por último, tenemos otro constructor condicional que evalúa otra condición, si la primera a sido falsa, sería el equivalente a encadenar "if" consecutivos.

IF......ELIF......ELIF.....ELIF......ELSE

 a=0

if a>0:

         print "a es mayor que cero"

elif a<0:

         print "a es menor que cero"

else:

         print "a es igual a cero"

Es decir, primero se compara con un "if" si a es mayor que cero, si no lo es, se comprueba si a es menor que cero, y si no se cumple ninguna de esas dos condiciones, se ejecuta el código tabulado dentro de else, en caso de que se hubiera cumplido la primera condición, no se abría ejecutado el "elif", se pueden concatenar tantos "elif" como se deseen.

También existe un último constructor menos utilizado que se usa para emular al constructor ? de otros lenguajes, tan solo es una forma simplificada de hacer un if....else.

num=5
var="par" if ( num % 2 == 0) else "impar"

Primero se escribe el valor de "var" en caso de que la condición sea cierta, después se escribe la expresión seguido de un "else" y el valor que va a tener la variable "var" en caso negativo.

Anotación: El operador "%" significa módulo, es decir, el resto que genere una división, el módulo de 4 % 2 seria 0, y el módulo de 7%2 seria 1.

Con esto damos por acabado el tema de las sentencias condicionales y pasamos a los bucles de control.

Bucles

Los bucles o estructuras de control se usan para ejecutar cierto fragmento de código durante un número de veces, dependiendo de una determinada condición, en python tenemos dos, WHILE y FOR.....IN.

WHILE

Este bucle permite ejecutar un trozo de código siempre  que se cumpla una condición, cuando esta condición ya no se cumple, sale de forma automática del bucle, evidentemente, en los bucles al igual que en los condicionales, los fragmentos de código van tabulados, la sintaxis de un while es muy sencilla:

a=10
while (a>0):
         print "el bucle se esta ejecutando y la variable a vale ", a
         a=a-1

print "ya a salido del bucle por que la variable a vale ", a

Tan solo se escribe while, la expresión entre comillas, los dos puntos y el código tabulado, la ultima linea del while sirve para que cada vez que se ejecute el código "a" decremente uno (se puede simplificar con "a-=1"), de esa forma, cuando se ejecute 10 veces, "a" va a ser igual a cero y va a salir del bucle, si no, estaría enternamente ejecutándose,.

FOR.....IN

Este bucle que se encuentra en la mayoría de los lenguajes de programación, en python tiene un tratamiento muy peculiar frente al resto, en python, un for se usa para iterar con los elementos de un objeto iterable, ¿y que son los elementos iterables? son esas listas, tuplas y diccionarios que explique en el anterior tutorial, lo mejor es ver un ejemplo:

tupla=(1, 2, 3, 4, 5)

for var in tupla:

          print var

Imprimiría en pantalla:

1
2
3
4
5

Var es una variable local de for donde se guarda el valor que tiene en cada ejecución, la primera vez vale 1, la segunda vez vale 2 y así...., he usado una tupla pero podría haber usado una lista o un diccionario, con un diccionario iría iterando con las claves de este, otro objeto iterable sería un generador, pero eso ya lo veremos mas adelante después de ver las funciones.


Bueno chico@s, después de esta pequeña clase sobre estructuras en python, me despido de todos vosotr@s, ya sabéis que me podéis preguntar todas las dudas que tengáis en los comentarios, hasta mañana y espero que os haya gustado, un abrazo a tod@s.

4 comentarios:

Dr Coloso dijo...
Este comentario ha sido eliminado por el autor.
Dr Coloso dijo...

Hola una consulta puede ser que estas lineas

if mi_pass==pass:
... print "la contraseña es correcta"

else:
... print "la contraseña es correcta"

Sea en realidad asi.

if mi_pass == "pass":
... print "Correcto"
else:
... print "Incorrecto"

Porque me parece que pass es una palabra reservada por python.

Saludos.

PD: Blogger no me toma los tab ni los espacios al comienzo de cada linea alguna solucion a esto.

Francisco Dominguez Lerma dijo...

si, tienes razón con el código, lo siento, ultimamente escribo rápido por el poco tiempo del que poseo, y lo de los espacios... pues no se, la verdad, yo en los post escribo espacios.

Dr Coloso dijo...

Creo q al responder no sirven.
Saludos.