Blog
Entender el concepto de las funciones y aprender a usarlas
Funciones en Python
Las funciones son sencillamente bloques de código que realizan una operación deseada y devuelven un valor o alguna tarea en específico. A estas funciones se les asigna un nombre para poder invocarlas durante la ejecución del programa.
El uso de las funciones sin duda facilita la programación, primero porque permite dividir el código en tareas más simples y segundo por su utilidad, pues una vez creada se puede llamar las veces que sea necesario.
Ahora bien, para aprovechar bien este recurso es preciso crear funciones que ofrezcan soluciones concretas.
Sintaxis
Crear una función en Python es fácil. Se debe comenzar con la palabra reservada def, seguidamente escribir el nombre de la función y luego colocar entre paréntesis los parámetros.
def nombre_Funcion(parametros): #Sentencias
Por otro lado, para llamar a la función solo debemos escribir el nombre de la función y los parámetros que queremos que se utilicen en la función. Incluso podemos guardar el resultado en una variable o imprimirlo en pantalla directamente.
nombre_Funcion(parametros) # llamando a la función variable = nombre_Funcion(parametros) # guardando el resultado en una variable print(nombre_Funcion(parametros)) # Imprimiendo en pantalla el resultado
Funciones simples en Python:
El primer ejemplo muestra un mensaje en pantalla
def funcion(): return "Hola Mundo" mensaje = funcion() print (mensaje)
El segundo ejemplo calcula el iva a partir de los datos introducidos por el usuario
def iva(): total=int(input("cuanto has gastado")) num=int(input("que tipo de producto has comprado 1)leche 2)pan 3)alcohol 4)otros")) if num==1: iv=6 elif num==2: iv=8 elif num==3: iv=14 else: iv=9 iva1=(total*iv/100) print('el impuesto de ese producto es:') print(iva1) return iva1 iva() print("Programa terminado")
➡ ¿Quieres aprender Python Gratis y obtener un Certificado?
Mejor Curso de Python para Principiantes:
Funciones con argumentos en Python:
Funciones con 2 argumentos:
Cuando se envía argumentos a una función, estos son recibidos en el orden que fueron definidos.
Esta función de 2 argumentos calcula la media:
def calcula_media(x, y): resultado = (x + y) / 2 return resultado media = calcula_media(3, 5) print("La media es:") print(media) print("Programa terminado")
Como vemos en el ejemplo, el argumento 3 es la posición 0 de modo que es el parámetro de la función x, seguidamente el argumento 5 es la posición 1 significa que es el parámetro de la función y.
Por supuesto, es posible evadir el orden en caso de requerirlo. Para ello durante la llamada de la función se indica el valor de cada parámetro señalando su nombre.
def calcula_media(x, y): resultado = (x + y) / 2 return resultado media = calcula_media(y=5, x=3) print("La media es:") print(media) print("Programa terminado")
Esta función calcula la media de todos los argumentos que quieras:
def calcula_media(*args): total = 0 for i in args: total += i resultado = total / len(args) return resultado a, b, c, d, e = 3, 5, 10, 15, 160 media = calcula_media(a, b, c, d, e) print("La media es:") print(media) print("Programa terminado")
Funcion recursiva
Ya conocemos que las funciones pueden llamar a otras funciones, pero ¿que pasa si la función se llama a si misma? Pues lo que tenemos es una función recursiva.
Estas se utilizan generalmente para dividir una tarea en sub-tareas más simples a fin de abordar el problema de una forma más sencilla.
Nota: Es importante establecer el momento en que se dejará de llamarse así misma, de lo contrario se obtendrá una función recursiva infinita.
Ejemplo de función recursiva en Python:
def fun_fact(x): if (x==1): return 1 else: x=(x*fun_fact(x-1)) return x num=10 print("El factorial de ", num, "es ",fun_fact(num))
Comprensión de listas e Iteradores
Los iteradores son estructuras de datos que pueden recorrerse secuencialmente a través del usos de bucles. Básicamente se tratan de secuencias, contenedores y ficheros de texto.
Por su parte, la comprensión de listas es un mecanismo que nos permite generar una lista con una única instrucción, mediante la transformación de los elementos de un iterable.
Vamos a realizar algunos ejemplos con listas para mejorar su comprensión y para que podáis ver la flexibilidad del uso de las mismas. Ejemplo de listas e iteradores en python:
lista=[1,2,3,4,-2,5] lista2=[num for num in lista if num<0] print (lista) print (lista2)
Aquí podemos ver como también podemos hacer for anidados o también if como hicimos en el artículo de Sentencias IF y los bucles WHILE y FOR
Usando ‘iter’ y ‘next’
El método iter nos permite obtener el objeto iterable de una manera más sencilla, mientras que el método next devuelve el próximo elemento de la secuencia.
En el siguiente ejemplo podemos ver el uso de iter y next de manera simple:
# definimos una lista my_list = [4, 3, 8, 9] # añadimos el iterador a la lista my_iter = iter(my_list) # ahora podemos iterar con el commando next print(next(my_iter ))
Funciones Predeterminadas de Python
Así como podemos definir funciones nuevas para nuestros programas, es posible utilizar funciones que están predefinidas en la librería estándar de Python. Estas son sumamente útiles, ahorran tiempo en el desarrollo de un programa y dan una gran cantidad de facilidades.
Funciones de Strings
Función | Uso | Ejemplo | Resultado |
str(a) | Convierte el argumento que recibe en un string. |
>>> a = 123
>>> b = [1,2,3]
>>> str(a)
>>>str(b)
|
“123” ; “[1,2,3]” |
string.join(lista) | Concatena los elementos de lista en un string, utilizando el contenido de string como conector entre cada elemento. |
>>> string = “*”
>>> string.join([“a”,”b”,”c”])
|
“a*b*c” |
string.split(separador) | Genera una lista con los caracteres de string, separando los elementos en cada ocurrencia de separador. |
>>> string = “Hola mundo”
>>> string.split(” “)
|
[“Hola”,”mundo”] |
string.replace(a,b) | Remplaza cada ocurrencia de a en string con b. |
>>> s = “Vivo en Barcelona”
>>>s.replace(“Barcelona”,”Valencia”)
|
“Vivo en Valencia” |
string.upper() | Convierte todas las letras minúsculas que hayan en string, en letras mayúsculas. |
>>> string = “Hola”
>>> string.upper()
|
“HOLA” |
string.lower() | Convierte todas las letras mayúsculas que hayan en string, en letras minúsculas. |
>>> string = “HEllo”
>>> string.lower()
|
“hello” |
Funciones Numéricas
Función | Uso | Ejemplo | Resultado |
range(i,f) | Crea un rango de números mayores o iguales a i y menores que f. | >>> x = list(range(2,6)) | [2,3,4,5] |
abs(x) | Devuelve el valor absoluto de x. |
>>> x = -16
>>> abs(x)
|
16 |
int(n) | Convierte n en un objeto de tipo entero. | >>> int(10.00) | 10 |
float(n) | Convierte n en un objeto de tipo float. | >>> float(5) | 5.0 |
max(iterable) | Retorna el mayor elemento que haya en iterable. | >>> max([5,9,4,7,3]) | 9 |
min(iterable) | Retorna el menor elemento que haya en iterable. | >>> min([5,9,4,7,3]) | 3 |
sum(iterable) | Retorna la suma de los elementos de iterable | >>> sum([5,9,4,7,3]) | 28 |
Otras Funciones
Función | Uso | Ejemplo | Resultado |
open(archivo,modo) | Abre archivo y lo devuelve como un objeto archivo con el modo especificado. | >>> a = open(“archivo.txt”) | Abre “archivo.txt” en modo de lectura. |
len(p) | Devuelve la longitud (numero de elementos) de p. p debe ser una secuencia de elementos (como un string) o una colección de elementos (como una lista). |
>>> a = [1,2,3]
>>> b = “Hola”
>>> len(a)
>>> len(b)
|
3 4 |
sorted(lista) | Ordena el contenido de lista de menor a mayor. |
>>> A = [3,5,2,1]
>>> sorted(A)
|
A = [1,2,3,5] |
input([aviso]) | Lee una linea desde la entrada y la convierte en string. Si aviso es especificado, se imprime por la salida estándar antes de leer la entrada. | >>> a = input() | a toma el valor que sea especificado por la entrada. |
type(objeto) | Devuelve el tipo de objeto. |
>>> a = 5
>>> type(a)
|
<class ‘int’> |