En Python se pueden definir parámetros y asignarles un dato en la misma cabecera de la función. Luego cuando llamamos a la función podemos o no enviarle un valor al parámetro.
Los parámetros por defecto nos permiten crear funciones más flexibles y que se pueden emplear en distintas circunstancias.
Confeccionar una función que reciba un string como parámetro y en forma opcional un segundo string con un caracter. La función debe mostrar el string subrayado con el caracter que indica el segundo parámetro
def titulo_subrayado(titulo,caracter="*"): print(titulo) print(caracter*len(titulo)) # bloque principal titulo_subrayado("Sistema de Administracion") titulo_subrayado("Ventas","-")
Cuando ejecutamos esta aplicación podemos observar el siguiente resultado:
Lo primero importante en notar que la llamada a la función titulo_subrayado la podemos hacer enviándole un dato o dos datos:
titulo_subrayado("Sistema de Administracion") titulo_subrayado("Ventas","-")
Esto no podría ser correcto si no utilizamos una sintaxis especial cuando declaramos los parámetros de la función:
def titulo_subrayado(titulo,caracter="*"): print(titulo) print(caracter*len(titulo))
Como vemos el parámetro caracter tiene una asignación de un valor por defecto para los casos que llamamos a la función con un solo parámetro.
Cuando la llamamos a la función titulo_subrayado con un solo parámetro luego el parámetro caracter almacena el valor "*". Si llamamos a la función y le pasamos dos parámetros en nuestro ejemplo caracter almacena el string "-"
El algoritmo de la función es muy sencillo, imprimimos el primer parámetro:
print(titulo)
Para mostrar subrayado el titulo procedemos a imprimir el caracter del segundo parámetro tantas veces como caracteres tenga el string del titulo. Utilizamos una propiedad de los string en Python que nos permite utilizar el operador matemático * y generar un string del largo del título:
print(caracter*len(titulo))
Los parámetros por defecto deben ser los últimos que se declaren en la función. Se genera un error sintáctico si tratamos de definir una función indicando primero el o los parámetros con valores por defecto:
ejercicio139.py def sumar(v1,v2,v3=0,v4=0,v5=0): s=v1+v2+v3+v4+v5 return s # bloque principal print("La suma de 5 + 6") print(sumar(5,6)) print("La suma de 1 + 2 + 3") print(sumar(1,2,3)) print("La suma de 1 + 2 + 3 + 4 + 5") x=sumar(1,2,3,4,5) print(x)