0% encontró este documento útil (0 votos)
158 vistas24 páginas

Funciones y Métodos en Python

Este documento describe las funciones y métodos en Python. Explica que las funciones son bloques de código reutilizables que realizan tareas específicas, mientras que los métodos son acciones que pueden realizar objetos. También cubre temas como parámetros, argumentos, sentencia return y más.

Cargado por

Diego Alvarado
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
158 vistas24 páginas

Funciones y Métodos en Python

Este documento describe las funciones y métodos en Python. Explica que las funciones son bloques de código reutilizables que realizan tareas específicas, mientras que los métodos son acciones que pueden realizar objetos. También cubre temas como parámetros, argumentos, sentencia return y más.

Cargado por

Diego Alvarado
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Funciones y métodos

Funciones
Al igual que en otros lenguajes de programación, una función es una porción o bloque de
código reutilizable que se encarga de realizar una determinada tarea.

Resulta muy cómodo trabajar con funciones, porque no es necesario reescribir ese código
cada vez que nos enfrentamos a dicha tarea. Solo se requiere llamar a la función.

“Built-in” functions

Python posee funciones integradas (built-in functions), que pueden requerir o no


parámetros. Ejemplo, la función help(), que ofrece la ayuda del sistema sobre determinado
comando, la función abs(), que devuelve el valor absoluto de un número etc…

help(round)
Abs(-1000)
Funciones
El uso de funciones es un componente muy importante del paradigma de la programación
llamada estructurada, y tiene varias ventajas:

• modularización: permite segmentar un programa complejo en una serie de partes o


módulos más simples, facilitando así la programación y el depurado.
• reutilización: permite reutilizar una misma función en distintos programas.

La definición de función no ejecuta el cuerpo de la función; esto es ejecutado solamente


cuando la función es llamada.

La sintaxis para una definición de función en Python es:

def NOMBRE(LISTA_DE_PARAMETROS):
SENTENCIAS
RETURN [EXPRESION]
Funciones
Crear funciones en Python

Si no existe la función que necesitamos, en Python es muy sencillo crearla. Primero se


declara con def nombre función, y luego se define su contenido (código indentado dentro
de la función).

Ejemplo: crear una función que sume dos números. Después, llamar a la función,
proporcionando los valores de los dos parámetros:

def sumar(num1, num2):


print(num1+num2)

sumar(5,25)
Métodos
Métodos en Python

Python es un lenguaje multiparadigma, que soporta programación orientada a objetos


(POO), siendo las clases y los objetos sus principales bloques de desarrollo. Las clases son los
modelos sobre los cuáles se construirán nuestros objetos, mientras que los objetos son
instancias de esa clase.

Por ejemplo, vamos a crear la clase “Persona”, con dos atributos, “nombre” y “edad”. A
continuación, creamos un objeto de esa clase: Pablo, 30 años.

class Persona:
nombre = ‘’
edad = 0
pablo = Persona
pablo.nombre=´Pablo’
pablo.edad=25
Métodos
Los métodos son acciones o funciones que puede realizar un objeto. Al igual que Python
ofrece una serie de funciones “built-in”, también pone a nuestra disposición un conjunto de
métodos ya creados. Estos métodos dependen del tipo de objeto con el que estemos
trabajando.

Los objetos en Python pueden ser de distintos tipos:

• cadena de caracteres (string)


• booleanos (booleans)
• números enteros (integer)
• números decimales (float)
• listas (list)
Métodos
Por ejemplo, para los objetos tipo cadena de caracteres, tenemos métodos como :

• capitalize(), que convierte en mayúscula la primera letra de la cadena


• index(), que busca determinado carácter en la cadena y devuelve su posición
• split(), que divide la cadena según el separador que indiquemos y la convierte en un lista
• title(), que convierte el primer carácter de cada palabra en mayúsculas
• …

