Funciones
Una función es un bloque de código que se piensa de manera que se pueda reutilizar muchas veces mas. Las funciones son la base de la programación modular
Definir una función en Python 3
- Se comienza por la palabra reservada def seguida por el nombre de la funcion y entre parentecis los argumentos (si tiene) separados por comas (si aplica).
- La primera parte del bloque se sugiere que sea la ayuda de la función, entre comillas dobles. Esto es una descripción breve de que es lo que hace la función, y de los parámetros que recibe.
- No se debe de olvidar la indentación y los dos puntos luego del nombre y los parámetros.
- El argumento return sirve para retornar un valor al programa que llama a la función, y es opcional(retur None).
- Ejemplo:
def printstr( str ):
"Imprime la cadena de caracteres que se le pase"
print (str)
return
Llamando una función en python 3
Cuando se define la función, se le da un nombre, se le asignan los parámetros que va a usar, y se estructura su funcionamiento. En el momento en que se llama dicha función dentro del código es que ésta se ejecuta.
- Ejemplo:
# La función se define acá
def Multip( x=0,y=0 ):
"""Se le pasan dos argumentos numéricos, x e y; y la función devuelve su producto y=0 y x=0 por defecto.
Ejemplo: Multip(1,3)"""
return (x*y)
# En este punto se llama a la función
Multip(3,4)
Paso por referencia
Todas las variables en python se pasan por referencia, luego si una variable se pone como argumento en una función, ésta podrá modificar el valor de dicha variable de manera interna.
- Ejemplo:
# Definición de la función
def Duplica( lista ):
"Función que duplica los valores de una lista dada"
print ("Valores fuera de la función ", lista)
for i in range(len(lista))::
lista[i]=2*lista[i]
print ("Valores dentro de la función: ", lista)
return
# Ahora se llama a la función Duplica
mi_lista = [10,20,30]
Duplica( mi_lista )
print ("Valores fuera de la función: ", mi_lista)
Argumentos de las funciones
Se construir funciones con diferentes tipos de argumentos.
- Argumentos obligatorios.
- Argumentos keyword.
- Argumentos por defecto.
- Argumentos de longitud variable.
Argumentos obligatorios
Son los argumentos que deben de ser pasados a la función en número y orden estricto, porque de otro modo saldrá un error de sintaxis.
- Ejemplo:
def Cuenta( str ):
"Cuenta el número de letras que tiene una cadena de caracteres y las imprime en orden"
print ("Tamaño: ",len(str))
n=1
for i in str:
print(n,": ",i)
return
# ahora se llama la función
Cuenta('Camilo')
Cuenta()
Al ejecutar este código se tiene la siguiente salidaCuenta()
Traceback (most recent call last):
File "<ipython-input-5-4da5406c0b55>", line 1, in <module>
Cuenta()
TypeError: Cuenta() missing 1 required positional argument: 'str'
Argumentos llave
Estos argumentos están relacionados con la llamada de la función. Esto permite usar algunos de los argumentos, y ponerlos en orden diferente del de la definición.
- Ejemplo:
# Definición de la función
def printinfo( nombre, edad ):
"Imprime lo que se le pase"
print ("Nombre: ", nombre)
print ("Age ", edad)
return;
# Se llama la función, con el orden de las entradas trocadas, pero bien identificadas con la llave.
printinfo( edad=32, nombre="camilo" )
Argumentos por defecto
Son argumentos que tienen un valor asignado desde la definición de la función
- Ejemplo:
# Definición de la función
def printinfo( nombre, edad, *sexo ):
"Imprime lo que se le pase"
print ("Nombre: ", nombre)
print ("Age ", edad)
return;
# Se llama la función
printinfo( edad=32, nombre="camilo" )
Argumentos de longitud variable
Hay ocasiones donde una función puede necesitar mas argumentos de los que se declaran en la definición.
- Ejemplo:
# Definición de la función
def Suma( arg1=0, arg2=0 , *vartuple ):
"Suma todas los argumentos"
suma=arg1 + arg2
for var in vartuple:
suma=suma+var
return suma
# Aqui se usa la función Suma
Suma( 10, 12 )
Suma( 70, 60, 50 )
La palabra reservada return
Esta palabra se usa para terminar una función, de forma opcional se pude pasar una expresión al programa que hace el llamado (return Expresión)
Alcance (scope) de las variables
No todas las variables pueden utilizar (leer, escribir), desde cualquier punto del programa. El alcance de las variables es desde donde o en donde es accesible por el programa, y depende de en que punto de éste fue declarada.
Dependiendo del alcance se puede clasificar las variables (de python) en dos tipos:
- Globales: Son las que se pueden ver en el cuerpo del programa o script.
- Locales:Son las variables definidas dentro de una función, y a menos que se especifique lo contrario, no pueden ser vistas (leída o escrita) desde fuera de dicha función.
Ejemplo:# Definición de la función
def sum( arg1, arg2 ):
# Suma los argumentos arg1 y arg2, imprime el valor de total(local), y entrega total."
total = arg1 + arg2
print ("Total Local : ", total)
return total
#Llamado de la función
total=4
print('total Global:', total)
sum(3,4)
print('total Global:', total)
Ejercicios:
|