Você está na página 1de 21

FUNDAMENTOS DE

PROGRAMACIÓN

UNIDAD 6:
FUNCIONES

NO  UTILIZAR  COMO  MATERIAL  DE  ESTUDIO  


CONTROL DE LECTURA P9
Ø   Crear  una  función  llamada  “MaxLista”,  el  cual  recibirá  una  
lista  de  números,  imprimirá  los  items  de  dicha  lista  y  
devolverá  el  número  máximo  de  dicha  lista.  
Ø Crear  una  función  llamada  TamanioString  que  reciba  dos  
palabras  y  devuelva  True  si  ambas  palabras  son  del  mismo  
tamaño,  caso  contrario  que  devuelva  False.  
def  MaxLista  (  lista  ):   def  TamanioString(palabra1,  palabra2):  
       print  (  lista  )    if  len(palabra1)  ==  len(palabra2):  
       return  max(  lista  )            return  True  
 return  False  

NO  UTILIZAR  COMO  MATERIAL  DE  ESTUDIO  


CONTENIDO
6.1 Definición, implementación y uso de
funciones
6.2 Paso de parámteros y retorno de valores
6.3 Tipos de funciones
6.4 Alcance de Variables
6.5 Módulos

NO  UTILIZAR  COMO  MATERIAL  DE  ESTUDIO  


TIPOS DE FUNCIONES
•  Hay  tres  Vpos  de  funciones:   ² Funciones  que  reciben  
² Funciones  que  no  retornan  ningún  valor  se   argumentos  y  parámetros  
conocen  como  procedimientos.   def  pregunta_Si_No(pregunta):  
respuesta  =  “Nada”  
def  Mostrar(mensaje):   while  respuesta  not  in  (“Si”,  “No”):  
 print(mensaje)    respuesta  =  input(pregunta).lower()  
return  respuesta  

² Funciones  que  retornan  valores  lógicos  (True  


o  False)  se  denominan  funciones  predicado.     ² Funciones  que  devuelven  mas  
def  validarMayor(a,b):   de  un  parámetro  
if  a>b:   def  mayor_menor(lista):  
 return  True   return  max(lista),  min(lista)  
return  False  
De  regreso  se  recibe  una  tupla  con  los  valores.  

NO  UTILIZAR  COMO  MATERIAL  DE  ESTUDIO  


PARÁMETROS PREDETERMINADOS
(POR DEFECTO)

def  cumpleaños(nombre,edad=23)  
 

El  segundo  parámetro  se  


define  por  defecto  

Al  llamarla  con  cumpleaños(“Ginger”,  20)  se  asigna  “Ginger”  al  parámetro  nombre  y  20  al  parámetro  edad  
Al  llamarla  con  cumpleaños  (“Ginger”)  se  asigna  “Ginger”  al  parámetro  nombre  y  23  al  parámetro  edad  

NO  UTILIZAR  COMO  MATERIAL  DE  ESTUDIO  


PARÁMETROS PREDETERMINADOS
(POR DEFECTO)

NO  UTILIZAR  COMO  MATERIAL  DE  ESTUDIO  


PARÁMETROS
KEYWORD = VALOR
  Los  argumentos  son  enviados  a  la  función  empleando  el  nombre  del  parámetro  con  el  que  fue  
definido.  
  El  orden  en  el  cual  los  argumentos  son  enviados  a  través  de  la  función  no  es  importante,  Python  
idenVfica  a  que  parámetro  pertenece  empleando  el  nombre  del  parámetro.  

cumpleaños(                  nombre  
                                                                             =  
                                                   “Ginger”  
                                             )  

Parámetro   Argumento  

NO  UTILIZAR  COMO  MATERIAL  DE  ESTUDIO  


PARÁMETROS
KEYWORD = VALOR
Ejemplo:  