También hay métodos ya creados para otro tipo de objetos, como listas, diccionarios, tuplas,
sets o incluso ficheros. Si no nos sirve ninguno para nuestro objetivo, siempre podemos
crearlo nosotros mismos, como ocurre con las funciones.

Para acceder a los métodos y propiedades de un objeto, Python utiliza una sintaxis muy
simple: el nombre del objeto, seguido de punto y la propiedad o método al cuál se desea
acceder.
Métodos
Ejemplo: probar los métodos title() y count() sobre un string.

cadena = “Esta es una cadena de texto”

titulo = cadena.tittle()
print(titulo)

cantidad = cadena.count(“a”)
print(cantidad)
Métodos vs. funciones
¿Cuál es la diferencia entre métodos y funciones?.

La principal diferencia es que un método es parte de una clase, es decir, es parte de la


funcionalidad que le damos a un objeto. Por tanto, siempre va a estar asociado a un objeto.
Sin embargo, las funciones en Python, están definidas por si mismas y no pertenecen a
ninguna clase.

Al ser intrínsecos al objeto en sí, cada objeto tiene sus propios métodos. Incluso aunque se
llamen igual, pueden tener un significado distinto. Por ejemplo, el método index está
disponible para los objetos string y list. Sobre una cadena de caracteres, da el índice de la
letra en esa palabra, sobre una lista, da la posición de un elemento en una lista
Funciones
def NOMBRE(LISTA_DE_PARAMETROS):
SENTENCIAS
RETURN [EXPRESION]

• NOMBRE, es el nombre de la función.


• LISTA_DE_PARAMETROS, es la lista de parámetros que puede recibir una función.
• DOCSTRING_DE_FUNCION, es la cadena de caracteres usada para documentar la función.
• SENTENCIAS, es el bloque de sentencias en código fuente Python que realizar cierta
operación dada.
• RETURN, es la sentencia return en código Python.
• EXPRESION, es la expresión o variable que devuelve la sentencia return.

Ejemplo: def saludo(arg):


