Esta característica de Python nos permite llamar a la función indicando en cualquier orden los parámetros de la misma, pero debemos especificar en la llamada el nombre del parámetro y el valor a enviarle.
Confeccionar una función que reciba el nombre de un operario, el pago por hora y la cantidad de horas trabajadas. Debe mostrar su sueldo y el nombre. Hacer la llamada de la función mediante argumentos nombrados.
def calcular_sueldo(nombre,costohora,cantidadhoras): sueldo=costohora*cantidadhoras print(nombre,"trabajo",cantidadhoras,"y cobra un sueldo de",sueldo) # bloque principal calcular_sueldo("juan",10,120) calcular_sueldo(costohora=12,cantidadhoras=40,nombre="ana") calcular_sueldo(cantidadhoras=90,nombre="luis",costohora=7)
Como podemos ver no hay ningún cambio cuando definimos la función:
def calcular_sueldo(nombre,costohora,cantidadhoras): sueldo=costohora*cantidadhoras print(nombre,"trabajo",cantidadhoras,"y cobra un sueldo de",sueldo)
Podemos llamarla como ya conocemos indicando los valores directamente:
calcular_sueldo("juan",10,120)
Pero también podemos indicar los datos en cualquier orden pero con la obligación de anteceder el nombre del parámetro:
calcular_sueldo(costohora=12,cantidadhoras=40,nombre="ana") calcular_sueldo(cantidadhoras=90,nombre="luis",costohora=7)
Ahora vamos a profundizar la función print que hemos utilizado desde los primeros conceptos.
Como hemos trabajado hasta ahora cada vez que se llama a la función print se muestran todos los datos que le enviamos separados por coma y provoca un salto de línea al final.
Por ejemplo si ejecutamos
print("uno") print("dos")
En pantalla aparece:
uno dos
La función print tiene un parámetro llamado end, también hay que tener en cuenta que este parámetro por defecto tiene asignado "\n" que es el salto de línea y es por eso que cada vez que se ejecuta un print se produce un salto de línea.
Podemos indicar al parámetro end otro valor, por ejemplo un guión:
print("uno",end="-") print("dos")
Ahora el resultado de ejecutar este programa es:
uno-dos
Ahora vemos que al llamar a print pidiendo que imprima "uno" e indicando que en lugar de producir un salto de línea muestre un guión:
print("uno",end="-")
Cargar una lista de 10 enteros, luego mostrarlos por pantalla a cada elemento separados por una coma.
def cargar(): lista=[] for x in range(10): valor=int(input("Ingrese valor:")) lista.append(valor) return lista def imprimir(lista): for x in range(len(lista)): print(lista[x], end=",") # bloque principal lista=cargar() imprimir(lista)
Lo nuevo en este problema aparece cuando imprimimos los elementos de la lista, como necesitamos que se muestren todos en la misma línea y separados por coma cargamos en el parámetro end la cadena ",":
def imprimir(lista): for x in range(len(lista)): print(lista[x], end=",")
Si no indicamos el parámetro end luego aparecen todos los datos en líneas distintas en pantalla.
Otro argumento nombrado importante para la función print de Python se llama "sep", este indica que debe mostrarse entre cada dato a mostrar en la misma llamada print.
Por ejemplo si ejecutamos:
print("uno","dos","tres")
Luego el resultado es la impresión de los string en la misma línea y separados por un caracter en blanco (esto debido a que el parámetro sep tiene un valor por defecto de un espacio en blanco (sep=" "):
uno dos tres
Entonces podemos asignar al parámetro sep el valor que necesitemos, por ejemplo una coma:
print("uno","dos","tres",sep=",")
Luego el resultado en pantalla será:
uno,dos,tres
ejercicio142.py def tabla(numero, terminos=10): for x in range(terminos): va=x*numero print(va,",",sep="",end="") print() # bloque principal print("Tabla del 3") tabla(3) print("Tabla del 3 con 5 terminos") tabla(3,5) print("Tabla del 3 con 20 terminos") tabla(terminos=20,numero=3)