Algoritmos de Programación con Python

3.4. Más sobre los resultados de las funciones

Ya hemos visto cómo hacer para que las funciones que se comporten como las funciones que conocemos, las de la matemática, que se usan para calcular resultados.

Veremos ahora varias cuestiones a tener en cuenta al escribir funciones. Para ello volvemos a escribir una función que eleva al cuadrado un número.

>>> def cuadrado (x):
...         cua = x * x
...         return cua
...
>>> y = cuadrado(5)
>>> y
25
>>>

¿Por qué no usamos dentro del programa el valor cua calculado dentro de la función?

>>> def cuadrado (x):
...     cua = x * x
...     return cua
...
>>> cua
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'cua' is not defined
>>>

Nota Las variables y los parámetros que se declaran dentro de una función no existen fuera de ella, no se los conoce. Fuera de la función se puede ver sólo el valor que retorna y es por eso que es necesario introducir la instrucción return.

¿Para qué hay que introducir un return en la función? ¿No alcanza con el valor que se calcula dentro de la misma para que se considere que la función retorna un valor? En Python no alcanza (hay otros lenguajes en los que se considera que el último valor calculado en una función es el valor de retorno de la misma).

>>> def cuadrado (x):
...     cua = x * x
...
>>> y = cuadrado(5)
>>> y
>>>

Cuando se invoca la función cuadrado mediante la instrucción y = cuadrado(5) lo que sucede es lo siguiente:

  • Se invoca a cuadrado con el argumento 5, y se ejecuta el cuerpo de la función.
  • El valor que devuelve la función se asocia con la variable y.
  • Es por eso que si la función no devuelve ningún valor, no queda ningún valor asociado a la variable y.

Copyright (c) 2011-2014 Rosita Wachenchauzer, Margarita Manterola, Maximiliano Curia, Marcos Medrano, Nicolás Paez. La copia y redistribución de esta página se permite bajo los términos de la licencia Creative Commons Atribución - Compartir Obras Derivadas Igual 3.0 siempre que se conserve esta nota de copyright.