Agitame :x

martes, 20 de enero de 2015

Python II: Repetición y Recursión

Siguiendo con Python, hoy comenzamos a ver nuevo contenido, esta vez no tan pesado como la introducción. Les contaré lo que vimos hoy.

Repetición y Recursión

Comando while: puedes repetir eso por favor?.


Comenzando con el contenido de hoy, hablamos del comando while, que en español vendria siento la palabra "mientras".

Este comando es bastante util, ya que lo que hace es repetir una instrucción ante una determinada condición.

tomemos por ejemplo el siguiente codigo:

>>cuentaregresiva = 10
>>while cuentaregresiva > 0:
        >>print (cuentaregresiva),
        >>cuentaregresiva = cuentaregresiva - 1
>>print ("Feliz Año Nuevo!!!")

tenemos una variable que es igual a 10, luego, con el comando while, le indicamos que mientras que esta variable sea mayor que cero, enplee un print de la variable, y que le reste a esta variable una unidad. como nuestra variable es ahora 9, es decir, sigue siendo mayor a 0, el comando while volvera a repetir los comandos indentados debajo de esta, y cuando llege el momento de que nuestra variable sea 0, es decir, que no cumple el requisito del while, el comando dejara de accionarse, lo que dara paso a el print advirtiendo que terminó la cuenta.

nota: Tanto el comando if como el comando while, pertenece a la familia de los comandos pronombre. estos comandos contienen una instrucción seguida de dos puntos (:) que de ser verdadera (true), ejecutan lineas de comandos posteriores. Estas lineas de comandos deben estar indentadas para ser tomadas en cuenta como instruccion de estos comandos (para indentar una linea, simplemente debes presionar TAB (↹) al principio de una linea de codigo.)

Una vez que ya conocemos los comandos pronombres como if y  while, podemos hacer el siguiente ejercicio:

crear un juego de adivinanzas, donde el jugador tiene un máximo de 6 jugadas para adivinar un numero al azar del 1 al 20, y que en cada intento fallido, mencione si el numero es muy alto o muy bajo.



Primero nesecitamos un numero al azar, por ello, importamos la libreria random. (ignoren las siguientes 4 lineas de codigo que vimos en la entrada anterior.)

le mostramos las instrucciones a nuestro usuario, luego tomamos un numero aleatorio del 1 al 20 con random.randint(). Lo guardamos en una variable.

le pedimos al jugador que introduzca un numero con un imput(). Lo guardamos en otra variable.

introducimos en otra variable el numero de oportunidades (del 0 al 5 hay 6 pasos de diferencia.)

en un comando while, ponemos la condicion de que si la jugada no es igual al numero elegido por la cpu, y que las oportunidades son mayores a cero:

si el numero es mas bajo que el elegido por la cpu, se te informa, se te resta una oportunidad, y se repite el comando imput() para volverlo a intentarlo, y si el numero es mas alto, se te informa, se te resta una oportunidad, y se repite el comando imput() para volverlo a intentarlo.

El comando while terminará una vez que una de sus condiciones sea falsa. Si el numero es igual a la jugada, o si el numero no es igual a la jugada, se imprimira su respectivo mensaje.

Comando def: Estoy pensando en pensar sobre el pensamiento.


Ahora que ya sebemos repetir comandos, comenzaremos a hacer nuestras propias recursiones.

La recursión es definir algo en terminos de sí mismo.

un ejemplo de esto puede ser la palabra "Directorio" o "Árbol genealogico".
  • un directorio es una estructura que contiene los archivos y directorios (más pequeños).
  • un árbol genealógico comienza con una pareja que tiene hijos, cada uno con su propio sub-árbol genealogio.
Los lenguajes de programación (incluyendo Python) usan la recursividad muy a menudo, lo que significa que, con el fin de resolver un problema, las funciones pueden llamarse a sí mismas para resolver sub-problemas más pequeños.

Una vez que ya entendemos la recursión, podemos empezar a ver el comando def.

El comando def se utiliza para definir una función creada por nosotros.

Para ver como funciona la recursión, definiremos la función factorial en Python.

Sabemos que la regla de la función factorial es n! = n * (n-1)!, por lo tanto definiremos la siguiente función:

>>def factorial(n):
        >>if n == 0 or n ==1:
                >>resultado = 1
        >>if n>1:
                >>resultado = n * factorial(n - 1)
        >>return resultado


Empezamos a definir la función factorial(n), en la que si n es 0 o 1, la variable resultado será 1. Pero en el caso de que sea mayor que 1, el resultado sera n * la funcion factorial de n-1. Es entonces que la función internamente actua dentro de si misma,  tantas veces como sea nesesario.

Finalmente se ocupa el comando return que te devuelve el resultado ya calculado en ventana.

Tarea y Desafio.

Ahora les mostraré una pequeña tarea que tuve que hacer para hoy: Tuve que crear un juego de Cachipún en el que el usuario compite con mi codigo, usando comando if y while.

Pueden probar mi codigo online haciendo click aquí.
Y para que puedan saber si de verdad estan aprendiendo algo, les daré un pequeño desafio: Desde la segunda, hasta la siguiente ronda, hay 100% de probabilidad de ganar en la siguiente, solo si sabes como funciona el codigo. Porque?

Dejen su respuesta en los comentarios :3

Aqui me despido, cualquier duda consulten, y ojala que mañana pueda explicarles mucho mas.

C'YA~

No hay comentarios:

Publicar un comentario