SlideShare una empresa de Scribd logo
1 de 37
PYTHON Lección No. 3 M.Sc. Victor Pando Beltrán [email_address] http://www.civil-uancv.pe/aulavirtual
AGENDA ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
RECOMENDACIONES ,[object Object],[object Object],[object Object],[object Object]
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()
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.
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.
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)
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)
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)
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.
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'
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
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)
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.
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
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
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.
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
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
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.
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
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
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.
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)
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
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
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;
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
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
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
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
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
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')
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
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)
BIBLIOGRAFÍA ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
 

Más contenido relacionado

La actualidad más candente

Semana 3 Fundamentos de Python(Funciones y Métodos)
Semana 3   Fundamentos de Python(Funciones y Métodos)Semana 3   Fundamentos de Python(Funciones y Métodos)
Semana 3 Fundamentos de Python(Funciones y Métodos)Richard Eliseo Mendoza Gafaro
 
Semana 2 Fundamentos de Python(Entradas, Salidas y Operaciones Aritméticas)
Semana 2   Fundamentos de Python(Entradas, Salidas y Operaciones Aritméticas)Semana 2   Fundamentos de Python(Entradas, Salidas y Operaciones Aritméticas)
Semana 2 Fundamentos de Python(Entradas, Salidas y Operaciones Aritméticas)Richard Eliseo Mendoza Gafaro
 
Apuntadores y direccionamiento
Apuntadores y direccionamientoApuntadores y direccionamiento
Apuntadores y direccionamientoSergio Ramos
 
Problemas propuestos clase 0-1
Problemas propuestos  clase 0-1Problemas propuestos  clase 0-1
Problemas propuestos clase 0-1Jefferson Prieto
 
Clase 11- fundamentos de la programacion
Clase 11- fundamentos de la programacionClase 11- fundamentos de la programacion
Clase 11- fundamentos de la programaciondiego MC
 
Script de Punteros a Funciones
Script de Punteros a FuncionesScript de Punteros a Funciones
Script de Punteros a FuncionesAnesGy SD
 
Semana 4 Estructuras de datos(Tuplas, Conjuntos y Diccionarios)
Semana 4   Estructuras de datos(Tuplas, Conjuntos y Diccionarios)Semana 4   Estructuras de datos(Tuplas, Conjuntos y Diccionarios)
Semana 4 Estructuras de datos(Tuplas, Conjuntos y Diccionarios)Richard Eliseo Mendoza Gafaro
 
Ejercicio propuesto 2
Ejercicio propuesto 2Ejercicio propuesto 2
Ejercicio propuesto 2jfranco_123
 
Algoritmos - Funciones C++
Algoritmos - Funciones C++ Algoritmos - Funciones C++
Algoritmos - Funciones C++ Ronal Palomino
 
Programación de Videojuegos con Python y Pilas (II)
Programación de Videojuegos con Python y Pilas (II)Programación de Videojuegos con Python y Pilas (II)
Programación de Videojuegos con Python y Pilas (II)Fernando Salamero
 

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
 
01 el lenguaje Python
01 el lenguaje Python01 el lenguaje Python
01 el lenguaje Python
 
Semana 3 Fundamentos de Python(Funciones y Métodos)
Semana 3   Fundamentos de Python(Funciones y Métodos)Semana 3   Fundamentos de Python(Funciones y Métodos)
Semana 3 Fundamentos de Python(Funciones y Métodos)
 
Semana 2 Fundamentos de Python(Entradas, Salidas y Operaciones Aritméticas)
Semana 2   Fundamentos de Python(Entradas, Salidas y Operaciones Aritméticas)Semana 2   Fundamentos de Python(Entradas, Salidas y Operaciones Aritméticas)
Semana 2 Fundamentos de Python(Entradas, Salidas y Operaciones Aritméticas)
 
Curso de Python
Curso de PythonCurso de Python
Curso de Python
 
41 Php. Bucles For
41 Php. Bucles For41 Php. Bucles For
41 Php. Bucles For
 
Apuntadores y direccionamiento
Apuntadores y direccionamientoApuntadores y direccionamiento
Apuntadores y direccionamiento
 
Ejercicios Python Parte 1
Ejercicios Python Parte 1Ejercicios Python Parte 1
Ejercicios Python Parte 1
 
Manual.es
Manual.esManual.es
Manual.es
 
Problemas propuestos clase 0-1
Problemas propuestos  clase 0-1Problemas propuestos  clase 0-1
Problemas propuestos clase 0-1
 
Clase 1 - Python
Clase 1 - PythonClase 1 - Python
Clase 1 - Python
 
Guia tortugarte
Guia tortugarteGuia tortugarte
Guia tortugarte
 
Clase 11- fundamentos de la programacion
Clase 11- fundamentos de la programacionClase 11- fundamentos de la programacion
Clase 11- fundamentos de la programacion
 
Script de Punteros a Funciones
Script de Punteros a FuncionesScript de Punteros a Funciones
Script de Punteros a Funciones
 
Semana 4 Estructuras de datos(Tuplas, Conjuntos y Diccionarios)
Semana 4   Estructuras de datos(Tuplas, Conjuntos y Diccionarios)Semana 4   Estructuras de datos(Tuplas, Conjuntos y Diccionarios)
Semana 4 Estructuras de datos(Tuplas, Conjuntos y Diccionarios)
 
Ejercicio propuesto 2
Ejercicio propuesto 2Ejercicio propuesto 2
Ejercicio propuesto 2
 
