martes, 24 de marzo de 2015

Tutorial de Python - Tema 5 - Sentencias condicionales

Si elijo A entonces iré a B, pero si elijo C iré a D ... si los programas se ejecutaran de forma lineal, una línea detrás de otra, no sería de gran utilidad, en ocasiones debemos tomar decisiones y a raiz de estas, los programas deben ejecutar un fragmento de código u otro. En este entrega del tutorial de Python, aprenderemos las sentencias condicionales. Si decides seguir clica en el post, sino lo haces ... clica donde te plazca y sigue desfrutando de internet o de mi blog.




Vamos a empezar con algo muy simple, la palabra IF (del inglés si ...). Con if indicamos que si algo es igual o diferente a otra cosa ... ejecuta esto o lo otro.

registro = "hola"
if registro == "hola":
    print "correcto"
    

En el ejemplo indicamos que registro es la palabra "hola". En la segunda línea decimos que si (if...) registro es igual a "hola" entonces escribe "correcto". Por supuesto este programa no tiene ningún sentido, pero es solo un ejemplo.
Otra de las palabras más conocidas aparte del  IF es el ELSE. Si habéis estudiado o visto otros lenguajes, veréis que las dos son palabras muy usadas IF ...ELSE. ELSE, quiere decir que si algo es igual o no a otra cosa, ejecuta esto, pero sino ejecuta esta otra. Otro ejemplo para que lo entendáis mejor.

registro = "hola"
if registro != "hola":
    print "correcto"

else:
    print "incorrecto"
    

En este ejemplo, le decimos que si registro no es igual a "hola" escribe correcto y si lo es escribe incorrecto. Que resultado dará el programa? Pues incorrecto. Como es igual se va a la sentencia else.

Antes de continuar con más ejemplos mirad la importancia de la tabulación. cuando formulamos una sentencia IF o ELSE, la siguiente línea está tabulada. Esto quiere decir que ejecutará todo lo que esté tabulado. Por lo tanto si queremos que ejecute varias líneas después del  IF o el ELSE, todas ellas deberán estar tabuladas. En otros lenguajes como el C y sus variantes, se usan las { } (comillas). En python simplemente se tabula.

registro = "hola"
if registro != "hola":
    print "correcto"

else:
    print "incorrecto"
    print "Esto tambien se ejecuta con el else"
    

En este caso el resultado del programa es ...

incorrecto
Esto también se ejecuta con el else

Todo lo que esté por debajo del else tabulado se ejecutará.

Bien, ahora ya sabemos ejecutar dos acciones según el resultado que queramos, pero, y si tenemos más variables? Todo no es si o no, blanco o negro. Para ello usaremos la palabra ELIF. Elif es una contractura de else if, e podemos poner tantos como variables necesitemos. Veamos un ejemplo.

numero = int(input("Escriba un n�mero mayor de 5: "))
while numero !="":
    if numero == 5:
        print("Mayor, no igual, prueba otra vez")
        numero = int(input("Escriba un n�mero mayor de 5: "))
    elif numero < 5:
        print("Muy mal, prueba otra vez")
        numero = int(input("Escriba un n�mero mayor de 5: "))
    elif numero > 5:
        print("Muy bien")
        break                            # Este comando se usa para romper el bucle while(1)
print("Fin del juego")

Bien, este programa te pide que elijas un número mayor que 5 y depende del valor que pongas te dirá si lo has hecho bien o no, si lo haces mal, te dará una nueva oportunidad. Si aciertas, fin del juego. Pero vayamos por partes:

numero = int(input("Escriba un n�mero mayor de 5: "))

definimos numero como el input que vamos a usar para el juego, en este caso es un número.

while numero !="":

Con while estamos diciendo que mientras numero sea diferente a "" o sea, un espacio en blanco, ejecuta todo lo de abajo. Si os fijáis, while ejecutará todo lo que esté tabulado. En este caso todo excepto print("Fin del juego"). While entiende que eso no es parte de su función y no lo ejecuta. Acordémonos que en Python es muy importante el uso de las tabulaciones.

    if numero == 5:
        print("Mayor, no igual, prueba otra vez")
        numero = int(input("Escriba un n�mero mayor de 5: "))
  

Aquí le indicamos que si numero es igual que 5 haz todo lo que esté tabulado. En este caso, te imprime un mensaje y vuelve a pedirte que escribas otro número. Si no fuera así (que no te volviera a pedir otro número) while veria siempre el primer número y te daría el mismo resultado hasta el infinito. Prueba de quitar la sentencia numero = int(input("Escriba un número mayor de 5: ")). Como numero no se actualiza saldrá el mismo mensaje todo el rato.

Por último la sentencia break. Esta sentencia obliga a while a salir del bucle. Nosotros lo hemos puesto en el caso que el resultado sea el correcto. Si lo ponéis en todos los casos, el programa te preguntará una vez que elijas un número y luego saldrá del bucle.


Tema anterior                                                             Tema siguiente




No hay comentarios:

Publicar un comentario