print "Hola", arg, "!"
saludo(“Oscar")
Hola Oscar !
Funciones
Argumentos y parámetros

Al definir una función los valores que recibe se denominan parámetros, pero durante la
llamada los valores que se envían se denominan argumentos.

Por posición

Cuando se envía argumentos a una función, estos se reciben por orden en los parámetros
definidos. Se dice por tanto que son argumentos por posición:

def resta(a, b):


return a - b

resta(30, 10)
20
Funciones
Argumentos y parámetros

Por nombre

Es posible evadir el orden de los parámetros si se indica durante la llamada que valor tiene
cada parámetro a partir de su nombre:

def resta(a, b):


return a - b

resta(b=30, a=10)
-20
Funciones
Argumentos y parámetros

Llamada sin argumentos

Al momento de llamar una función la cual tiene definidos unos parámetros, si no se incluyen
los argumentos correctamente provocará una excepción TypeError:

resta()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: resta() takes exactly 2 arguments (0 given)
Funciones
Parámetros por defecto
Para solucionar la excepción TypeError ejecutada al momento de la llamada a una función sin
argumentos, entonces se pueden asignar valores por defecto nulos a los parámetros, de esa
forma puede hacer una comprobación antes de ejecutar el código de la función:

def resta(a=None, b=None):


if a == None or b == None:
print "Error, debes enviar dos números a la función"
return
return a - b

resta(30, 10)
20
resta()
Error, debes enviar dos números a la función
Funciones
Argumentos indeterminados

En ocasiones no se conoce previamente cuantos elementos necesita enviar a una función. En


estos casos puede utilizar los parámetros indeterminados por posición y por nombre.

Por posición
Se crea una lista dinámica de argumentos, es decir, un tipo tupla, definiendo el parámetro
con un asterisco, para recibir los parámetros indeterminados por posición:

def indeterminados (*args):


for i in args:
print(i)

indeterminados (5,"Hola Oscar",[1,2,3,4,5])


5
Hola Oscar
[1, 2, 3, 4, 5]
Funciones
Por nombre
Para recibir un número indeterminado de parámetros por nombre (clave-valor o en inglés
keyword args), se debe crear un diccionario dinámico de argumentos definiendo el
parámetro con dos asteriscos:

def indeterminados (**kwargs):


print kwargs

indeterminados (n=5, c="Hola Oscar", l=[1,2,3,4,5])


{'c': 'Hola Plone', 'l': [1, 2, 3, 4, 5], 'n': 5}

Al recibirse como un diccionario, puede iterarlo y mostrar la clave y valor de cada argumento:

def indeterminados(**kwargs):
for kwarg in kwargs:
print kwarg, "=>", kwargs[kwarg]
Funciones
indeterminados (n=5, c="Hola Oscar", l=[1,2,3,4,5])
c => Hola Oscar
l => [1, 2, 3, 4, 5]
n => 5
Funciones
Por posición y nombre
Si se requiere aceptar ambos tipos de parámetros simultáneamente en una función,
entonces se debe crear ambas colecciones dinámicas. Primero los argumentos
indeterminados por valor y luego los cuales son por clave y valor:

def super_funcion(*args,**kwargs):
total = 0
for arg in args:
total += arg
print "sumatorio => ", total
for kwarg in kwargs:
print(kwarg), "=>", kwargs[kwarg]

super_funcion(50, -1, 1.56, 10, 20, 300, cms=“Oscar", edad=38)


sumatorio => 380.56
edad => 38
cms => Oscar
Los nombres args y kwargs no son obligatorios, pero se suelen utilizar por convención.
Funciones
Sentencia pass

Es una operación nula - cuando es ejecutada, no sucede nada. Eso es útil como un
contenedor cuando una sentencia es requerida sintácticamente, pero no necesita código
que ser ejecutado, por ejemplo:

# una función que no hace nada (aun)


def consultar_nombre_genero(letra_genero): pass
type(consultar_nombre_genero)
<type 'function’>
consultar_nombre_genero("M")
# una clase sin ningún método (aun)
class Persona: pass
macagua = Persona
type(macagua)
<type 'classobj’>
Funciones
Sentencia return

Las funciones pueden comunicarse con el exterior, al proceso principal del programa usando
la sentencia return. El proceso de comunicación con el exterior se hace devolviendo valores.
Ejemplo de función usando return:

def suma(numero1, numero2)


print (numero1 + numero2)

Esta función se llama de la siguiente forma:

suma(23,74)
97

Por defecto, las funciones retorna el valor None.


Funciones
Retorno múltiple

Es posible devolver valores múltiples separados por comas:

def prueba():
return “Oscar", 20, [1,2,3]

prueba()
(‘Oscar', 20, [1, 2, 3])

En este código los valores múltiples se tratan en conjunto como una tupla inmutable y se
pueden reasignar a distintas variables:
Funciones
def prueba():
return "CMS", 20, [1,2,3]

prueba()
('CMS', 20, [1, 2, 3])

cadena, numero, lista = prueba()


print cadena, type(cadena)
CMS <type 'str’>

print numero, type(numero)


20 <type 'int’>

print lista, type(lista)


[1, 2, 3] <type 'list’>
Funciones y Métodos
Ejercicios propuestos

1. Elabore un programa en Python 3 que incluya la función llamada enteros(texto) con la


cual se validará la entrada de un número entero positivo.

2. Elabore un programa en Python 3 que incluya la función llamada area_circulo(radio) que


devuelva el área de un círculo a partir de un radio. Calcule el área de un círculo de 5 de radio.

3. Elabore un programa en Python 3 que incluya la función llamada relacion(a, b) que a


partir de dos números cumpla lo siguiente:
• Si el primer número es mayor que el segundo, debe devolver 1.
• Si el primer número es menor que el segundo, debe devolver -1.
• Si ambos números son iguales, debe devolver un 0.
Compruebe la relación entre los números: '5 y 10', '10 y 5' y '5 y 5'.

También podría gustarte