Funciones Python
Introducción a las funciones en Python
Una función te permite definir un bloque de código
reutilizable que se puede ejecutar muchas veces
dentro de tu programa.
Las funciones te permiten crear soluciones más
modulares y DRY para problemas complejos.
Si bien Python ya proporciona muchas funciones
integradas como print() y len(), también puedes definir
tus propias funciones para usar en tus proyectos.
Una de las grandes ventajas de usar funciones en tu
código es que reduce el número total de líneas de
código en tu proyecto.
Sintaxis
En Python, una definición de función tiene las
siguientes características:
1. La palabra clave def
2. Un nombre de función
3. Paréntesis ’()’, y dentro de los paréntesis los
parámetros de entrada, aunque los parámetros
de entrada sean opcionales.
4. Dos puntos ’:’
5. Algún bloque de código para ejecutar
6. Una sentencia de retorno (opcional)
Las funciones son bloques de código que se pueden
reutilizar simplemente llamando a la función. Esto
permite la reutilización de código simple y elegante
sin volver a escribir explícitamente secciones de
código. Esto hace que el código sea más legible,
facilita la depuración y limita los errores de
escritura.
Las funciones en Python se crean usando la palabra
clave def, seguida de un nombre de función y
parámetros de función entre paréntesis.
Una función siempre devuelve un valor. La función
utiliza la palabra clave return para devolver un valor;
si no desea devolver ningún valor, se devolverá el
valor predeterminado None.
El nombre de la función se usa para llamar a la
función, pasando los parámetros necesarios entre
paréntesis.
# función sin parámetros o retorno de valores
def diHola():
print("Hello!")
diHola() # llamada a la función, 'Hello!' se muestra en la consola
# función con un parámetro
def holaConNombre(name):
print("Hello " + name + "!")
holaConNombre("Ada") # llamada a la función, 'Hello Ada!' se muestra en la consola
# función con múltiples parámetros con una sentencia de retorno
def multiplica(val1, val2):
return val1 * val2
multiplica(3, 5) # muestra 15 en la consola
# función con múltiples parámetros con una sentencia de retorno
def multiplica(val1, val2):
return val1 * val2
respe =multiplica(3, 5) # muestra 15 en la consola
print ("el resultado de la multiplicacion es ",respe)
# envio otros valores
respe =multiplica(8,7) # muestra 56 en la consola
print ("el resultado de la multiplicacion es ",respe)
# envio otros valores
respe =multiplica(9,6) # muestra 54 en la consola
print ("el resultado de la multiplicacion es ",respe)
función suma
def suma(a, b):
"""Esta función realiza la suma: c = a + b
sus llamado se hace
suma(a,b)"""
return a + b
c= suma(-3,8)
print("la suma es",c)
función pide datos para pasar como parámetros
# PIDE DATOS PARA PASARLOS COMO PARAMETROS
var_num1 = int(input("digite el prier numero")) # LE coloco prefijo
que es una variable var_num11
var_num2 = int(input("digite el prier numero"))
# PUEDO PASAR EL MISMO NOMBRE DE LA VARIABLE A LA FUNCION O COLOCARLE
OTRO O MEJO COLOCARLE PREFIJO VAR_NUM1
def suma(num1,num2): # AQUI LE PUEDO COLOCCAR num1 u otro nombre
resuma =(num1+num2)
return resuma
print (" la suma de los numeros es ")
print(suma(var_num1,var_num2))
ejemplo funciones con listas
def cargar():
lista=[]
for x in range(5):
num=int(input("Ingrese un valor:"))
lista.append(num)
return lista
def imprimir(lista):
print("Lista completa")
for elemento in lista:
print(elemento)
def mayor(lista):
may=lista[0]
for elemento in lista:
if elemento>may:
may=elemento
print("El elemento mayor de la lista es",may)
def sumar_elementos(lista):
suma=0
for elemento in lista:
suma=suma+elemento
print("La suma de todos sus elementos es",suma)
# bloque principal
lista=cargar()
imprimir(lista)
mayor(lista)
sumar_elementos(lista)
otro ejemplo
def cargar():
empleados=[]
for x in range(5):
nombre=input("Nombre del empleado:")
sueldo=int(input("Ingrese el sueldo:"))
empleados.append((nombre,sueldo))
return empleados
def imprimir(empleados):
print("Listado de los nombres de empleados y sus sueldos")
for nombre,sueldo in empleados:
print(nombre,sueldo)
def mayor_sueldo(empleados):
empleado=empleados[0]
for emp in empleados:
if emp[1]>empleado[1]:
empleado=emp
print("Empleado con mayor sueldo:",empleado[0],"su sueldo
es",empleado[1])
def sueldos_menor1000(empleados):
cant=0
for empleado in empleados:
if empleado[1]<1000:
cant=cant+1
print("Cantidad de empleados con un sueldo menor a 1000
son:",cant)
# bloque principal
empleados=cargar()
imprimir(empleados)
mayor_sueldo(empleados)
sueldos_menor1000(empleados)
https://www.freecodecamp.org/espanol/news/guia-de-funciones-de-python-con-ejemplos/
def presentacion():
print("Programa que permite cargar dos valores por teclado.")
print("Efectua la suma de los valores")
print("Muestra el resultado de la suma")
print("*******************************")
def carga_suma():
valor1=int(input("Ingrese el primer valor:"))
valor2=int(input("Ingrese el segundo valor:"))
suma=valor1+valor2
print("La suma de los dos valores es:",suma)
def finalizacion():
print("*******************************")
print("Gracias por utilizar este programa")
# programa principal
presentacion()
carga_suma()
finalizacion()
Ejercicios
Confeccionar una aplicación que solicite la carga de dos valores enteros y muestre su suma.
Repetir la carga e impresion de la suma 5 veces.
Mostrar una línea separadora después de cada vez que cargamos dos valores y su suma.
Desarrollar un programa con dos funciones. La primer solicite el ingreso
de un entero y muestre el cuadrado de dicho valor. La segunda que
solicite la carga de dos valores y muestre el producto de los mismos.
LLamar desde el bloque del programa principal a ambas funciones.
Desarrollar un programa que solicite la carga de tres valores y muestre
el menor. Desde el bloque principal del programa llamar 2 veces a dicha
función (sin utilizar una estructura repetitiva)
Desarrollar una función que reciba un string como parametro y nos
muestre la cantidad de vocales. Llamarla desde el bloque principal del
programa 3 veces con string distintos.
Confeccionar una función que reciba tres enteros y los muestre
ordenados de menor a mayor. En otra función solicitar la carga de 3
enteros por teclado y proceder a llamar a la primer función definida.
Funciones: retorno de datos
Confeccionar una función que le enviemos como parámetro el valor del lado de
un cuadrado y nos retorne su superficie.
def retornar_superficie(lado):
sup=lado*lado
return sup
# bloque principal del programa
va=int(input("Ingrese el valor del lado del cuafrado:"))
superficie=retornar_superficie(va)
print("La superficie del cuadrado es",superficie)
Funciones: parámetros de tipo
lista
Definir por asignación una lista de enteros en el bloque principal del programa. Elaborar tres
funciones, la primera recibe la lista y retorna la suma de todos sus elementos, la segunda recibe la
lista y retorna el mayor valor y la última recibe la lista y retorna el menor
def sumarizar(lista):
suma=0
for x in range(len(lista)):
suma=suma+lista[x]
return suma
def mayor(lista):
may=lista[0]
for x in range(1,len(lista)):
if lista[x]>may:
may=lista[x]
return may
def menor(lista):
men=lista[0]
for x in range(1,len(lista)):
if lista[x]<men:
men=lista[x]
return men
# bloque principal del programa
listavalores=[10, 56, 23, 120, 94]
print("La lista completa es")
print(listavalores)
print("La suma de todos su elementos es", sumarizar(listavalores))
print("El mayor valor de la lista es", mayor(listavalores))
print("El menor valor de la lista es", menor(listavalores))
ejercicios
Crear y cargar por teclado en el bloque principal del programa una lista de 5 enteros. Implementar
una función que imprima el mayor y el menor valor de la lista.
Crear una lista de enteros por asignación. Definir una función que reciba
una lista de enteros y un segundo parámetro de tipo entero. Dentro de la
función mostrar cada elemento de la lista multiplicado por el valor entero
enviado.
lista=[3, 7, 8, 10, 2]
multiplicar(lista,3)
Desarrollar una función que reciba una lista de string y nos retorne el
que tiene más caracteres. Si hay más de uno con dicha cantidad de
caracteres debe retornar el que tiene un valor de componente más baja.
En el bloque principal iniciamos por asignación la lista de string:
palabras=["enero", "febrero", "marzo", "abril", "mayo", "junio"]
print("Palabra con mas caracteres:",mascaracteres(palabras))
Definir una lista de enteros por asignación en el bloque principal. Llamar
a una función que reciba la lista y nos retorne el producto de todos sus
elementos. Mostrar dicho producto en el bloque principal de nuestro
programa.