< Return to Video

Un Programa aactorial secillo(Python 2)

  • 0:00 - 0:04
    Lo que quiero hacer en este video es presentarte
  • 0:04 - 0:08
    un ciclo 'for'. Vamos a hacer esto escribiendo un pequeño
  • 0:08 - 0:11
    programa que calcula el factorial de un número,
  • 0:11 - 0:14
    y en caso que no recuerdes lo que hace el factorial
  • 0:14 - 0:16
    de un número, si te dijera 1 factorial
  • 0:16 - 0:21
    normalmente lo escribes como 1 seguido del
    signo de exclamación.
  • 0:21 - 0:25
    Básicamente quiere decir, bueno, eso evaluaría
    a 1.
  • 0:25 - 0:28
    Si dices 2 factorial eso va a ser igual a 2
  • 0:28 - 0:33
    multiplicado por 1. Si dices 3 factorial, eso va a ser
  • 0:33 - 0:40
    igual a 3 multiplicado por 2 multiplicado por 1,
  • 0:41 - 0:43
    lo que va a ser igual a 6. Y si tienes cualquier número
  • 0:43 - 0:45
    factorial, éste va a ser ese número multiplicado por
  • 0:45 - 0:47
    ése menos 1 multiplicado por ése menos uno
  • 0:47 - 0:50
    y así sucesivamente hasta 1. Entonces con esto
    a un lado
  • 0:50 - 0:53
    implementemos nuestro programa factorial y la forma
  • 0:53 - 0:56
    como lo voy a hacer es que voy a tomar un valor dado
  • 0:56 - 0:58
    por el usuario, va a preguntarle que entre un número
  • 0:58 - 1:01
    al que quiere sacarle el factorial y luego va
  • 1:01 - 1:03
    a calcular el factorial y así que lo que voy a hacer
  • 1:03 - 1:07
    es que voy a usar la función que Python provee
  • 1:07 - 1:11
    y voy a usar Python 2 en este video. Lo harás un poco
  • 1:11 - 1:14
    diferente, realmente hablaré de eso en un
    segundo si estás
  • 1:14 - 1:18
    usando Python 3. Python 2 es la implementación
    más estable
  • 1:18 - 1:21
    que está disponible al momento de este video
    pero hay
  • 1:21 - 1:24
    una Python 3 que es una nueva versión.
  • 1:24 - 1:29
    Aclararé sobre eso en un video futuro pero
  • 1:29 - 1:31
    de todas maneras vamos a tomar un valor que
    el usuario entrará y
  • 1:31 - 1:33
    vamos a pedirlo con un mensaje que va a decir
  • 1:33 - 1:42
    que entre un entero no negativo para sacar
    el factorial
  • 1:42 - 1:47
    de tal manera que nos familiaricemos con
  • 1:47 - 1:50
    las funciones y todo. Vamos a pasar un argumento
    a la función
  • 1:50 - 1:53
    y el argumento que pasamos a la función
  • 1:53 - 1:57
    aquí es una cadena y una cadena suena
  • 1:57 - 1:59
    como muy complicado pero en realidad
  • 1:59 - 2:02
    es sólo una cadena de caracteres que puedes ver
    como un montón de
  • 2:02 - 2:04
    texto y le presentará este texto al usuario y le mostrará
  • 2:04 - 2:06
    una pequeña caja de entrada y el usuario
    pondrá algo
  • 2:06 - 2:12
    en la caja, evaluará lo que está en la caja
  • 2:12 - 2:14
    y luego puedes verlo con la variable numérica
  • 2:14 - 2:17
    a la que se refiere o lo puedes poner en
    la variable númerica, dependiendo
  • 2:17 - 2:21
    de como quieras visualizar la variable, si estás
  • 2:21 - 2:29
    usando Python 3, querrás llamar 'eval' a lo
    que regresa
  • 2:29 - 2:31
    esta función. Esto es si estás usando Python 3.
  • 2:31 - 2:35
    Voy a ejecutar Python 2 ahora y si quieres
  • 2:35 - 2:39
    hacerlo exactamente en la forma como lo
    voy a hacer, estoy usando PyScripter IDE
  • 2:39 - 2:42
    -El Ambiente de Desarrollo Integrado es un proyecto
  • 2:42 - 2:45
    de código abierto para computador personal,
    pero hay muchas formas de
  • 2:45 - 2:48
    cómo puedes editar Python. Puedes realmente
    hacerlo en cualquier
  • 2:48 - 2:52
    editor de texto. De todas maneras, hasta ahora
    todo lo que hemos hecho es que hemos tomado
  • 2:52 - 2:56
    el valor entrado por el usuario y lo estamos
    poniendo en esta variable
  • 2:56 - 2:58
    numérica y lo que es genial en Python es que
  • 2:58 - 3:01
    podemos tan sólo correr el programa tal como
    está y ver lo que pasa.
  • 3:01 - 3:03
    Entonces hagamos eso. Voy a guardarlo y voy a
  • 3:03 - 3:08
    ejecutarlo. Este botón pequeño como un triángulo
    lo ejecuta en este IDE y
  • 3:08 - 3:10
    así como dije, le pide al usuario que entre un
  • 3:10 - 3:13
    entero no negativo, saca el factorial. Así que,
    yo no sé,
  • 3:13 - 3:17
    tecleemos 10 y presiono OK. Nada pasó. Por supuesto
  • 3:17 - 3:20
    nada pasó porque no le dije realmente esto,
  • 3:20 - 3:24
    a hacer algo. Pero si tecleamos un número veremos
  • 3:24 - 3:27
    que le asigna el 10. Ahora la variable se refiere
  • 3:27 - 3:31
    al número 10. Entonces ahora podemos usar
    este número
  • 3:31 - 3:33
    sacar el fatorial. Lo que voy a hacer y lo vamos
  • 3:34 - 3:36
    a hacer iterativamente y vamos a hablar
  • 3:36 - 3:40
    más de lo que eso significa en el futuro. Entonces
    voy a
  • 3:40 - 3:43
    definir otra variable llamada 'product' y voy
  • 3:43 - 3:46
    a empezar 'product' con 1 y lo que vamos a hacer
  • 3:46 - 3:50
    es que vamos a empezar con 1 hasta lo que este
    número sea
  • 3:50 - 3:53
    y seguimos multiplicando el producto por
    cada número
  • 3:53 - 3:57
    sucesivo más grande. Entonces vamos a empezar
    a establecer un
  • 3:57 - 3:59
    ciclo 'for' aquí y en el siguiente video voy a
  • 3:59 - 4:03
    realmente seguir paso a paso lo que un ciclo 'for' hace
  • 4:03 - 4:06
    pero vamos a, dentro del ciclo 'for' vamos a
  • 4:06 - 4:09
    definir la variable 'i'. Esta es la variable clásica
  • 4:09 - 4:12
    que se define en los ciclos 'for' y esa variable va
    seguir
  • 4:12 - 4:15
    incrementándose en un valor más y más grande
    en la medida que lo atravesamos
  • 4:15 - 4:21
    Entonces 'for i' en un intervalo y los ciclos 'for'
    en Python son un poco
  • 4:21 - 4:24
    diferentes que si lo estuvieramos haciendo en
    javascript o java
  • 4:24 - 4:26
    y haré un video en el futuro donde lo hacemos
    pero con un intervalo de número
  • 4:26 - 4:29
    y sólo para que entiendas lo que hace un intervalo
    de un número
  • 4:29 - 4:33
    Provee una lista de números comenzando con
  • 4:33 - 4:37
    0 y subiendo a 1 menos que ese número. Entonces
  • 4:37 - 4:40
    aquí ya definimos lo que 'number' es, 'number' es 10
  • 4:40 - 4:43
    entonces si tecleo 'in range(10)' o hagamos 'range(number)'
  • 4:43 - 4:46
    nos da una lista comenzando con 0 hasta
  • 4:46 - 4:48
    9, hasta uno menos que 10. Entonces lo mismo
  • 4:48 - 4:52
    que 'range(10)' y lo que este ciclo 'for' hace
  • 4:52 - 4:57
    es que asigna 'i' a cada término de la secuencia.
    Entonces comienza
  • 4:57 - 5:03
    con 1 y luego va a lo que le dijiste que hiciera
  • 5:03 - 5:06
    en el ciclo 'for' con 'i' es igual a 1 entonces asignará
    'i' a que
  • 5:06 - 5:11
    sea 1. Disculpa comenzará con 'i' igual a 0. Luego
  • 5:11 - 5:13
    irá a 'i' igual a 1, luego 'i' igual a 2, luego 'i' igual a 3, etc.
  • 5:13 - 5:16
    hasta que atraviesa toda la lista
  • 5:16 - 5:26
    y entonces lo que podemos hacer aquí
    es dentro del ciclo 'for'
  • 5:26 - 5:33
    podemos redefinir 'product' para que sea igual al
  • 5:33 - 5:37
    producto del producto anterior. Entonces nuestro
    nuevo producto va a ser nuestro
  • 5:37 - 5:39
    producto anterior multiplicado por, y voy a multiplicarlo
  • 5:39 - 5:45
    por 'i' + 1 multiplicado por i + 1. Vamos a recorrerlo
  • 5:45 - 5:48
    con cuidado en el siguiente video. Pero quiero
    que pienses en lo
  • 5:48 - 5:49
    que estoy haciendo ahora de manera que cuando
  • 5:49 - 5:55
    empiece, digamos que ese número termina
    siendo 3. Entonces 'product' se vuelve
  • 5:55 - 5:57
    1 y decimos 'for i' en el intervalo y luego si hacemos
  • 5:57 - 6:05
    range(3) entonces 'i' va a ser primero 0 y entonces
  • 6:05 - 6:10
    vamos a tomar nuestro producto anterior, entonces 1
    multiplicado por i + 1. Bueno 'i' va
  • 6:10 - 6:14
    a ser 0. Entonces 0 + 1 es 1. Entonces va a ser 1
  • 6:14 - 6:16
    multiplicado por 1 va a ser 1. Entonces vamos
    a asignar
  • 6:16 - 6:20
    i como 1. Eso es lo que el ciclo 'for' hace. Itera,
  • 6:20 - 6:23
    sigue incrementando. Bueno no siempre tiene que
  • 6:23 - 6:25
    incrementar. Y sigue cambiando el valor de i
  • 6:25 - 6:28
    en la medida que atraviesa la lista y entonces en la
    siguiente ronda
  • 6:28 - 6:32
    nuestro producto es 1 pero ahora i es 1. Entonces
    1 + 1 es 2
  • 6:32 - 6:36
    multiplicado por 1 va ahora a ser 2 y luego irá,
  • 6:36 - 6:40
    hará que i sea 2. Entonces va a ser 2+1 multiplicado
    por lo que 'product' era
  • 6:40 - 6:43
    de la última iteración, el cual es 2 y entonces
    va a
  • 6:43 - 6:48
    ser 2 veces 3, que es 6. Y entonces cuando
  • 6:48 - 6:52
    finalmente terminamos con este ciclo 'for'
    dentro de 'producto' o me imagino que podemos
  • 6:52 - 6:56
    decir 'product' se estará refiriendo a el factorial real
  • 6:56 - 7:01
    del número que se entró. Entonces podemos decir
    'print product'
  • 7:01 - 7:06
    y en Python en este caso aquí, el interpretador
  • 7:06 - 7:08
    sabe que debe salirse de este ciclo 'for' una
    vez que ha usado
  • 7:08 - 7:12
    todos los números para asignar a i. Por eso
    es que no ejecuta para siempre.
  • 7:12 - 7:18
    Veamos si lo que hicimos aquí realmente funciona.
  • 7:18 - 7:23
    Si realmente funciona. Escribamoslo así
  • 7:23 - 7:27
    Veamos si esta cosa realmente funciona. Entonces
    lo guardaré y luego
  • 7:27 - 7:32
    ejecutemoslo. Me está pidiendo Enter a non-negative
  • 7:32 - 7:36
    integer to take the factorial of'.
    Entonces ensayemos con el 3
  • 7:36 - 7:39
    Entrandolo me da la respuesta correcta.
    Ensayemos otra vez.
  • 7:39 - 7:44
    Entonces 'Enter a non-negative integer to take the factorial of:'
  • 7:44 - 7:48
    No sé. Ensayemos algo más grande, 10.
    Funcionó.
  • 7:48 - 7:51
    Asumiendo que puedes verificar esto por ti mismo
  • 7:51 - 7:53
    entonces lo que hemos hecho aquí es escribir
    un programa muy sencillo pero
  • 7:53 - 7:55
    hace algo genial. Saca el factorial
  • 7:55 - 7:57
    de un número arbitrario y entonces en el siguiente
    video vamos a
  • 7:57 - 8:00
    recorrer paso a paso con más cuidado, en caso
  • 8:00 - 8:03
    de que esto como que te confunda lo que hizo el ciclo 'for'.
  • 8:03 - 8:05
    Entonces aguántate hasta el siguiente video y mira ese
  • Not Synced
    y ese tendrá un poco de más explicación.
Title:
Un Programa aactorial secillo(Python 2)
Description:

Writing a simple factorial program with a "for" loop

more » « less
Video Language:
English
Duration:
08:09

Spanish subtitles

Revisions Compare revisions