SlideShare una empresa de Scribd logo
1 de 24
PYTHON Lección No. 5 M.Sc. Victor Pando Beltrán [email_address] http://www.civil-uancv.pe/aulavirtual
AGENDA ,[object Object],[object Object],[object Object]
RECOMENDACIONES ,[object Object],[object Object],[object Object],[object Object]
Asignaciones múltiples   (1/6) Python permite asignaciones múltiples:  x1,x2,x3=1,2,3  print x1 # 1  print x2 # 2  print x3 # 3  Para entenderlo mejor podemos también utilizar esta sintaxis:  x1,x2,x3=(1,2,3)  print x1 # 1  print x2 # 2  print x3 # 3
Asignaciones múltiples (2/6) Es decir lo que estamos haciendo inicializar cada una de las variables de la izquierda con las componentes homólogas (de la misma posición) de la tupla. Esta característica es útil si tenemos que recuperar por ejemplo de una lista que contiene tuplas de dos elementos que representan puntos en el plano (x,y): puntos=[(10,2),(4,2),(9,3)]  for x,y in puntos:  print 'Coordenada x:%d y:%d' % (x,y)
Asignaciones múltiples  (3/6) Cada vuelta del for se almacena en x e y los valores de la tupla a procesar. Otra aplicación muy útil es si queremos intercambiar el valor de dos variables la forma más simple es: x=10  y=20  print x # 10  print y # 20  x,y = y,x  print x # 20  print y # 10
Asignaciones múltiples  (4/6) En una asignación pueden intervenir valores de distinto tipo (enteros, reales, string etc.):  nombre,edad,sueldo=('juan',32,1500.30)  print 'Nombre:%s Edad:%d Sueldo%10.2f' % (nombre,edad,sueldo)  # Nombre:juan Edad:32 Sueldo 1500.30
Asignaciones múltiples  (5/6) Podemos con esto hacer que una función retorne más de un dato (por lo menos  en apariencia), esto lo logramos retornando una tupla:  def sumadiferencia(x1,x2):  suma=x1+x2  diferencia=x1-x2  return (suma,diferencia)  su,di=sumadiferencia(10,4)  print su # 14  print di # 6
Asignaciones múltiples  (6/6) Como vemos llamamos a una función y le asignamos el valor devuelto a dos variables. Si queremos inicializar tres variables con el mismo valor la sintaxis que podemos utilizar es: x1=x2=x3=10  print x1 # 10  print x2 # 10  print x3 # 10
Problema resuelto En una lista se almacenan tuplas con el nombre de una persona y su edad.  Mostrar el nombre de la persona de mayor edad.  personas=[('juan',22),('ana',40),('carlos',15)]  may=-1  for nombre,edad in personas:  if edad>may:  nom=nombre  may=edad  print '%s tiene la edad mayor y es de %d' % (nom,may)
Funciones con parámetros por defecto   (1/5) Como habíamos visto una función es una estructura de programación que  agrupa un conjunto de instrucciones y resuelve un problema particular. Una  función puede tener parámetros, los mismos almacenan los valores que se le  pasan cuando la llamamos. En algunos casos si queremos que la función sea mas flexible podemos definir  parámetros con valores por defecto. Esto nos permite llamar a la función  pudiendo o no pasar datos a dichos parámetros. Veamos con un ejemplo este concepto, vamos a desarrollar una función que  reciba un dato a imprimir, con la posibilidad de indicarle el color de fuente y el  color de fondo, en caso de no indicarle dichos valores la función muestra el  dato con color negro y fondo blanco.
Funciones con parámetros por defecto  (2/5) def mostrartitulo(dato,colorletra='#000',colorfondo='#fff'):  print '<h1 style=&quot;color:'+colorletra+';background-color:'+colorfondo+'&quot;>'+dato+'</h1>'  mostrartitulo('Primer titulo')  mostrartitulo('Segundo titulo','#f00')  mostrartitulo('Tercer titulo','#f00','#000')  Como podemos ver para indicar a Python que un parámetro es por defecto  debemos utilizar el operador de asignación en la declaración de la cabecera de  la función junto al valor que tomará dicho parámetro en caso de no pasarlo desde  donde la llamamos:  def mostrartitulo(dato,colorletra='#000',colorfondo='#fff'):
Funciones con parámetros por defecto  (3/5) Cuando llamamos la función mostrartitulo podemos hacerlo de diferentes maneras:  mostrartitulo('Primer titulo')  mostrartitulo('Segundo titulo','#f00')  mostrartitulo('Tercer titulo','#f00','#000')  La primera llamada es pasando un único dato, es decir solo el título que debe  mostrar, en este caso el segundo y tercer parámetro toman como valor el  indicado en el declaración:  colorletra='#000',colorfondo='#fff'
Funciones con parámetros por defecto  (4/5) Podemos llamar a la función mostrartitulo pasando el primer parámetro y el  segundo, lo que hace que el tercer parámetro se inicialice con el indicado en la  declaración de la función:  mostrartitulo('Segundo titulo','#f00')  En el ejemplo la tercera llamada a la función se hace pasando tres parámetros:  mostrartitulo('Tercer titulo','#f00','#000')
Funciones con parámetros por defecto  (5/5) Como podemos ver los parámetros por defecto nos permiten implementar  funciones más generales, con esto podemos hacer que las funciones sean útiles  para mayor cantidad de situaciones. Que pasa si queremos llamar la función indicando el primer y último parámetro,  esto solo se puede hacer si al llamar la función indicamos que dato se le pasa a  cada parámetro: def mostrartitulo(dato,colorletra='#000',colorfondo='#fff'):  print '<h1 style=&quot;color:'+colorletra+';background-color:'+colorfondo+'&quot;>'+dato+'</h1>'  mostrartitulo(dato='Primer titulo',colorfondo='#00f'  Si bien se hace más engorroso la llamada a la función al tener que indicar el nombre  de cada parámetro junto al valor, nos trae como beneficio que sea aún más flexible.
Problema resuelto Confeccionar una función que reciba un dato a imprimir, con la posibilidad de  indicarle el color de fuente y el color de fondo, en caso de no indicarle dichos  valores la función muestra el dato con color negro y fondo blanco.  def mostrartitulo(dato,colorletra='#000',colorfondo='#fff'):  print '<h1 style=&quot;color:'+colorletra+';background-color:'+colorfondo+'&quot;>'+dato+'</h1>'  mostrartitulo('Primer titulo')  mostrartitulo('Segundo titulo','#f00')  mostrartitulo('Tercer titulo','#f00','#000')
Problema Propuesto Confeccionar una función que reciba entre 2 y 5 enteros. La misma nos debe retornar la suma de dichos valores.  def sumar(v1,v2,v3=0,v4=0,v5=0): s=v1+v2+v3+v4+v5 return s print sumar(5,6) print sumar(1,2,3) x=sumar(1,2,3,4,5) print x
Funciones con una cantidad variable de parámetros   (1/3) Otra posibilidad en la declaración de una función en Python es la definición de  una cantidad variable de parámetros. Para definir una cantidad variante de parámetros debemos antecederle el caracter  asterísco (*) al último parámetro de la función. Supongamos que necesitemos implementar una función que le enviemos una  serie de enteros y nos retorne la suma de todos ellos (como mínimo le enviamos  2 y no hay un máximo de valores): def sumar(x1,x2,*xn): s=x1+x2 for valor in xn: s=s+valor return s print sumar(1,2) print sumar(1,2,3,4) print sumar(1,2,3,4,5,6,7,8,9,10)
Funciones con una cantidad variable de parámetros  (2/3) Lo que en realidad el lenguaje Python hace es una tupla con todos los valores de  los parámetros a partir del tercero. Luego nuestro algoritmo debe recorrer la tupla para procesar los elementos  propiamente dichos, en nuestro caso con un for in y los sumamos junto al primer  y segundo parámetro. Luego cuando hacemos la llamada a la función print sumar(1,2)
Funciones con una cantidad variable de parámetros  (3/3) Si pasamos solo dos parámetros la tupla se inicializa vacía, por lo que el for in  no ejecuta el bloque contenido. Si llamamos la función con 10 parámetros: print sumar(1,2,3,4,5,6,7,8,9,10)  Luego la tupla se crea con 7 elementos.
Problema resuelto Implementar una función que le enviemos una serie de enteros y nos retorne la  suma de todos ellos (como mínimo le enviamos 2 y no hay un máximo de valores):  def sumar(x1,x2,*xn): s=x1+x2 for valor in xn: s=s+valor return s print sumar(1,2) print sumar(1,2,3,4) print sumar(1,2,3,4,5,6,7,8,9,10)
Problema Propuesto Confeccionar una función que le envíe una serie de edades y me retorne la  cantidad que son mayores a 18 (como mínimo se envía un entero a la función)  def cantidadmayor18(ed1,*edades): cant=0 if ed1>18: cant=cant+1 for e in edades: if e>18: cant=cant+1 return cant print 'Cantidad de personas mayores a 18:' cant=cantidadmayor18(4,56,14,67,32,21) print cant
BIBLIOGRAFÍA ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
 

Más contenido relacionado

La actualidad más candente

Guiaunidad iii
Guiaunidad iiiGuiaunidad iii
Guiaunidad iii
mayral
 
Problemas propuestos clase 0-1
Problemas propuestos  clase 0-1Problemas propuestos  clase 0-1
Problemas propuestos clase 0-1
Jefferson Prieto
 
Ejercicio propuesto 2
Ejercicio propuesto 2Ejercicio propuesto 2
Ejercicio propuesto 2
jfranco_123
 
02 pythonenpocospasosejercicios.ipynb colaboratory
02 pythonenpocospasosejercicios.ipynb   colaboratory02 pythonenpocospasosejercicios.ipynb   colaboratory
02 pythonenpocospasosejercicios.ipynb colaboratory
Lesli Molina Soto
 

La actualidad más candente (20)

Ejercicios con Python parte 05
Ejercicios con Python parte 05Ejercicios con Python parte 05
Ejercicios con Python parte 05
 
Ejercicios Python parte 4
Ejercicios Python parte 4Ejercicios Python parte 4
Ejercicios Python parte 4
 
Maple v comandos
Maple v comandosMaple v comandos
Maple v comandos
 
Python (ejercicios)
Python (ejercicios)Python (ejercicios)
Python (ejercicios)
 
01 el lenguaje Python
01 el lenguaje Python01 el lenguaje Python
01 el lenguaje Python
 
Descubriendo scala
Descubriendo scalaDescubriendo scala
Descubriendo scala
 
41 Php. Bucles For
41 Php. Bucles For41 Php. Bucles For
41 Php. Bucles For
 
De Cero A Python En 45 Min
De Cero A Python En 45 MinDe Cero A Python En 45 Min
De Cero A Python En 45 Min
 
Curso de Python
Curso de PythonCurso de Python
Curso de Python
 
Ejercicios Python Parte 1
Ejercicios Python Parte 1Ejercicios Python Parte 1
Ejercicios Python Parte 1
 
Guiaunidad iii
Guiaunidad iiiGuiaunidad iii
Guiaunidad iii
 
Problemas propuestos clase 0-1
Problemas propuestos  clase 0-1Problemas propuestos  clase 0-1
Problemas propuestos clase 0-1
 
Presentacion Visual Basic - SAIA B
Presentacion Visual Basic - SAIA BPresentacion Visual Basic - SAIA B
Presentacion Visual Basic - SAIA B
 
Apuntadores y direccionamiento
Apuntadores y direccionamientoApuntadores y direccionamiento
Apuntadores y direccionamiento
 
Ejercicio propuesto 2
Ejercicio propuesto 2Ejercicio propuesto 2
Ejercicio propuesto 2
 
Manual.es
Manual.esManual.es
Manual.es
 
02 pythonenpocospasosejercicios.ipynb colaboratory
02 pythonenpocospasosejercicios.ipynb   colaboratory02 pythonenpocospasosejercicios.ipynb   colaboratory
02 pythonenpocospasosejercicios.ipynb colaboratory
 
Clase 6
Clase 6Clase 6
Clase 6
 
Clase 1 - Python
Clase 1 - PythonClase 1 - Python
Clase 1 - Python
 
Fundamentos de programación librería string C++
Fundamentos de programación librería string C++Fundamentos de programación librería string C++
Fundamentos de programación librería string C++
 

Similar a Python05

Clase 9 - Funciones de Python para programacion
Clase 9 - Funciones de Python para programacionClase 9 - Funciones de Python para programacion
Clase 9 - Funciones de Python para programacion
Carlos598286
 
Ejercicios Python - con soluciones.pdf
Ejercicios Python - con soluciones.pdfEjercicios Python - con soluciones.pdf
Ejercicios Python - con soluciones.pdf
CriszehroReviewer
 
Tutorial sencillo manejo_de_pseint_y_dfd
Tutorial sencillo manejo_de_pseint_y_dfdTutorial sencillo manejo_de_pseint_y_dfd
Tutorial sencillo manejo_de_pseint_y_dfd
jvtoro
 
adalsus Prep-Course - soyHenry mis apuntes JS.pdf
adalsus Prep-Course - soyHenry mis apuntes JS.pdfadalsus Prep-Course - soyHenry mis apuntes JS.pdf
adalsus Prep-Course - soyHenry mis apuntes JS.pdf
adal57
 
PresentacióN 4
PresentacióN 4PresentacióN 4
PresentacióN 4
pokerpc
 

Similar a Python05 (20)

Taller listasyeasygui
Taller listasyeasyguiTaller listasyeasygui
Taller listasyeasygui
 
Clase 9 - Funciones de Python para programacion
Clase 9 - Funciones de Python para programacionClase 9 - Funciones de Python para programacion
Clase 9 - Funciones de Python para programacion
 
Fundamentos de programación.pptx
Fundamentos de programación.pptxFundamentos de programación.pptx
Fundamentos de programación.pptx
 
Ejercicios Python - con soluciones.pdf
Ejercicios Python - con soluciones.pdfEjercicios Python - con soluciones.pdf
Ejercicios Python - con soluciones.pdf
 
Tutorial sencillo manejo_de_pseint_y_dfd
Tutorial sencillo manejo_de_pseint_y_dfdTutorial sencillo manejo_de_pseint_y_dfd
Tutorial sencillo manejo_de_pseint_y_dfd
 
Clase 7
Clase 7Clase 7
Clase 7
 
Sesion1_Ciencia_de_Datos-Introduccion a Pithon.pdf
Sesion1_Ciencia_de_Datos-Introduccion a Pithon.pdfSesion1_Ciencia_de_Datos-Introduccion a Pithon.pdf
Sesion1_Ciencia_de_Datos-Introduccion a Pithon.pdf
 
Suma de imagenes
Suma de imagenesSuma de imagenes
Suma de imagenes
 
Los lenguajes
Los lenguajesLos lenguajes
Los lenguajes
 
Funciones con vectores c++
Funciones con vectores c++Funciones con vectores c++
Funciones con vectores c++
 
Tutorial bd y php
Tutorial bd y phpTutorial bd y php
Tutorial bd y php
 
F unciones exel
F unciones exelF unciones exel
F unciones exel
 
EXCEL ESTADISTICA
EXCEL ESTADISTICAEXCEL ESTADISTICA
EXCEL ESTADISTICA
 
Curso de Macros Excel
Curso de Macros ExcelCurso de Macros Excel
Curso de Macros Excel
 
adalsus Prep-Course - soyHenry mis apuntes JS.pdf
adalsus Prep-Course - soyHenry mis apuntes JS.pdfadalsus Prep-Course - soyHenry mis apuntes JS.pdf
adalsus Prep-Course - soyHenry mis apuntes JS.pdf
 
Argentina Programa Apendix parte 2.pdf
Argentina Programa Apendix parte 2.pdfArgentina Programa Apendix parte 2.pdf
Argentina Programa Apendix parte 2.pdf
 
Comandos de Raptor,C# y Java
Comandos de Raptor,C# y JavaComandos de Raptor,C# y Java
Comandos de Raptor,C# y Java
 
Práctica web de la sesión 3.pptx
Práctica web de la sesión 3.pptxPráctica web de la sesión 3.pptx
Práctica web de la sesión 3.pptx
 
Exposicion iac
Exposicion iacExposicion iac
Exposicion iac
 
PresentacióN 4
PresentacióN 4PresentacióN 4
PresentacióN 4
 

Más de Victor Pando

Análisis del Sector Metalmecánica
Análisis del Sector MetalmecánicaAnálisis del Sector Metalmecánica
Análisis del Sector Metalmecánica
Victor Pando
 

Más de Victor Pando (11)

Análisis del Sector Metalmecánica
Análisis del Sector MetalmecánicaAnálisis del Sector Metalmecánica
Análisis del Sector Metalmecánica
 
Linux02
Linux02Linux02
Linux02
 
Python06
Python06Python06
Python06
 
Video y Multimedia
Video y MultimediaVideo y Multimedia
Video y Multimedia
 
Panorama General de Open Office 3.0
Panorama General de Open Office 3.0Panorama General de Open Office 3.0
Panorama General de Open Office 3.0
 
Curso Básico de Windows XP
Curso Básico de Windows XPCurso Básico de Windows XP
Curso Básico de Windows XP
 
Tecnología Bluetooth
Tecnología BluetoothTecnología Bluetooth
Tecnología Bluetooth
 
Redes WiFi 821.11 a vs. 802.11b
Redes WiFi 821.11 a vs. 802.11bRedes WiFi 821.11 a vs. 802.11b
Redes WiFi 821.11 a vs. 802.11b
 
Administración de Sistemas de Información
Administración de Sistemas de InformaciónAdministración de Sistemas de Información
Administración de Sistemas de Información
 
Introducción al WAP
Introducción al WAPIntroducción al WAP
Introducción al WAP
 
Estado del Arte de Hardware y Software para Ingeniería Civil
Estado del Arte de Hardware y Software para Ingeniería CivilEstado del Arte de Hardware y Software para Ingeniería Civil
Estado del Arte de Hardware y Software para Ingeniería Civil
 

Último

6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
Wilian24
 

Último (20)

animalesdelaproincia de beunos aires.pdf
animalesdelaproincia de beunos aires.pdfanimalesdelaproincia de beunos aires.pdf
animalesdelaproincia de beunos aires.pdf
 
PP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomasPP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomas
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
PLAN LECTOR 2024 integrado nivel inicial-miercoles 10.pptx
PLAN LECTOR 2024  integrado nivel inicial-miercoles 10.pptxPLAN LECTOR 2024  integrado nivel inicial-miercoles 10.pptx
PLAN LECTOR 2024 integrado nivel inicial-miercoles 10.pptx
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración Ambiental
 
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
La Evaluacion Formativa SM6 Ccesa007.pdf
La Evaluacion Formativa SM6  Ccesa007.pdfLa Evaluacion Formativa SM6  Ccesa007.pdf
La Evaluacion Formativa SM6 Ccesa007.pdf
 
Lecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigosLecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigos
 
Ensayo Paes competencia matematicas 2 Preuniversitario
Ensayo Paes competencia matematicas 2 PreuniversitarioEnsayo Paes competencia matematicas 2 Preuniversitario
Ensayo Paes competencia matematicas 2 Preuniversitario
 
AEC2. Egipto Antiguo. Adivina, Adivinanza.pptx
AEC2. Egipto Antiguo. Adivina, Adivinanza.pptxAEC2. Egipto Antiguo. Adivina, Adivinanza.pptx
AEC2. Egipto Antiguo. Adivina, Adivinanza.pptx
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
prostitución en España: una mirada integral!
prostitución en España: una mirada integral!prostitución en España: una mirada integral!
prostitución en España: una mirada integral!
 
Código Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de VenezuelaCódigo Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de Venezuela
 
Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptx
 

Python05

  • 1. PYTHON Lección No. 5 M.Sc. Victor Pando Beltrán [email_address] http://www.civil-uancv.pe/aulavirtual
  • 2.
  • 3.
  • 4. Asignaciones múltiples (1/6) Python permite asignaciones múltiples: x1,x2,x3=1,2,3 print x1 # 1 print x2 # 2 print x3 # 3 Para entenderlo mejor podemos también utilizar esta sintaxis: x1,x2,x3=(1,2,3) print x1 # 1 print x2 # 2 print x3 # 3
  • 5. Asignaciones múltiples (2/6) Es decir lo que estamos haciendo inicializar cada una de las variables de la izquierda con las componentes homólogas (de la misma posición) de la tupla. Esta característica es útil si tenemos que recuperar por ejemplo de una lista que contiene tuplas de dos elementos que representan puntos en el plano (x,y): puntos=[(10,2),(4,2),(9,3)] for x,y in puntos: print 'Coordenada x:%d y:%d' % (x,y)
  • 6. Asignaciones múltiples (3/6) Cada vuelta del for se almacena en x e y los valores de la tupla a procesar. Otra aplicación muy útil es si queremos intercambiar el valor de dos variables la forma más simple es: x=10 y=20 print x # 10 print y # 20 x,y = y,x print x # 20 print y # 10
  • 7. Asignaciones múltiples (4/6) En una asignación pueden intervenir valores de distinto tipo (enteros, reales, string etc.): nombre,edad,sueldo=('juan',32,1500.30) print 'Nombre:%s Edad:%d Sueldo%10.2f' % (nombre,edad,sueldo) # Nombre:juan Edad:32 Sueldo 1500.30
  • 8. Asignaciones múltiples (5/6) Podemos con esto hacer que una función retorne más de un dato (por lo menos en apariencia), esto lo logramos retornando una tupla: def sumadiferencia(x1,x2): suma=x1+x2 diferencia=x1-x2 return (suma,diferencia) su,di=sumadiferencia(10,4) print su # 14 print di # 6
  • 9. Asignaciones múltiples (6/6) Como vemos llamamos a una función y le asignamos el valor devuelto a dos variables. Si queremos inicializar tres variables con el mismo valor la sintaxis que podemos utilizar es: x1=x2=x3=10 print x1 # 10 print x2 # 10 print x3 # 10
  • 10. Problema resuelto En una lista se almacenan tuplas con el nombre de una persona y su edad. Mostrar el nombre de la persona de mayor edad. personas=[('juan',22),('ana',40),('carlos',15)] may=-1 for nombre,edad in personas: if edad>may: nom=nombre may=edad print '%s tiene la edad mayor y es de %d' % (nom,may)
  • 11. Funciones con parámetros por defecto (1/5) Como habíamos visto una función es una estructura de programación que agrupa un conjunto de instrucciones y resuelve un problema particular. Una función puede tener parámetros, los mismos almacenan los valores que se le pasan cuando la llamamos. En algunos casos si queremos que la función sea mas flexible podemos definir parámetros con valores por defecto. Esto nos permite llamar a la función pudiendo o no pasar datos a dichos parámetros. Veamos con un ejemplo este concepto, vamos a desarrollar una función que reciba un dato a imprimir, con la posibilidad de indicarle el color de fuente y el color de fondo, en caso de no indicarle dichos valores la función muestra el dato con color negro y fondo blanco.
  • 12. Funciones con parámetros por defecto (2/5) def mostrartitulo(dato,colorletra='#000',colorfondo='#fff'): print '<h1 style=&quot;color:'+colorletra+';background-color:'+colorfondo+'&quot;>'+dato+'</h1>' mostrartitulo('Primer titulo') mostrartitulo('Segundo titulo','#f00') mostrartitulo('Tercer titulo','#f00','#000') Como podemos ver para indicar a Python que un parámetro es por defecto debemos utilizar el operador de asignación en la declaración de la cabecera de la función junto al valor que tomará dicho parámetro en caso de no pasarlo desde donde la llamamos: def mostrartitulo(dato,colorletra='#000',colorfondo='#fff'):
  • 13. Funciones con parámetros por defecto (3/5) Cuando llamamos la función mostrartitulo podemos hacerlo de diferentes maneras: mostrartitulo('Primer titulo') mostrartitulo('Segundo titulo','#f00') mostrartitulo('Tercer titulo','#f00','#000') La primera llamada es pasando un único dato, es decir solo el título que debe mostrar, en este caso el segundo y tercer parámetro toman como valor el indicado en el declaración: colorletra='#000',colorfondo='#fff'
  • 14. Funciones con parámetros por defecto (4/5) Podemos llamar a la función mostrartitulo pasando el primer parámetro y el segundo, lo que hace que el tercer parámetro se inicialice con el indicado en la declaración de la función: mostrartitulo('Segundo titulo','#f00') En el ejemplo la tercera llamada a la función se hace pasando tres parámetros: mostrartitulo('Tercer titulo','#f00','#000')
  • 15. Funciones con parámetros por defecto (5/5) Como podemos ver los parámetros por defecto nos permiten implementar funciones más generales, con esto podemos hacer que las funciones sean útiles para mayor cantidad de situaciones. Que pasa si queremos llamar la función indicando el primer y último parámetro, esto solo se puede hacer si al llamar la función indicamos que dato se le pasa a cada parámetro: def mostrartitulo(dato,colorletra='#000',colorfondo='#fff'): print '<h1 style=&quot;color:'+colorletra+';background-color:'+colorfondo+'&quot;>'+dato+'</h1>' mostrartitulo(dato='Primer titulo',colorfondo='#00f' Si bien se hace más engorroso la llamada a la función al tener que indicar el nombre de cada parámetro junto al valor, nos trae como beneficio que sea aún más flexible.
  • 16. Problema resuelto Confeccionar una función que reciba un dato a imprimir, con la posibilidad de indicarle el color de fuente y el color de fondo, en caso de no indicarle dichos valores la función muestra el dato con color negro y fondo blanco. def mostrartitulo(dato,colorletra='#000',colorfondo='#fff'): print '<h1 style=&quot;color:'+colorletra+';background-color:'+colorfondo+'&quot;>'+dato+'</h1>' mostrartitulo('Primer titulo') mostrartitulo('Segundo titulo','#f00') mostrartitulo('Tercer titulo','#f00','#000')
  • 17. Problema Propuesto Confeccionar una función que reciba entre 2 y 5 enteros. La misma nos debe retornar la suma de dichos valores. def sumar(v1,v2,v3=0,v4=0,v5=0): s=v1+v2+v3+v4+v5 return s print sumar(5,6) print sumar(1,2,3) x=sumar(1,2,3,4,5) print x
  • 18. Funciones con una cantidad variable de parámetros (1/3) Otra posibilidad en la declaración de una función en Python es la definición de una cantidad variable de parámetros. Para definir una cantidad variante de parámetros debemos antecederle el caracter asterísco (*) al último parámetro de la función. Supongamos que necesitemos implementar una función que le enviemos una serie de enteros y nos retorne la suma de todos ellos (como mínimo le enviamos 2 y no hay un máximo de valores): def sumar(x1,x2,*xn): s=x1+x2 for valor in xn: s=s+valor return s print sumar(1,2) print sumar(1,2,3,4) print sumar(1,2,3,4,5,6,7,8,9,10)
  • 19. Funciones con una cantidad variable de parámetros (2/3) Lo que en realidad el lenguaje Python hace es una tupla con todos los valores de los parámetros a partir del tercero. Luego nuestro algoritmo debe recorrer la tupla para procesar los elementos propiamente dichos, en nuestro caso con un for in y los sumamos junto al primer y segundo parámetro. Luego cuando hacemos la llamada a la función print sumar(1,2)
  • 20. Funciones con una cantidad variable de parámetros (3/3) Si pasamos solo dos parámetros la tupla se inicializa vacía, por lo que el for in no ejecuta el bloque contenido. Si llamamos la función con 10 parámetros: print sumar(1,2,3,4,5,6,7,8,9,10) Luego la tupla se crea con 7 elementos.
  • 21. Problema resuelto Implementar una función que le enviemos una serie de enteros y nos retorne la suma de todos ellos (como mínimo le enviamos 2 y no hay un máximo de valores): def sumar(x1,x2,*xn): s=x1+x2 for valor in xn: s=s+valor return s print sumar(1,2) print sumar(1,2,3,4) print sumar(1,2,3,4,5,6,7,8,9,10)
  • 22. Problema Propuesto Confeccionar una función que le envíe una serie de edades y me retorne la cantidad que son mayores a 18 (como mínimo se envía un entero a la función) def cantidadmayor18(ed1,*edades): cant=0 if ed1>18: cant=cant+1 for e in edades: if e>18: cant=cant+1 return cant print 'Cantidad de personas mayores a 18:' cant=cantidadmayor18(4,56,14,67,32,21) print cant
  • 23.
  • 24.