REVIT ARCHITECTURE (927) – PYTHON – Funciones (11) – Devolver el resultado de una función (3) Efectos y resultados: listas y funciones

Una lista se puede enviar a una función como argumento, ya que cualquier entidad reconocible por Python puede desempeñar el papel de un argumento de función, aunque hay que asegurarse de que la función sea capaz de manejar esta entidad.

En este caso, si se pasa una lista a una función, la función tiene que tratarla como una lista.

Vamos a plantear una función de ejemplo que funcione con lista como argumento. Se define la función llamada list_sum que toma un argumento, lst que se espera sea una lista de números.

La función list_sum(lst) tiene como objetivo sumar todos los elementos de una lista y devolver la suma total.

7187

Inicialización de la variable s: Se inicializa una variable s con el valor 0. Esta variable se usará para acumular la suma de los elementos de la lista.

7188

Iteración a través de la lista:

  • for elem in lst:: Este es un bucle for que itera sobre cada elemento de la lista lst. En cada iteración, el elemento actual se asigna a la variable elem.
  • s += elem: Esta línea es una abreviatura de s = s + elem. Suma el valor del elemento actual (elem) a la variable s.

7189

Devolución del resultado: Después de que el bucle ha terminado de iterar sobre todos los elementos de la lista, la función devuelve el valor acumulado de s, que es la suma de todos los elementos de la lista.

7190

La función completa planteada será:

7191

Si se invoca la función list_sum con la lista [3, 2, 1], la función sumará los elementos de la lista de la siguiente manera:

Inicialización:

7188

Iteración a través de la lista [3, 2, 1]:

Primera iteración: elem = 3

7192

Segunda iteración: elem = 2

7193

Tercera iteración: elem = 1

7194

Devolución del resultado:

7195

Pero si se invoca la función de la siguiente manera el resultado será error:

Si se invoca la función list_sum con print(list_sum(3)), ocurrirá un error porque la función list_sum está diseñada para recibir una lista, no un entero. Vamos a detallar qué pasa exactamente.

Ejemplo de uso incorrecto

7196

Explicación del error:
Cuando se llama a list_sum(3), el argumento 3 se pasa a la función list_sum. Dentro de la función, se intenta iterar sobre 3 con un bucle for, lo cual no es posible porque 3 es un entero y no una lista.

El error específico que ocurrirá es:

7197

¿Por qué ocurre este error?

El bucle for elem in lst: intenta iterar sobre lst, esperando que lst sea una lista (o algún otro tipo iterable). Un entero no es un iterable en Python, por lo que el intérprete lanza un TypeError.

Ejemplo del código con el error:

7198

Cómo evitar el error:

Para evitar este error, hay que asegurar de pasar una lista como argumento a la función. Por ejemplo:

7199

Resultado de la invocación correcta:

7200

En este caso, la función sumará los elementos de la lista [3], devolviendo 3 como resultado.

Licencia Creative Commons Contenido Web de Yolanda Muriel está sujeto bajo Licencia Creative Commons Atribución-NoComercial-SinDerivadas 3.0 Unported.

Deja un comentario