Algoritmos - Funciones C++
Algoritmos - Funciones C++ Algoritmos - Funciones C++
Algoritmos - Funciones C++
 
Programación de Videojuegos con Python y Pilas (II)
Programación de Videojuegos con Python y Pilas (II)Programación de Videojuegos con Python y Pilas (II)
Programación de Videojuegos con Python y Pilas (II)
 

Similar a Python03

Taller listasyeasygui
Taller listasyeasyguiTaller listasyeasygui
Taller listasyeasyguiAlbert Page
 
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.pdfMarxx4
 
Suma de imagenes
Suma de imagenesSuma de imagenes
Suma de imagenesanar26
 
Funciones con vectores c++
Funciones con vectores c++Funciones con vectores c++
Funciones con vectores c++jose machado
 
Unidad6 funciones
Unidad6 funcionesUnidad6 funciones
Unidad6 funcionesmoii Hp
 
9. listas y for-in
9.  listas y for-in9.  listas y for-in
9. listas y for-inFaby Ignacio
 
Argentina Programa Apendix parte 2.pdf
Argentina Programa Apendix parte 2.pdfArgentina Programa Apendix parte 2.pdf
Argentina Programa Apendix parte 2.pdfenzo935311
 
Presentación de matlab electromagnetismo ...
Presentación de matlab electromagnetismo                                     ...Presentación de matlab electromagnetismo                                     ...
Presentación de matlab electromagnetismo ...SimonCaceres4
 
Fonciones de cadenas
Fonciones de cadenasFonciones de cadenas
Fonciones de cadenasmkbenitez
 
Funciones de cadena
Funciones de cadenaFunciones de cadena
Funciones de cadenaAlfredo Joya
 
Fonciones de cadenas
Fonciones de cadenasFonciones de cadenas
Fonciones de cadenasmkbenitez
 
Funciones propias de visual basic
Funciones propias de visual basicFunciones propias de visual basic
Funciones propias de visual basicYesenia Bautista
 
Funciones en lenguage c
Funciones en lenguage cFunciones en lenguage c
Funciones en lenguage cLorena Sanchez
 
Fundamentos de java I
Fundamentos de java IFundamentos de java I
Fundamentos de java IJitle Noriega
 

Similar a Python03 (20)

Taller listasyeasygui
Taller listasyeasyguiTaller listasyeasygui
Taller listasyeasygui
 
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
 
Funciones con vectores c++
Funciones con vectores c++Funciones con vectores c++
Funciones con vectores c++
 
Unidad6 funciones
Unidad6 funcionesUnidad6 funciones
Unidad6 funciones
 
9. listas y for-in
9.  listas y for-in9.  listas y for-in
9. listas y for-in
 
dqwrwer
dqwrwerdqwrwer
dqwrwer
 
Argentina Programa Apendix parte 2.pdf
Argentina Programa Apendix parte 2.pdfArgentina Programa Apendix parte 2.pdf
Argentina Programa Apendix parte 2.pdf
 
Funciones
FuncionesFunciones
Funciones
 
Presentación de matlab electromagnetismo ...
Presentación de matlab electromagnetismo                                     ...Presentación de matlab electromagnetismo                                     ...
Presentación de matlab electromagnetismo ...
 
Clase 6
Clase 6Clase 6
Clase 6
 
Arrays en VB 6.0
Arrays en VB 6.0Arrays en VB 6.0
Arrays en VB 6.0
 
Fonciones de cadenas
Fonciones de cadenasFonciones de cadenas
Fonciones de cadenas
 
Funciones de cadena
Funciones de cadenaFunciones de cadena
Funciones de cadena
 
Fonciones de cadenas
Fonciones de cadenasFonciones de cadenas
Fonciones de cadenas
 
Funciones
FuncionesFunciones
Funciones
 
Funciones
FuncionesFunciones
Funciones
 
Funciones propias de visual basic
Funciones propias de visual basicFunciones propias de visual basic
Funciones propias de visual basic
 
Funciones en lenguage c
Funciones en lenguage cFunciones en lenguage c
Funciones en lenguage c
 
Fundamentos de java I
Fundamentos de java IFundamentos de java I
Fundamentos de java I
 

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ánicaVictor Pando
 
Video y Multimedia
Video y MultimediaVideo y Multimedia
Video y MultimediaVictor Pando
 
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.0Victor Pando
 
Curso Básico de Windows XP
Curso Básico de Windows XPCurso Básico de Windows XP
Curso Básico de Windows XPVictor Pando
 
Tecnología Bluetooth
Tecnología BluetoothTecnología Bluetooth
Tecnología BluetoothVictor Pando
 
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.11bVictor Pando
 
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ónVictor Pando
 
Introducción al WAP
Introducción al WAPIntroducción al WAP
Introducción al WAPVictor Pando
 
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 CivilVictor 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

INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptxdeimerhdz21
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesYanirisBarcelDelaHoz
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Alejandrino Halire Ccahuana
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICAÁngel Encinas
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfNancyLoaa
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosJonathanCovena1
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSYadi Campos
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIIsauraImbrondone
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxlupitavic
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxnandoapperscabanilla
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática4    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática4    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Imperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperioImperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperiomiralbaipiales2016
 

Último (20)

INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficios
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática4    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática4    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
 
Imperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperioImperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperio
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 

Python03

  • 1. PYTHON Lección No. 3 M.Sc. Victor Pando Beltrán [email_address] http://www.civil-uancv.pe/aulavirtual
  • 2.
  • 3.
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.
  • 37.