Python - Pregunta sobre la función "for"

 
Vista:
Imágen de perfil de Christopher

Pregunta sobre la función "for"

Publicado por Christopher (4 intervenciones) el 10/04/2023 01:42:40
1
2
3
4
5
6
7
def suma(*numeros):
    resultado = 0
    for numero in numeros:
        resultado += numero
    print(resultado)
 
suma(2, 2, 2, 2, 2)

En este caso, como es que python entiende que "numero" son cada uno de los números de suma(2, 2, 2, 2, 2)?
No entiendo muy bien cómo sabe que esos son los números y como es que no hace falta que asigne un valor a "numero" previamente

Espero que podáis resolverme esa duda, muchas gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Pregunta sobre la función "for"

Publicado por tincopasan (1082 intervenciones) el 10/04/2023 02:54:18
es fácil, esto proviene de *args que es una función se usa para pasar, de forma opcional, un número variable de argumentos posicionales, args es una variable por convención, como self en las clases, los valores pasados son tomados como una tupla, por lo tanto: (*numeros) es una forma de decir que se pasará una tupla de valores indefinidos, en este caso (2,2,2,2,2), numero es la variable que toma el valor del elemento dentro del iterador en cada paso del bucle y lo estás declarando en situ por así decirlo..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Christopher

Pregunta sobre la función "for"

Publicado por Christopher (4 intervenciones) el 11/04/2023 20:57:08
Vale, estoy muy cerca de entenderlo, pero todavía no soy capaz. ¿Puedes explicarlo un poco más detallado o de otra forma? Gracias!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Pregunta sobre la función "for"

Publicado por georwins (8 intervenciones) el 04/05/2023 07:58:43
Primero es necesario que entiendas el concepto de tupla, una tupla basciamente es una estructura que almacena datos los cuales no pueden ser modificados. Que tiene la siguiente forma: tupla=(elemento1,elmento2,..,elementoN). el for lo que hace es pasearse cada uno de los elementos de dicha tupla y hacer con cada uno de ellos lo que le definas en el codigo. Por ejemplo si tienes la siguiente tupla, Casas=("Maria","Juan","Jose") utilizas el for, el va a pasearse por cada uno de los elementos de la tupla Casas en el orden que esta expresado la tupla. Es decir, primero pasara por Maria, luego por Juan y por ultimo Jose. Espero que peudas entenderlo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Christopher

Pregunta sobre la función "for"

Publicado por Christopher (4 intervenciones) el 11/04/2023 20:58:38
Más que nada porque estoy recién empezando y no entiendo conceptos como una tupla, argumentos posicionales, variable por convención,…
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Pregunta sobre la función "for"

Publicado por Rolando José (44 intervenciones) el 06/05/2023 01:40:51
Este tipo de preguntas son las buenas, porque el que las hace no come entero, quiere saber que pasa por debajo.

Cuando llamas a la funcion suma(2,2,2,3,2), estas dandole a la funcion 5 argumentos, python los mete en un vector de argumentos, y luego el for los toma:

for numeros in numeros:

Es una forma muy particular de escribir código, es correcta pero con poca pedagogia.

esto funciona igua asi:

for <variable> in numeros:

la variable puede ser cualquier variable no usada, como n o p, antes se usaba las letras i,j,k, pero ya no se usa esas variables porque pueden generar vulnerabilidades
quien te esta enseñando quizas las escribio y luego las borro y puso numero pero con eso crea un error ontologico, que pasa mucho en pedagogia.
porque confunde mas al usar la misma palabra "numero" en la misma linea y tan cerca.

"numeros" es la variable un vector donde se gardan los datos que se entregan a la función.

Entonces el for toma cada valor del vector y lo asigna a la variable que le da el for, en este ejemplo a numero, pero funciona igual con cualquiera, y para poder entender mejor es mejor usar una letra, digamos n

Entonces for asigna a n un valor del vector.

pero python dice lo mismo,
para "cada valor" n en el vector de argumentos que me dan hago:
incremente resultado en n

lo que hace for en python generalmente es un "para cada valor de un vector, le asigna un valor del vector a la variable que defina for.

cada valor lo remplaza por una variable que puede ser la ue define for.

Te felicito pues no te quedas con la pregunta, no comes entero, estas aprendiendo y necesitas saber que pasa por debajo de la pantalla, como no te obsesiones, con tantas preguntas vas a ser buen programador porque no comes entero.

Cada vez que te pase esto, que uno no sabe que esta pasando por debajo, uno puede, usar un print en la consola para ver las variables, me gustaba matlab porque le mostraba como iban cambiando el valor de las variable y eso es bueno para entender bien el codigo.
puedes buscar algo que te muestre las variables que intervienen, intenta cambiar numero por una letra que no distraiga tanto como x y pruebas, que siga funcionando, luego inserta una linea que te muestre la variable que te preocupa, puedes usar print(x) que te va a ayudar a entender que esta pasando por debajo. Yo le pongo mas texto para dar algo de contexto

1
2
3
4
5
6
7
8
def suma(*numeros):
    resultado = 0
    for x in numeros:
        print("mas",x)
        resultado += x
    print("finalmente da",resultado)
 
suma(1,2,3,4,5)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar