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 la excelente información que proporciona Sebastián J. Bustamante, de FreeCodeCamp.
- print("Buenos días") escribirá el string Buenos días
- print(4+3) devolverá 7 (resultado de la suma de los valores pasado)
- 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
NOTA 1. Recuerda que en PseInt utilizábamos indistintamente las palabras reservadas Subproceso o Funcion, y que en OOo Basic usamos las palabras reservadas Sub, para las subrutinas y Function para las funciones.
- ... 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 este otro caso: def diHolaNombre(nombre)
- ... y finalizando la línea con dos puntos: def diHola():, que son imprescindibles para que la función funcione (de no ponerlos da error)
- Finalmente se escribe el código que ejecuta la función, siempre sangrado respecto a la posición de def), que puede ser muy simple o muy complejo, dependiendo de la función que creemos. Veamos algunas funciones simple.
Primer ejemplo. Función sin parámetros.
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
Segundo ejemplo. Función simple con un parámetro
def diHolaNombre(nombre):
print("Hola " + nombre + ", buenos días.")
En este caso, la función cuenta con un parámetro, pero no con sentencia de retorno. 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
Tercer ejemplo. Función con un parámetro numérico
... pero que no las llevará en caso de valores numéricos, como en este ejemplo...
def tablaCinco(num):
print("Resultado: " , num * 5)
.... que llamaremos mediante escribiendo un número dentro del paréntesis como único parámetro
tablaCinco(4) -> devuelve Resultado: 20
Cuarto ejemplo. Función con dos parámetros.
Y para finalizar este entrada introductoria, una última función que desarrolla la anterior. En este caso 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)...
def sumaNum(num1, num2):
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 nativa print()...
sumaNum(3,7) -> devuelve 10
... aunque el resultado es equivalente a utilizar print(3+7)
NOTA 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.