Mostrando entradas con la etiqueta estructuras. Mostrar todas las entradas
Mostrando entradas con la etiqueta estructuras. Mostrar todas las entradas

martes, 20 de julio de 2010

Estructuras de control II

Bien, seguimos con algunas cosillas más, seguimos con estructuras de control.
En el post anterior vimos el uso del "if" y "else", consecuentemente estas palabras definen un "si"(if) tal cosa entonces esto, "sino"(else) esto otro.
Hasta aquí todo bien, pero que sucede si la condición debe evaluarse doblemente? Que sucede si tenemos tres opciones diferentes a evaluar?
Por ejemplo, consideremos esta situación: queremos hacer un script que si recibe un nombre nos diga una cosa y si recibe otro diga otra cosa y si recibe cualquier otro nombre diga algo diferente.
Veamos esto con seudocodigo...

Leer nombre
Si nombre = Gabriel entonces
Mostrar "Anda a trabajar"
Sino si nombre = Maria entonces
Mostrar "Te felicito"
Sino
Mostrar "No se quien sos"

Has notado la diferencia? Si es así bravo por vos, sino fijate bien. Te diste cuenta? Pues sí. La diferencia con la manera anterior de encarar el asunto es que tenemos el "sino si". Hasta ahora conciamos el "si"(if) y el "sino"(else). Como escribimos el "sino si" con Python? Vean el siguiente ejemplo:

>>>nombre = raw_input()
>>>if nombre == "Gabriel":
... print "Anda a trabajar"
... elif nombre == "Maria":
... print "Te felicito"
... else
... print "No se quien sos"
...

La linea "elif nombre == "Maria":" muestra el equivalente en Python.
Espero que quede claro, sino comenten

viernes, 25 de junio de 2010

Estructuras de control

Que son las estructuras de control? Son la forma que tenemos en programación de tomar decisiones y de alterar el flujo normal en un secuencia de instrucciones.
Hasta ahora no hemos realizado ningún código de tres o más lineas, pero para ir despejando la cabeza veamos el siguiente ejemplo:

>>>nombre = raw_input("Cual es tu nombre: - ")
Cual es tu nombre: - Gabriel
>>>#Primero nos pregunta el nombre luego hacemos print
>>>print "Tu nombre es: " + nombre
Tu nombre es Gabriel

Bien, aquí tenemos varias cositas. En primer lugar tenemos la instrucción raw_input() que lo que hace es ingresar en una variable (nombre) lo que ingresemos en el teclado, que se le llama "entrada estándar" (recordemos que otra entrada en el pc es el ratón, siempre refiriéndonos a la entrada de información). Entre los paréntesis ingresamos un string que será el texto que se mostrará al usuario.
Luego de ingresar esta linea damos enter y se ejecuta, se muestra el string que pusimos en los paréntesis y queda esperando a que ingresemos el dato pedido, una vez ingresado damos enter y el dato ingresado es guardado en la variable "nombre".
Que significa la linea con "#"? El numeral en python nos permite ingresar textos que el intérprete ignora, de tal manera que la linea ">>>#Primero nos pregunta el nombre luego hacemos print" es ignorada por python.
¿Entonces que sentido tiene colocarla? Tiene el sentido de agregar texto que ayuda a entender que cosa hace el código escrito. Es una aclaración para quién lee el código, inclusive si es el mismísimo autor del código en cuestión, no nos olvidemos que muchos programas llegan a tener cientos de lineas de código y quién escribe un programa necesita explicar su propio código por si olvida para que, o que hace cierta porción del código. Todo esto se llama "comentar", o sea que la linea con el numeral es un comentario, un comentario para aclarar alguna cosa.
Muchos a esta altura se estará preguntando: ¿Y no se iba a hablar de estructuras de control? Si, .... no desesperen :-P
Las estructuras de control son estructuras condicionales, que toman decisiones dependiendo de las condiciones que impongamos según nuestras necesidades.
En cuanto a la sintaxis de una estructura de control les puedo decir que es muy sencilla, como siempre lo veremos a partir de un ejemplo:

>>>i = 10
>>>if (i < 10):
...    print "Es menor a 10"
... else
...    print "Es mayor a 10"
...
Es menor a 10

Pienso que fácilmente se entiende, en seudocodigo sería algo así:

Si i es menor a 10 entoces
imprime "Es menor a 10"
sino
imprime "Es mayor a 10"

Empezamos la estructura con la palabra clave "if", luego entre parentesis colocamos la condición (i < 10), si la condición es evaluada como verdadera (el valor de i es menor que 10) entonces se ejecuta la instrucción anidada que le sigue inmediatamente. Ahora, si la condición es evaluada falsa, no se ejecuta la instrucción anidada siguiente (print "Es menor a 10"), sino que se ejecuta la instrucción alternativa "else" (sino) y su codigo anidado (print "Es mayor a 10").
Algo que tenemos que tener siempre en cuenta es que las estructuras de control (y otras que veremos mas adelante) llevan dos puntos (:) al final de la declaración inicial como vimos en el ejemplo:

>>>if (i < 10):

Como pueden ver es muy sencillo.
En el próximo post veremos unos ejemplos algo más complejos.

Nos vemos.