Puedo  llamar  a  la  función  así:  


   
def  cumpleaños(nombre,  edad):   cumpleaños(edad=23,  nombre=“Ginger”)  
     print  ("Nombre:  ",  nombre)    
     print  ("Edad:  ",  edad)   Note  que  dado  que  especifiqué  el  nombre  del  
parámetro,  no  me  preocupo  por  el  orden  de  los  
argumentos.  

NO  UTILIZAR  COMO  MATERIAL  DE  ESTUDIO  


PARÁMETROS
PREDETERMINADOS
  Los  parámetros  posicionales  obVenen  los  valores  enviados  en  orden,  a  menos  que  se  le  
especifique  los  contrario  a  la  función.  
  Se  le  puede  indicar  a  la  función  que  asigne  ciertos  valores  a  parámetros  específicos,  sin  importar  
el  orden  con  los  parámetros  claves.  

  Usando  valores  predeterminados  para  parámetros:  

NO  UTILIZAR  COMO  MATERIAL  DE  ESTUDIO  


PARÁMETROS *args
  El  parámetro  *args  significa  que  estoy  ricibiendo  dentro  de  la  función  una  lista  de  argumentos.  

#  funciones.py   #  programa  principal   1  


def  funcion(*args):   from  funciones.py  import  *   2  
for  i  in  args:     3  
 print(i)   funcion(1,  2,  3)  

  Note  que  no  es  necesario  crear  una  lista  para  enviar  los  argumentos  a  la  función.  

#  funciones.py   #  programa  principal   Hola  Ginger  


def  funcion(nombre,  *args):   from  funciones.py  import  *   1  
print(“Hola”,  nombre)     2  
for  i  in  args:   funcion(“Ginger”,  1,  2,  3)   3  
 print(i)  

NO  UTILIZAR  COMO  MATERIAL  DE  ESTUDIO  


PASO DE PARÁMETROS
POR VALOR
  Los  datos  de  Vpo  primiVvo  transmiVdas  por  valor.  
◦  Esto  significa  que  las  funciones  usan  una  copia  del  parámetro  ingresado  
◦  De  esta  manera,  aunque  el  contenido  de  la  variable  sea  cambiado  dentro  de  la  función  ,  no  
modifica  el  valor  de  la  variable  que  ingresó  como  parámetro  

>>>  from  fun  import  *:  


>>>  s=5  
def  fun(x):  
>>>  y=fun(s)  
 x=x**2   >>>  print  (y)  
 y=2*x+1   51  
 return  y   >>>  print  (s)  
5    

La  función  modifica  el   La  variable  s  no  ha  sido  modificada  si  


parámetro  x  que  recibe  el  dato   la  vemos  en  el  programa  principal  

NO  UTILIZAR  COMO  MATERIAL  DE  ESTUDIO  


PASO DE PARÁMETROS
POR REFERENCIA
  UVlizado  con  parámetros  de  Vpo  estructurado  (listas,  arreglos)  
  El  parámetro  de  la  función  uVliza  la  misma  dirección  de  la  variable  con  la  que  se  
llama  la  función.  
◦  Si  la  función  modifica  componentes  del  parámetro,  los  cambios  afectan  a  la  variable  .  

>>>  from  funp  import  *:  


>>>  s=[8,3,9,4,7]  
def  funp  (t):   >>>  r=funp(s)  
 r=max(t)   >>>  print  (r)  
 t[0]=  -­‐1   9  
>>>  print  (s)  
 return  r   [-­‐1,  3,  9,  4,  7]    
La  función  encuentra  el  mayor  valor  del  parámetro  t  
s  ha  sido  modificada  
La  función  modifica  un  elemento  del  parámetro  t  

NO  UTILIZAR  COMO  MATERIAL  DE  ESTUDIO  


PASO DE PARÁMETROS
POR REFERENCIA

Si  se  necesita  evitar  este  efecto  de  la  modificación  del  


valor,  dentro  de  la  función  debe  crearse  una  copia  
explícita  del  parámetro.  

def  funcion(lista):  
 lista2  =  lista.copy()  

