0
PYTHON Lección No. 3 M.Sc. Victor Pando Beltrán [email_address] http://www.civil-uancv.pe/aulavirtual
AGENDA <ul><li>Funciones </li></ul><ul><li>Funciones con retorno de dato </li></ul><ul><li>Estructura de datos tipo tupla ...
RECOMENDACIONES <ul><li>Poner celulares en silencio </li></ul><ul><li>No conversar mientras el expositor está dando la cha...
Funciones (1/4) La estructura fundamental de programación de los lenguajes estructurados son  las funciones. Una función e...
Funciones (2/4) Para definir una función utilizamos la palabra clave 'def' seguida por el nombre de la función, luego si n...
Funciones (3/4) Una función puede tener parámetros de entrada, por ejemplo si queremos una función que reciba dos enteros ...
Funciones (4/4) Podemos enviarle directamente los valores:  imprimirmayor(4,5)  O podemos enviarle variables previamente i...
Problema resuelto Confeccionar una función que reciba un entero y luego imprima la tabla de  multiplicar de dicho valor (p...
Problema propuesto Desarrollar una función que reciba dos enteros y nos muestre todos los valores  comprendidos entre ello...
Funciones con retorno de dato (1/2) Hay muchas situaciones donde queremos que la función luego de ejecutarse  retorne un v...
Funciones con retorno de dato (2/2) El valor retornado se almacena en una variable:  may=retornarmayor(4,5,3)  Podemos inc...
Problema resuelto Confeccionar una función que reciba tres enteros y nos retorne la suma de dichos valores.  def sumar(x1,...
Problema Propuesto Desarrollar una función que reciba tres enteros y nos retorne la suma de los dos más  grandes.  def sum...
Estructura de datos tipo tupla (1/4) Hasta ahora hemos empleado variables que permiten almacenar un único valor. En Python...
Estructura de datos tipo tupla (2/4) Para acceder a los elementos lo hacemos por medio del nombre de la tupla  y un subínd...
Estructura de datos tipo tupla (3/4) con dicha función podemos disponer una estructura repetitiva para imprimir todas las ...
Estructura de datos tipo tupla (4/4) De todos modos cuando tenemos que acceder a algún elemento de la tupla  debemos hacer...
Problema resuelto Definir dos tuplas que almacenen en una los nombres de los meses y en otra la  cantidad de días que tien...
Problema Propuesto Definir una tupla que almacene 5 enteros. Implementar un algoritmo que imprima la suma de todos los ele...
Estructura repetitiva for in para recorrer una tupla Para recorrer una tupla es muy común utilizar la estructura repetitiv...
Problema resuelto Definir una tupla con 5 valores enteros. Imprimir los valores mayores o iguales a 18.  tupla1=(45,34,2,5...
Problema Propuesto Definir una tupla con 10 edades de personas. Imprimir la cantidad de personas con edades superiores a 2...
Porciones de tuplas (1/2) El lenguaje Python nos permite rescatar una &quot;porción&quot; de una tupla, es decir un trozo ...
Porciones de tuplas (2/2) Podemos no indicar alguno de los dos rangos:  tupla1=(1,7,20,40,51,3)  tupla2=tupla1[3:]  print ...
Problema resuelto Definir una tupla con los nombres de los meses. Generar dos tuplas que almacenen  los primeros 6 meses l...
Problema Propuesto Almacenar en una tupla 5 nombres. Luego generar un valor aleatorio entre 2 y 4. Copiar a una tupla el n...
Estructura de datos tipo cadena de caracteres (string) (1/5) Una cadena de caracteres permite almacenar un conjunto de car...
Estructura de datos tipo cadena de caracteres (string) (2/5) Para conocer el largo de un string podemos utilizar la funció...
Estructura de datos tipo cadena de caracteres (string) (3/5) Los string son inmutables, es decir que no podemos modificar ...
Estructura de datos tipo cadena de caracteres (string) (4/5) También Python define el operador * para los string. El resul...
Estructura de datos tipo cadena de caracteres (string) (5/5) Si queremos saber si un string es mayor alfabéticamente que o...
Problema resuelto (1/2) Elaborar una función que reciba un string y retorne la cantidad de vocales que tiene.  def cantida...
Problema resuelto (2/2) if letra=='E': cant=cant+1 if letra=='I': cant=cant+1 if letra=='O': cant=cant+1 if letra=='U': ca...
Problema Propuesto (1/2) Elaborar las siguientes funciones: - Una función que reciba un string y nos retorne el primer car...
Problema Propuesto (2/2) cad='Hola Mundo'  print 'Primer caracter de '+cad+' es '+primercaracter(cad)  nom='juan‘ ape='rod...
BIBLIOGRAFÍA <ul><li>Página personal de Guido van  Rossum </li></ul><ul><li>Libro texto del curso </li></ul><ul><li>Sitio ...
 
Upcoming SlideShare
Loading in...5
×

Python03

1,326

Published on

Funciones y estructura de datos tipo tupla y cadena de caracteres.

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,326
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
47
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Python03"

  1. 1. PYTHON Lección No. 3 M.Sc. Victor Pando Beltrán [email_address] http://www.civil-uancv.pe/aulavirtual
  2. 2. AGENDA <ul><li>Funciones </li></ul><ul><li>Funciones con retorno de dato </li></ul><ul><li>Estructura de datos tipo tupla </li></ul><ul><li>Estructura repetitiva for in para recorrer una tupla </li></ul><ul><li>Porciones de tuplas </li></ul><ul><li>Estructura de datos tipo cadena de caracteres (string) </li></ul>
  3. 3. RECOMENDACIONES <ul><li>Poner celulares en silencio </li></ul><ul><li>No conversar mientras el expositor está dando la charla </li></ul><ul><li>Si te da sueño, puedes dormir pero sin roncar :P </li></ul><ul><li>Si hablo muy rápido favor indicármelo para hablar más lento </li></ul>
  4. 4. Funciones (1/4) La estructura fundamental de programación de los lenguajes estructurados son las funciones. Una función es un conjunto de instrucciones que se la invoca mediante un nombre y que luego de ejecutado el algoritmo puede retornar un valor. Un programa estructurado no es más que un conjunto de funciones que en conjunto resuelven un problema complejo. Veamos la sintaxis en Python para definir y llamar a una función: def presentacion(): print 'Primer mensaje.' print 'Segundo mensaje.' def fin(): print 'Ultimo mensaje.' presentacion() fin()
  5. 5. Funciones (2/4) Para definir una función utilizamos la palabra clave 'def' seguida por el nombre de la función, luego si no tiene parámetros como este caso debe ir paréntesis abiertos y cerrados y dos puntos. Seguidamente las instrucciones de la función se indentan a derecha. def presentacion(): print 'Primer mensaje.' print 'Segundo mensaje.' Una función se ejecuta cuando se la llama por su nombre: presentacion() Es importante notar que primero debemos declarar la función y luego llamarla.
  6. 6. Funciones (3/4) Una función puede tener parámetros de entrada, por ejemplo si queremos una función que reciba dos enteros y luego nos imprima el mayor, el algoritmo es el siguiente: def imprimirmayor(valor1,valor2): if valor1>valor2: print valor1 else: print valor2 imprimirmayor(4,5) x1=20 x2=30 imprimirmayor(x1,x2) Los parámetros de la función se indican en la cabecera de la función separados por comas. Cuando llamamos a la función estamos obligados a enviarle datos a los dos parámetros.
  7. 7. Funciones (4/4) Podemos enviarle directamente los valores: imprimirmayor(4,5) O podemos enviarle variables previamente inicializadas: x1=20 x2=30 imprimirmayor(x1,x2) Como podemos notar con este ejemplo una función puede ser llamada más de una vez (en este caso la llamamos dos veces)
  8. 8. Problema resuelto Confeccionar una función que reciba un entero y luego imprima la tabla de multiplicar de dicho valor (por ejemplo si recibe un 3 luego debe mostrar del 3 hasta el 30 de 3 en 3) def mostrartabla(num): inicio=num fin=num*10 while inicio<=fin: print inicio print '-' inicio=inicio+num mostrartabla(3)
  9. 9. Problema propuesto Desarrollar una función que reciba dos enteros y nos muestre todos los valores comprendidos entre ellos (el segundo parámetro siempre debe ser mayor al primero) def rangovalores(v1,v2): inicio=v1 while inicio<=v2: print inicio inicio=inicio+1 rangovalores(2,20)
  10. 10. Funciones con retorno de dato (1/2) Hay muchas situaciones donde queremos que la función luego de ejecutarse retorne un valor y se almacene en una variable desde donde la llamamos. Por ejemplo si necesitamos una función que reciba tres enteros y nos retorne el mayor la sintaxis será la siguiente: def retornarmayor(x1,x2,x3): if x1<x2 and x1<x3: return x1 elif x2<x3: return x2 else: return x3 may=retornarmayor(4,5,3) print may Como podemos observar la instrucción return indica el valor devuelto por la función.
  11. 11. Funciones con retorno de dato (2/2) El valor retornado se almacena en una variable: may=retornarmayor(4,5,3) Podemos inclusive mostrar directamente el valor retornado por la función: print retornarmayor(40,5,3) O utilizarlo en una condición: if retornarmayor(40,5,3)<20: print 'El valor devuelto es mayor a 20'
  12. 12. Problema resuelto Confeccionar una función que reciba tres enteros y nos retorne la suma de dichos valores. def sumar(x1,x2,x3): su=x1+x2+x3 return su total=sumar(10,30,42) print total
  13. 13. Problema Propuesto Desarrollar una función que reciba tres enteros y nos retorne la suma de los dos más grandes. def sumarmayores(x1,x2,x3): if x1>x2 and x1>x3: if x2>x3: return x1+x2 else: return x1+x3 elif x2>x3: if x3>x1: return x2+x3 else: return x2+x1 else: if x2>x1: return x3+x2 else: return x3+x1 print sumarmayores(100,200,30)
  14. 14. Estructura de datos tipo tupla (1/4) Hasta ahora hemos empleado variables que permiten almacenar un único valor. En Python existen varias estructuras de datos que permiten almacenar un conjunto de datos. La primera que presentaremos es la tupla: Una tupla es una colección de datos no necesariamente del mismo tipo que se los accede por medio de subíndices. Definición de una tupla: tupla1=('juan',18,1.92) ' Hemos definido una tupla de tres elementos. El primer elemento es de tipo cadena de caracteres, el segundo un entero y finalmente un valor flotante. Cada elemento de una tupla se los separa por una coma.
  15. 15. Estructura de datos tipo tupla (2/4) Para acceder a los elementos lo hacemos por medio del nombre de la tupla y un subíndice numérico: print tupla1[0] Los elementos de la tupla comienzan a numerarse a partir de cero y utilizamos los corchetes para hacer referencia al subíndice. Si queremos en algún momento saber la cantidad de elementos de una tupla debemos llamar la función len: print len(tupla1) #imprime un 3
  16. 16. Estructura de datos tipo tupla (3/4) con dicha función podemos disponer una estructura repetitiva para imprimir todas las componentes de la tupla con el siguiente algoritmo: : tupla1=('juan',18,1.92) indice=0 while indice<len(tupla1): print tupla1[indice] indice=indice+1 Veremos en el próximo concepto que hay una estructura repetitiva que nos facilita recorrer los elementos de una tupla. Una vez definida la tupla no se pueden modificar los valores almacenados. La función print puede recibir como parámetro una tupla y se encarga de mostrarla en forma completa: print tupla1
  17. 17. Estructura de datos tipo tupla (4/4) De todos modos cuando tenemos que acceder a algún elemento de la tupla debemos hacerlo mediante un subíndice entre corchetes. La característica fundamental de una tupla es que una vez creada no podemos modificar sus elementos, ni tampoco agregar o eliminar.
  18. 18. Problema resuelto Definir dos tuplas que almacenen en una los nombres de los meses y en otra la cantidad de días que tiene cada mes del año. Luego mostrar el contenido almacenado en las mismas. meses=('enero','febrero','marzo','abril','mayo','junio','julio','agosto', 'septiembre','octubre','noviembre','diciembre') cantidaddias=(31,28,31,30,31,30,31,31,30,31,30,31) indice=0 while indice<len(meses): print meses[indice] print ':' print cantidaddias[indice] print '<br>' indice=indice+1
  19. 19. Problema Propuesto Definir una tupla que almacene 5 enteros. Implementar un algoritmo que imprima la suma de todos los elementos. tupla1=(6,33,56,3,45) suma=0 indice=0 while indice<len(tupla1): suma=suma+tupla1[indice] indice=indice+1 print 'El contenido de la tupla es:‘ print tupla1 print 'La suma es:‘ print suma
  20. 20. Estructura repetitiva for in para recorrer una tupla Para recorrer una tupla es muy común utilizar la estructura repetitiva for. Veamos con un ejemplo la sintaxis de esta estructura repetitiva: tupla1=('juan',23,1.92) for elemento in tupla1: print elemento Como podemos ver la instrucción for requiere una variable (en este ejemplo llamada elemento), luego la palabra clave in y por último la tupla. El bloque del for se ejecuta tantas veces como elementos tenga la tupla, y en cada vuelta del for la variable elemento almacena un valor de la tupla1. Esta estructura repetitiva se adapta mucho mejor que el while para recorrer este tipo de estructuras de datos.
  21. 21. Problema resuelto Definir una tupla con 5 valores enteros. Imprimir los valores mayores o iguales a 18. tupla1=(45,34,2,56,1) for elemento in tupla1: if elemento>=18: print elemento
  22. 22. Problema Propuesto Definir una tupla con 10 edades de personas. Imprimir la cantidad de personas con edades superiores a 20. tupla1=(45,78,3,56,3,45,34,2,56,1) cantidad=0 for elemento in tupla1: if elemento>20: cantidad=cantidad+1 print 'Cantidad de personas con edades superiores a 20:' print cantidad
  23. 23. Porciones de tuplas (1/2) El lenguaje Python nos permite rescatar una &quot;porción&quot; de una tupla, es decir un trozo de la misma. Si tenemos la siguiente tupla: tupla1=(1,7,20,40,51,3) tupla2=tupla1[0:4] print tupla2 El resultado es una tupla con cuatro valores: (1,7,20,40) Es decir indicamos como subíndice un rango de valores, en este caso desde la posición 0 hasta la posición 4 sin incluirla.
  24. 24. Porciones de tuplas (2/2) Podemos no indicar alguno de los dos rangos: tupla1=(1,7,20,40,51,3) tupla2=tupla1[3:] print tupla2 El resultado es una tupla con tres valores, desde la posición 3 hasta el final de la tupla: (40, 51, 3) En caso de no indicar el primer rango: tupla1=(1,7,20,40,51,3) tupla2=tupla1[:2] print tupla2 El resultado es una tupla con dos valores, desde el principio de la tupla hasta la posición 2 sin incluirla: (1, 7)
  25. 25. Problema resuelto Definir una tupla con los nombres de los meses. Generar dos tuplas que almacenen los primeros 6 meses la primera y los siguientes 6 meses la segunda. meses=('enero','febrero','marzo','abril','mayo','junio','julio','agosto', 'septiembre','octubre','noviembre','diciembre') tupla1=meses[:6] tupla2=meses[6:] print tupla1 print tupla2
  26. 26. Problema Propuesto Almacenar en una tupla 5 nombres. Luego generar un valor aleatorio entre 2 y 4. Copiar a una tupla el nombre de la posición indicada por el valor aleatorio y los nombres que se encuentran en la posición anterior y posterior. import random nombre=('juan','ana','luis','carlos','roman') ale=random.randint(1,3) tresnombres=nombre[ale-1:ale+2] print tresnombres
  27. 27. Estructura de datos tipo cadena de caracteres (string) (1/5) Una cadena de caracteres permite almacenar un conjunto de caracteres. Su funcionamiento es similar a una tupla. Para inicializar un string utilizamos el operador de asignación. nombre='Juan Pablo' Podemos utilizar las comillas simples o dobles para su inicialización: mail='jose@gmail.com' O mail=&quot;jose@gmail.com&quot;
  28. 28. Estructura de datos tipo cadena de caracteres (string) (2/5) Para conocer el largo de un string podemos utilizar la función len: print len(mail) Para acceder a un caracter particular del string lo hacemos indicando un subíndice entre corchetes: print mail[0] #Imprimimos el primer caracter El lenguaje Python nos permite rescatar una &quot;porción&quot; de un string con la misma sintaxis que trabajamos las tuplas: nombre='Jose Maria' print nombre[1:4] #ose print nombre[:4] #Jose print nombre[5:] #Maria
  29. 29. Estructura de datos tipo cadena de caracteres (string) (3/5) Los string son inmutables, es decir que no podemos modificar su contenido luego de ser inicializados: titulo='Administracion' titulo[0]='X' # Esto produce un error Esto no significa que no podemos utilizar la variable para que referencie a otro string: nombre='Jose' print nombre nombre='Ana' print nombre Para concatenar string Python permite utilizar el operador +. Si tenemos tres string y queremos almacenar sus contenidos en un cuarto string podemos codificarlo de la siguiente manera: cadena1='uno' cadena2='dos' cadena3='tres' total=cadena1+cadena2+cadena3 print total #unodostres
  30. 30. Estructura de datos tipo cadena de caracteres (string) (4/5) También Python define el operador * para los string. El resultado de multiplicar un string por un entero es otro string que repite el string original tantas veces como indica el número. #si queremos un string con 80 caracteres de subrayado, #la forma más sencilla es utilizar la siguiente expresión: separador='_'*80 print separador Los operadores relacionales definidos para los string son: Mayor >= Mayor o igual < Menor <= Menor o igual == Igual != Distinto
  31. 31. Estructura de datos tipo cadena de caracteres (string) (5/5) Si queremos saber si un string es mayor alfabéticamente que otro utilizamos el operador > nombre1='CARLOS' nombre2='ANABEL' if nombre1>nombre2: print nombre1+' es mayor alfabéticamente que '+nombre2 si queremos saber si dos variables tienes en mismo contenido: nombre1='CARLOS' nombre2='CARLOS' if nombre1==nombre2: print 'Las dos variables tienen el mismo contenido:'+nombre1
  32. 32. Problema resuelto (1/2) Elaborar una función que reciba un string y retorne la cantidad de vocales que tiene. def cantidadvocales(cadena): cant=0 for letra in cadena: if letra=='a': cant=cant+1 if letra=='e': cant=cant+1 if letra=='i': cant=cant+1 if letra=='o': cant=cant+1 if letra=='u': cant=cant+1 if letra=='A': cant=cant+1
  33. 33. Problema resuelto (2/2) if letra=='E': cant=cant+1 if letra=='I': cant=cant+1 if letra=='O': cant=cant+1 if letra=='U': cant=cant+1 return cant print 'Cantidad de vocales en la palabra Hola:' print cantidadvocales('Hola') print 'Cantidad de vocales en la palabra Computadora:' print cantidadvocales('Computadora')
  34. 34. Problema Propuesto (1/2) Elaborar las siguientes funciones: - Una función que reciba un string y nos retorne el primer caracter. - Una función que reciba un apellido y un nombre, y nos retorne un único string con el apellido y nombre concatenados y separados por una coma. - Una función que reciba dos string y nos retorne el que tiene menos caracteres. def primercaracter(cadena): return cadena[0] def concatenar(apellido,nombre): return apellido+','+nombre def menor(cadena1,cadena2): if len(cadena1)<len(cadena2): return cadena1 else: return cadena2
  35. 35. Problema Propuesto (2/2) cad='Hola Mundo' print 'Primer caracter de '+cad+' es '+primercaracter(cad) nom='juan‘ ape='rodriguez' print 'Apellido y nombre concatenados:'+concatenar(ape,nom) cad1='Hola' cad2='Fin' print 'De: '+cad1+' y '+cad2+' tiene menos caracteres '+menor(cad1,cad2)
  36. 36. BIBLIOGRAFÍA <ul><li>Página personal de Guido van Rossum </li></ul><ul><li>Libro texto del curso </li></ul><ul><li>Sitio principal de Python </li></ul><ul><li>Zona de descarga de Python </li></ul><ul><li>Página principal de PythonCAD </li></ul><ul><li>Documentación de PythonCAD </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×