Funciones en Python
Después de haber visto [qué son las funciones], [cómo se crean] y su [uso en OOo Basic], es momento de tratar el tema de las funciones en Python. Para ello, además de la información que proporciona la bibliografía, he seguido el excelente trabajo de [Sebastián J. Bustamante, de FreeCodeCamp], aunque al consultarlo debes tener en cuenta que también contiene información relativa a las funciones built-in explicadas en este blog en [esta entrada].
- Utilizamos la palabra reservada def, tanto para el caso de funciones que no tienen parámetros o no devuelven valores (los subprocesos en OOo Basic), como para aquellas que sí los tienen y devuelven valores (las function en sentido estricto de OOo Basic). En esto Python se asemeja al modo de operar de PSeInt, aunque restringiendo la expresión a la palabra reservada def (1)
- ... seguida del nombre o identificador de la función: def diHola
- ... seguido de dos paréntesis: def diHola(), que pueden estar vacíos (como en el ejemplo anterior), o contener parámetros de entrada, como en def diHolaNombre(nombre)
- ... y finalizando la línea con dos puntos: def diHola():, que son imprescindibles para que la función sea reconocida como tal (su ausencia provoca respuesta de error)
- Finalmente se escribe el código que ejecuta la función, siempre sangrado respecto a la posición de def).
def diHola():
print("Hola, amigo")
Esta función (propia) utiliza la función nativa print(), no tiene parámetros y devuelve el string Hola amigo al ser llamada.
Para llamarla nada más simple que escribir su nombre, incluyendo el paréntesis vacío:
diHola() -> devuelve Hola, amigo
Un segundo ejemplo; una función simple con parámetros (uno)
def diHolaNombre(nombre):
print("Hola " + nombre + ", buenos días.")
En este caso, la función tiene parámetro, pero carece de sentencia de retorno (return). Para llamarla deberemos proceder igual que antes, pero escribiendo algo dentro del paréntesis (que en el caso de ser una cadena deberá ir entre comillas...)
diHolaNombre("Carmen") -> devuelve Hola Carmen, buenos días
Paso siguiente (tercer ejemplo): función con un parámetro numérico...
def tablaCinco(num):
print("Resultado: " , num * 5)
.... que llamaremos escribiendo un número dentro del paréntesis como único parámetro
tablaCinco(4) -> devuelve Resultado: 20
Un nuevo ejemplo (y van cuarto): Función con dos parámetros.
def sumaNum(num1, num2):
return num1 + num2
Esta última función que desarrolla la anterior. Es una función con dos parámetros y sentencia de retorno: observa que ahora no usamos la función print() y sí la palabra reservada return, que no es una función nativa, sino una expresión (return num1 + num2)...
...que llamaremos como sigue (observa que escribimos ambos parámetros separados por coma, no mediante el símbolo de la suma, como hacíamos al usar directamente la función print()...
sumaNum(3,7) -> devuelve 10
... aunque el resultado es equivalente a utilizar print(3+7) (2)
Y finalizar, una función (la quinta) que utiliza return y que permite la entrada de parámetro o su ausencia, respondiendo de forma diferente en cada uno de los casos:
def hola():
nombre = str(input("Dame tu nombre: "))
if nombre:
print ("Hola " + nombre)
else:
print("Hola Mundo")
return
Al ser llamada (sin parámetro hola()) tenemos dos opciones: responde con un nombre a la instrucción (nombre = str(input("Dame tu nombre: "))) o no responder. En el segundo caso devuelve Hola Mundo, y en el primero responde Hola [Nombre].
NOTAS
(2) Cuando la función contenga parámetros, deberemos usar en la llamada tantos parámetros como contenga la función y del mismo tipo. De no hacerlo dará error.

No hay comentarios:
Publicar un comentario
Comenta esta entrada