NO  UTILIZAR  COMO  MATERIAL  DE  ESTUDIO  


ALCANCE DE VARIABLES
•  El  alcance  representa  los  diferentes  partes  de  un  
programa  que  están  separadas  entre  sí.  
•  Cada  función  define  su  propio  alcance.  

NO  UTILIZAR  COMO  MATERIAL  DE  ESTUDIO  


ALCANCE DE
VARIABLES

NO  UTILIZAR  COMO  MATERIAL  DE  ESTUDIO  


ALCANCE DE VARIABLES
•  En  el  ejemplo  anterior  analice:  
•  Las  variables  globales  lo  hacen  confuso  a  un  
programa.  Se  debe  minimizar  su  uso.  
•  Por  el  contrario,  las  globales  constantes  (variables  
globales  tratadas  como  constantes),  hacen  al  
programa  menos  confuso.  

NO  UTILIZAR  COMO  MATERIAL  DE  ESTUDIO  


MÓDULOS
•  Un  modulo  es  simplemente  un  texto  que  conVene  
código  fuente  en  Python.  El  principal  requerimiento  es  
que  el  nombre  del  archivo  termine  con  .py  
from  fvunciones.py  
from   alidaciones.py  
#  funciones.py  
def  funcion1():   #  from   estudiantes.py  
Programa   principal  
  from   p rofesores.py  
 #instrucciones   #  Programa  principal  

validaciones.py   estudiantes.py   profesores.py  

NO  UTILIZAR  COMO  MATERIAL  DE  ESTUDIO  


USO DE MÓDULOS
•     Se  puede  uVlizar  la  construcción  from-­‐import  para  poder  usar  las  
funciones  contenidas  en  un  módulo.  

•     Aunque  se  considera  una  mala  prácVca,  también  es  posible  


importar  todos  las  funciones  del  módulo.  

NO  UTILIZAR  COMO  MATERIAL  DE  ESTUDIO  


EJERCICIOS
Ø   Escriba  una  función  llamada  SumaDigitos  que  reciba  un  
string  de  3  dígitos  y  que  devuelva  la  suma  de  dichos  dígitos.  
num  =  input(“Ingrese  un  número  de  3  dígitos:  ”)  
    total  =  sumaDigitos(num)  

Ø Escriba  una  función  llamada  Iguales  que  reciba  dos  strings  y  


devuelva  los  caracteres  que  son  iguales  entre  ambos  strings.  
Ø Escriba  una  función  que  se  llama  Ordenada  que  recibe  una  
lista  y  devuelve  True  si  está  ordenada  o  False  si  no  lo  está.  

NO  UTILIZAR  COMO  MATERIAL  DE  ESTUDIO  


EJERCICIO
Escriba  un  programa  que  llene  una  matriz  de  3  x  4  con  números  aleatorios  entre  
20  a  60.  Calcular  el  promedio  de  la  matriz,  determinar  cuántos  valores  son  
mayores  que  el  promedio.  Visualizar  en  la  pantalla  los  datos  en  el  siguiente  
orden:  
²  Promedio  
²  CanVdad  de  números  mayores  que  el  promedio  
²  Lista  de  los  valores  mayores  que  el  promedio  
 
Para  ello,  ud  deberá  crear  las  funciones:  
²  generarMatriz()  
²  promedioMatriz(matriz)  
²  maximosMatriz(matriz)  

NO  UTILIZAR  COMO  MATERIAL  DE  ESTUDIO  


PRÓXIMA SESIÓN
Ø   Lección  de  Funciones.  
Ø   Control  de  Lectura.  Van  Rossum,  F.  (2015).  El  Tutorial  de  
Python.  Traducido  y  empaquetado  por  la  comunidad  de  
Python  ArgenVna.  Página  31-­‐33  (Tuplas  y  Conjuntos)  

NO  UTILIZAR  COMO  MATERIAL  DE  ESTUDIO  

Você também pode gostar