Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[DUDA] Aprendo Python y tengo una duda

  • 2 Respuestas
  • 1175 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado EXUMER

  • *
  • Underc0der
  • Mensajes: 14
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« en: Noviembre 26, 2018, 11:31:32 am »
En el programa que aparece en la web sobre resolver este problema sobre Fibonacci, tengo un par de dudas

Luego de definir la variable "fib", declada 2; a y b donde a = 0 y b = 1
Código: Python
  1. >>> def fib(n):
  2. >>>     a, b = 0, 1

Ahora el programa interpreta el while

Código: Python
  1. >>>     while a < n:
  2. >>>         print(a, end=' ') y aquí imprime el valor desde a hasta N

Aquí , la duda.. Ahora se vuelven a declarar dos variables nuevamente a y b, pero ahora "a" posee el valor de "b" y "b" el valor de "a+b" ¿como sabe el programa que antes "a" era 0 y "b" era 1? o lo supone porque estoy declarando nuevamente dentro del bucle while?

Código: Python
  1. >>>         a, b = b, a+b (LA DUDA)
  2. >>>     print()
  3. >>> fib(1000)
« Última modificación: Noviembre 27, 2018, 08:04:13 pm por xyz »

Desconectado <<Pyromaniac>>

  • *
  • Underc0der
  • Mensajes: 3
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #1 en: Noviembre 26, 2018, 01:01:30 pm »
En la función fib estás dando el valor 0, 1 respectivamente de la variable a y b no entiendo porque dices que ¿Como sabe el valor anterior? porque aunque tú especifiques esto :
>>>         a, b = b, a+b (LA DUDA)
Aún está trabajando con esto:
>>> def fib(n):
>>>     a, b = 0, 1
Y si se vuelve a llamar a la función está tomará los valores declarados en ella (en la indentación):
>>> fib(1000)
Creo que es ese el problema, porque no pruebas con un IDE así no lo trabajas en el intérprete y por ahi  tiene mas sentido

Desconectado <<Pyromaniac>>

  • *
  • Underc0der
  • Mensajes: 3
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #2 en: Noviembre 26, 2018, 01:27:32 pm »
Código: [Seleccionar]
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
#  sin título.py

def fib(n):
    a, b = 0,1 #Se define el valor de a y b
    while a < n: #Comienza el bucle while si se cumple la condición de que a sea menor a n
        print(a, end=' ')#Se imprime a
        a, b = b, a+b #Se declara que a es igual a b y b a a+b
    print()
fib(1000) #Cuando llamas a la función comienza por asignar a, b = 0, 1 porque comienza desde
#el principio y luego entra en el bucle donde cambia el valor de las variables
#Si se vuelve a llamar a la función a volverá a valer 0 y b valdrá 1 hasta que ingrese de nuevo
#al bucle
###################################################################


#Si lo intentas asi.. en la función fib2 no se especifica el valor de a y b dara error.
#Python no va a saber que valor tienen
def fib2(n):
     #No Se define el valor de a y b
    while a < n: #Comienza el bucle while si se cumple la condición de que a sea menor a n
        print(a, end=' ')#Se imprime a
        a, b = b, a+b #Se declara que a es igual a b y b a a+b
    print()
fib2(1000) #Error

#Python no lo sabe, tu se lo estas diciendo al principio de la función

 

¿Te gustó el post? COMPARTILO!



[SOLUCIONADO] Correr paso a paso un Script de Python

Iniciado por Olger346

Respuestas: 2
Vistas: 1831
Último mensaje Febrero 11, 2018, 10:36:44 am
por Olger346
[SOLUCIONADO] [Python] Error: "Expected an indented block"

Iniciado por Banfek

Respuestas: 3
Vistas: 3805
Último mensaje Abril 01, 2015, 05:58:13 pm
por Banfek
[SOLUCIONADO] ¿Algún curso, taller o libro sobre inteligencia artificial Python?

Iniciado por dolphin

Respuestas: 1
Vistas: 1930
Último mensaje Septiembre 10, 2016, 03:39:20 pm
por blackdrake
[SOLUCIONADO] Ayuda para comprender un poco Python, vengo de Java.

Iniciado por coke951

Respuestas: 3
Vistas: 2341
Último mensaje Enero 01, 2016, 06:16:24 pm
por coke951
[Python] ¿Alguna libreria para recuperar archivos eliminados de la papelera?

Iniciado por $francisco

Respuestas: 2
Vistas: 2727
Último mensaje Noviembre 05, 2018, 06:43:15 am
por alexcv