SlideShare une entreprise Scribd logo
1  sur  8
Télécharger pour lire hors ligne
Universidad de Santiago de Chile
Facultad de Ingeniería
Fundamentos de Computación y Programación
1
Listas y ciclos for-in
Anteriormente hemos tratado con distintos tipos de datos que Python ofrece, como el
entero (int), el entero de largo (long), los números de punto flotante (float) y los valores
booleanos (boolean), sin embargo todos estos tipos comparten una característica en
común: Son tipos de datos atómicos (estructuralmente indivisibles). Esto significa que
cuando hacemos una asignación, la variable almacena sólo un valor.
>>> flotante = 2.5
>>> flotante
2.5
>>> enteroLargo = 3L
>>> enteroLargo
3L
>>> verdad = False
>>> verdad
False
>>>
Sin embargo, en el mundo real existen ejemplos de conceptos asociados a varios
valores. Por ejemplo “estudiantes del curso”, “notas del estudiante”, “nombres de los
miembros del club”, etc.
En consecuencia, al programar una solución a un problema real, muchas veces
necesitamos asociar varios datos a un mismo nombre. Supongamos, por ejemplo, que
se nos pide un programa que calcule el promedio y la desviación estándar de la estatura
de los alumnos que están cursando Fundamentos de Computación y Programación.
¡Podríamos necesitar 1.600 variables!
Para facilitar el manejo de datos en problemas como éste, Python permite el manejo de
listas de elementos, en las cuáles se pueden almacenar varios datos dentro de una sola
variable. Veamos cómo funcionan las listas en el siguiente ejemplo.
>>> [1, 2, 3, 4, 5, 6.0]
[1, 2, 3, 4, 5, 6.0]
>>> lista1 = [1, 1+1, int(6/2.0)]
>>> lista1
[1, 2, 3]
>>> listaVacia = []
>>> listaVacia
[]
Ejemplo 1
Ejemplo 2
Universidad de Santiago de Chile
Facultad de Ingeniería
Fundamentos de Computación y Programación
2
Podemos ver que para definir una lista en Python, simplemente colocamos los elementos
de la lista dentro de paréntesis cuadrados ([ ]), separándolos por comas (,).
Podemos guardar la lista en una variable para usarla posteriormente en el programa. En
resumen la sintaxis es la siguiente:
variable = [<elemento_1>, <elemento_2>, ... , <elemento_n>]
Ahora podemos guardar muchos valores en una única variable de tipo lista (list en
Python). Pero como los valores no sólo son para guardarlos solamente, sino que también
necesitamos operar con ellos, requerimos formas de accederlos. Observemos el
siguiente código en Python:
numeros = [2, 5, 7, 13]
print numeros
numeros[0] = numeros [0]**2
numeros[1] = numeros [1]**2
numeros[2] = numeros [2]**2
numeros[3] = numeros [3]**2
print numeros
Trabaja ahora con tu grupo en responder la pregunta 1 de la actividad.
Ahora, es claro que el programa Cuadrados.py eleva los elementos de la lista numeros
al cuadrado. Podemos notar que es posible referirse a un elemento de la lista en
particular con la posición que tiene en la lista. Podemos ver que la lista numeros tiene
cuatro elementos (largo 4), y que sus elementos están indexados con las posiciones del
0 al 3. Para acceder al primer elemento, se escribe el nombre de la lista con la posición 0
en paréntesis cuadrados: numeros[0]. Para obtener el número 7 en la lista, en la
penúltima posición de la lista, tenemos referenciarlo escribiendo: numeros[2]. El último
elemento de la lista será numeros[3]. La figura 1 resume esta indexación posicional.
Importante
Cuadrados.py
Pregunta 1
Universidad de Santiago de Chile
Facultad de Ingeniería
Fundamentos de Computación y Programación
3
2 5 7 13
0 1 2 3Posiciones de referencia en
la lista numeros
Valores almacenados en la
lista numeros
Figura 1. Posiciones y valores en la lista numeros
Pero también existen operaciones y funciones que podemos aplicar a una lista completa,
como una sola entidad. Por ejemplo, podemos obtener el largo de una lista utilizando la
función nativa de Python len().
>>> len([1, 2, 3, 4, 5, 6.0])
6
>>> lista1 = [1, 1+1, int(6/2.0)]
>>> len(lista1)
3
>>> listaVacia = []
>>> len(listaVacia)
0
También tenemos el operador concatenación (+) que nos permite unir dos listas.
>>> lista = [1, 2, 3]
>>> lista
[1, 2, 3]
>>> lista = lista + [4, 5]
>>> lista
[1, 2, 3, 4, 5]
>>>
Trabajen ahora en la segunda pregunta de la actividad.
Las listas son naturalmente iterativas, ya que muchos problemas en el mundo real
requieren aplicar alguna operación a cada elemento de una lista. Por ejemplo, calcular el
promedio de cada alumno del curso, calcular el impuesto a pagar por cada funcionario
de la Universidad, etc.
Ejemplo 3
Ejemplo 4
Pregunta 2
Universidad de Santiago de Chile
Facultad de Ingeniería
Fundamentos de Computación y Programación
4
Estructura for-in
Para realizar iteraciones en Python, hemos visto que es posible utilizar la sentencia
while. Por ejemplo, si quisiéramos obtener las potencias de 0 a 7 de 2 por pantalla para
trabajar en ejercicios con base binaria, deberíamos escribir algo similar a esto:
# Definición de los exponentes a utilizar
exponentes = [0, 1, 2, 3, 4, 5, 6, 7]
# Muestra la potencia de 2 para cada exponente
posicion = 0
while posicion < len(exponentes):
print posicion, 2 ** exponentes[posicion]
posicion = posicion + 1
Sin embargo, se obtiene una solución mucho más natural cuando se aprovecha la
naturaleza iterativa de las listas a través de la sentencia for-in:
# Muestra la potencia de 2 para los exponentes del cero al siete
for exponente in [0, 1, 2, 3, 4, 5, 6, 7]:
print exponente, 2 ** exponente
Sabiendo un poquito de inglés, podemos notar lo natural que esta sintaxis resulta: “para
cada exponente en la secuencia [0, 1, 2, 3, 4, 5, 6, 7: mostrar el exponente y 2 elevado al
exponente”. La sintaxis en Python para un ciclo for-in es la siguiente:
for <identificador> in <lista de elementos>:
<operaciones a realizar>
Es hora de desarrollar la pregunta 3 de la actividad de hoy.
PotenciasDeDos.py
PotenciasDeDosNatural.py
Importante
Pregunta 3
Universidad de Santiago de Chile
Facultad de Ingeniería
Fundamentos de Computación y Programación
5
En otros lenguajes de programación existe la sentencia for, sin embargo esta es un poco distinta al
for-in de Python, pues mientras aquí la sentencia se lee:
 Para cada elemento de la secuencia haga : <instrucciones>
for <elemento> in <listado de elementos>:
Por ejemplo: for elemento in [1, 2, 3, ,4 ,5 ,6 ,7]:
En otros lenguajes de programación se entiende como:
 Para cada iteración desde <inicio> hasta <condición de fin>, con paso de <incremento> haga
{<instrucciones>}
for(<inicio>, <condición de fin>, <incremento>){…
Por ejemplo: for(i = 0; i < 7, i ++){…
Es decir, mientras en Python limitamos la iteración de for-in para cada elemento de la lista, la
sentencia for de otros lenguajes limitan las iteraciones completamente, al decirle explícitamente al
programa dónde empezar, hasta donde llegar y que tan largos deben ser los pasos a dar.
Construyendo listas rápidamente
La función nativa range(<desde>, <hasta>, <incremento>) es muy utilizada en
Python para iterar un bloque de código un número fijo de veces que es conocido a priori.
La función crea listas de números enteros de acuerdo a los tres parámetros que se le
entregan. El parámetro <desde> indica el valor inicial de la secuencia a generar (el
primer elemento). Éste es un parámetro opcional, que si se omite asume valor cero. El
parámetro <hasta> es obligatorio y corresponde al límite superior de la secuencia. Debe
tenerse en cuenta que el último elemento en la secuencia es siempre menor que el valor
de este parámetro. Por último, el parámetro opcional <incremento> especifica la
diferencia aritmética que existe entre cada elemento consecutivo de la secuencia.
También es un parámetro opcional y si se omite se asume el valor uno.
Los siguientes son ejemplos del funcionamiento de la función range(). Observémoslos
con cuidado para entender por qué se obtiene la secuencia resultante.
For-in en Python y for en otros lenguajes
Universidad de Santiago de Chile
Facultad de Ingeniería
Fundamentos de Computación y Programación
6
>>>range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1, 10)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1, 10, 3)
[1, 4, 7]
>>> range(0, 10, 3)
[0, 3, 6, 9]
>>> range(10, 3)
[]
>>> range(5, 10, 10)
[5]
>>>
La función range() nos sirve para crear rápidamente listas para nuestros ciclos for-in.
Por ejemplo, si en el programa PotenciasDeDosNatural.py necesitáramos ahora las
30 primeras potencias de 2, resultaría engorroso definir una lista con los números del 0 al
30. Más simple es utilizar la función range() para generarla.
for exponente in range(0, 30):
print exponente, 2 ** exponente
# Equivalente a:
exponentes = range(0, 30)
for e in exponentes:
print e, 2 ** e
Trabajemos ahora en la cuarta pregunta de nuestro apunte de hoy.
Manejando texto
En Python hemos visto que a menudo entregamos mensajes utilizando palabras u
oraciones entre comillas, como por ejemplo "HOLA MUNDO". Este es un tipo de dato
conocido como string (str en Python) que la mayoría de los lenguajes de programación
incluye.
Ejemplo 5
PotenciasDeDosNaturalConRange.py
Pregunta 4
Universidad de Santiago de Chile
Facultad de Ingeniería
Fundamentos de Computación y Programación
7
Al igual que las listas, el string es un tipo de dato compuesto (no atómico), en este caso,
exclusivamente por caracteres (chr en Python). Por esta razón, podemos iterar sobre los
caracteres que contiene y podemos concatenarlos con otros strings.
>>> for c in "Hola Mundo":
print c
H
o
l
a
M
u
n
d
o
>>>
>>> "Hola" + " " + "Mundo"
'Hola Mundo'
>>>
Sin embargo, a diferencia de las listas, un string es inmutable, es decir no podemos
cambiar alguno de los elementos que lo componen.
>>> saludo = "Hola Mundo"
>>> saludo[0] = 'h'
Traceback (most recent call last):
File "<pyshell#34>", line 1, in <module>
saludo[0] = 'h'
TypeError: 'str' object does not support item assignment
>>>
Con esta restricción en mente, podemos hacer operaciones iterativas sobre texto, como
por ejemplo, contar cuántas palabras contiene un string.
Ejemplo 6
Ejemplo 7
Universidad de Santiago de Chile
Facultad de Ingeniería
Fundamentos de Computación y Programación
8
# Entrada
texto = input("Ingrese texto entre comillas: ")
# Procesamiento
nEspacios = 0
for caracter in texto:
if caracter == ' ':
nEspacios = nEspacios + 1
# Salida
print "Su texto contiene", nEspacios + 1, "palabras"
Para terminar resuelve con tus compañeros la pregunta 5 de la actividad
Pregunta 5
ContarPalabras.py

Contenu connexe

Tendances

Librerias Básicas y sus Funciones Lenguaje de Programación C
Librerias Básicas y sus Funciones Lenguaje de Programación CLibrerias Básicas y sus Funciones Lenguaje de Programación C
Librerias Básicas y sus Funciones Lenguaje de Programación CCristian Maza
 
Bibliotecas o libreria de c++
Bibliotecas o libreria de c++Bibliotecas o libreria de c++
Bibliotecas o libreria de c++Idalia Tristan
 
Bibliotecas en c
Bibliotecas en cBibliotecas en c
Bibliotecas en cdemata
 
Clase 1 Curso Introducción a Python 2012
Clase 1 Curso Introducción a Python 2012Clase 1 Curso Introducción a Python 2012
Clase 1 Curso Introducción a Python 2012Nahuel Defossé
 
Bibliotecas o librerias_para_c_
Bibliotecas o librerias_para_c_Bibliotecas o librerias_para_c_
Bibliotecas o librerias_para_c_Oziel Solis Juarez
 
27778471 programacion-logica
27778471 programacion-logica27778471 programacion-logica
27778471 programacion-logicamaxsp5566
 
Clase 4/4 Curso Introducción a Python 2012
Clase 4/4 Curso Introducción a Python 2012Clase 4/4 Curso Introducción a Python 2012
Clase 4/4 Curso Introducción a Python 2012Nahuel Defossé
 
02 pythonenpocospasosejercicios.ipynb colaboratory
02 pythonenpocospasosejercicios.ipynb   colaboratory02 pythonenpocospasosejercicios.ipynb   colaboratory
02 pythonenpocospasosejercicios.ipynb colaboratoryLesli Molina Soto
 
Argentina Programa Apendix parte 2.pdf
Argentina Programa Apendix parte 2.pdfArgentina Programa Apendix parte 2.pdf
Argentina Programa Apendix parte 2.pdfenzo935311
 
Archivos de Cabecera.
Archivos de Cabecera.Archivos de Cabecera.
Archivos de Cabecera.Luis Stifler
 
How to Think Like a Computer Scientist
How to Think Like a Computer ScientistHow to Think Like a Computer Scientist
How to Think Like a Computer Scientistjoanem28
 

Tendances (20)

Librerias Básicas y sus Funciones Lenguaje de Programación C
Librerias Básicas y sus Funciones Lenguaje de Programación CLibrerias Básicas y sus Funciones Lenguaje de Programación C
Librerias Básicas y sus Funciones Lenguaje de Programación C
 
01 el lenguaje Python
01 el lenguaje Python01 el lenguaje Python
01 el lenguaje Python
 
Bibliotecas o libreria de c++
Bibliotecas o libreria de c++Bibliotecas o libreria de c++
Bibliotecas o libreria de c++
 
Bibliotecas de c_
Bibliotecas de c_Bibliotecas de c_
Bibliotecas de c_
 
Python (ejercicios)
Python (ejercicios)Python (ejercicios)
Python (ejercicios)
 
Bibliotecas en c
Bibliotecas en cBibliotecas en c
Bibliotecas en c
 
Curso prog sist
Curso prog sistCurso prog sist
Curso prog sist
 
Librerias de C++
Librerias de C++Librerias de C++
Librerias de C++
 
Clase 1 Curso Introducción a Python 2012
Clase 1 Curso Introducción a Python 2012Clase 1 Curso Introducción a Python 2012
Clase 1 Curso Introducción a Python 2012
 
Bibliotecas o librerias_para_c_
Bibliotecas o librerias_para_c_Bibliotecas o librerias_para_c_
Bibliotecas o librerias_para_c_
 
Unidad 2 & 3 estructura datos
Unidad 2 & 3 estructura datosUnidad 2 & 3 estructura datos
Unidad 2 & 3 estructura datos
 
02 introduccion a python
02 introduccion a python02 introduccion a python
02 introduccion a python
 
27778471 programacion-logica
27778471 programacion-logica27778471 programacion-logica
27778471 programacion-logica
 
Clase 4/4 Curso Introducción a Python 2012
Clase 4/4 Curso Introducción a Python 2012Clase 4/4 Curso Introducción a Python 2012
Clase 4/4 Curso Introducción a Python 2012
 
02 pythonenpocospasosejercicios.ipynb colaboratory
02 pythonenpocospasosejercicios.ipynb   colaboratory02 pythonenpocospasosejercicios.ipynb   colaboratory
02 pythonenpocospasosejercicios.ipynb colaboratory
 
Argentina Programa Apendix parte 2.pdf
Argentina Programa Apendix parte 2.pdfArgentina Programa Apendix parte 2.pdf
Argentina Programa Apendix parte 2.pdf
 
Archivos de Cabecera.
Archivos de Cabecera.Archivos de Cabecera.
Archivos de Cabecera.
 
Introduccion a Python. Clase 3
Introduccion a Python. Clase 3Introduccion a Python. Clase 3
Introduccion a Python. Clase 3
 
How to Think Like a Computer Scientist
How to Think Like a Computer ScientistHow to Think Like a Computer Scientist
How to Think Like a Computer Scientist
 
Bibliotecas existentes para_c_
Bibliotecas existentes para_c_Bibliotecas existentes para_c_
Bibliotecas existentes para_c_
 

En vedette

Algoritmos para matlab
Algoritmos para matlabAlgoritmos para matlab
Algoritmos para matlabVitoto96
 
Ejercicios resueltos- de metodos
Ejercicios resueltos- de metodosEjercicios resueltos- de metodos
Ejercicios resueltos- de metodosMichael Dhgfhr
 
APUNTES Y EJERCICIOS RESUELTOS DE ANALISIS NUMERICO
APUNTES Y EJERCICIOS RESUELTOS DE ANALISIS NUMERICOAPUNTES Y EJERCICIOS RESUELTOS DE ANALISIS NUMERICO
APUNTES Y EJERCICIOS RESUELTOS DE ANALISIS NUMERICOJulio Ruano
 
Matlab 2 Capitulo 6
Matlab 2 Capitulo 6Matlab 2 Capitulo 6
Matlab 2 Capitulo 6guest4f4d78d
 
METODOS NUMERICOS para ingenieria -Chapra
METODOS NUMERICOS para ingenieria -ChapraMETODOS NUMERICOS para ingenieria -Chapra
METODOS NUMERICOS para ingenieria -ChapraAdriana Oleas
 
Guia rapida de matlab (comandos basicos, graficacion y programacion)
Guia rapida de matlab (comandos basicos, graficacion y programacion)Guia rapida de matlab (comandos basicos, graficacion y programacion)
Guia rapida de matlab (comandos basicos, graficacion y programacion)morones.om
 

En vedette (10)

Funciones y gráficas en matlab
Funciones y gráficas en matlabFunciones y gráficas en matlab
Funciones y gráficas en matlab
 
Programacion en matlab
Programacion en matlabProgramacion en matlab
Programacion en matlab
 
Metodos numericos con matlab
Metodos numericos con matlabMetodos numericos con matlab
Metodos numericos con matlab
 
Algoritmos para matlab
Algoritmos para matlabAlgoritmos para matlab
Algoritmos para matlab
 
Ejercicios resueltos- de metodos
Ejercicios resueltos- de metodosEjercicios resueltos- de metodos
Ejercicios resueltos- de metodos
 
APUNTES Y EJERCICIOS RESUELTOS DE ANALISIS NUMERICO
APUNTES Y EJERCICIOS RESUELTOS DE ANALISIS NUMERICOAPUNTES Y EJERCICIOS RESUELTOS DE ANALISIS NUMERICO
APUNTES Y EJERCICIOS RESUELTOS DE ANALISIS NUMERICO
 
Matlab sesion3
Matlab sesion3Matlab sesion3
Matlab sesion3
 
Matlab 2 Capitulo 6
Matlab 2 Capitulo 6Matlab 2 Capitulo 6
Matlab 2 Capitulo 6
 
METODOS NUMERICOS para ingenieria -Chapra
METODOS NUMERICOS para ingenieria -ChapraMETODOS NUMERICOS para ingenieria -Chapra
METODOS NUMERICOS para ingenieria -Chapra
 
Guia rapida de matlab (comandos basicos, graficacion y programacion)
Guia rapida de matlab (comandos basicos, graficacion y programacion)Guia rapida de matlab (comandos basicos, graficacion y programacion)
Guia rapida de matlab (comandos basicos, graficacion y programacion)
 

Similaire à 9. listas y for-in

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
 
Software para el aprendizaje de la programación EC 2. Presentación 3: Python
 Software para el aprendizaje de la programación EC 2. Presentación 3: Python Software para el aprendizaje de la programación EC 2. Presentación 3: Python
Software para el aprendizaje de la programación EC 2. Presentación 3: PythonUCC_Elearning
 
Taller listasyeasygui
Taller listasyeasyguiTaller listasyeasygui
Taller listasyeasyguiAlbert Page
 
Python guia01 1
Python guia01 1Python guia01 1
Python guia01 1zeta2015
 
Introducción a la programación en Python
Introducción a la programación en PythonIntroducción a la programación en Python
Introducción a la programación en PythonCodeSyntax
 
37 tarazona karen programacion
37 tarazona karen programacion37 tarazona karen programacion
37 tarazona karen programacionkarenyulithza
 
Lenguaje latino
Lenguaje latinoLenguaje latino
Lenguaje latinoReneSergio
 
Introducción a python.pdf
Introducción a python.pdfIntroducción a python.pdf
Introducción a python.pdfAz
 
Fundamentos de java I
Fundamentos de java IFundamentos de java I
Fundamentos de java IJitle Noriega
 
Estructuras de datos
Estructuras de datosEstructuras de datos
Estructuras de datosMario Garlo
 
principales datos simples
principales datos simplesprincipales datos simples
principales datos simplesedgarcr717
 
2 _expresiones_matematicas_254209
2  _expresiones_matematicas_2542092  _expresiones_matematicas_254209
2 _expresiones_matematicas_254209Miguel Medina
 

Similaire à 9. listas y for-in (20)

EXPO PYTHON.pptx
EXPO PYTHON.pptxEXPO PYTHON.pptx
EXPO PYTHON.pptx
 
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
 
Software para el aprendizaje de la programación EC 2. Presentación 3: Python
 Software para el aprendizaje de la programación EC 2. Presentación 3: Python Software para el aprendizaje de la programación EC 2. Presentación 3: Python
Software para el aprendizaje de la programación EC 2. Presentación 3: Python
 
Taller listasyeasygui
Taller listasyeasyguiTaller listasyeasygui
Taller listasyeasygui
 
Clase 1 - Python
Clase 1 - PythonClase 1 - Python
Clase 1 - Python
 
Python guia01 1
Python guia01 1Python guia01 1
Python guia01 1
 
Introducción a la programación en Python
Introducción a la programación en PythonIntroducción a la programación en Python
Introducción a la programación en Python
 
Python workshop
Python workshopPython workshop
Python workshop
 
Python03
Python03Python03
Python03
 
Django y Python para todos
Django y Python para todosDjango y Python para todos
Django y Python para todos
 
TIPOS DE DATOS MATLAB
TIPOS DE DATOS MATLABTIPOS DE DATOS MATLAB
TIPOS DE DATOS MATLAB
 
37 tarazona karen programacion
37 tarazona karen programacion37 tarazona karen programacion
37 tarazona karen programacion
 
Lenguaje latino
Lenguaje latinoLenguaje latino
Lenguaje latino
 
Introducción a python.pdf
Introducción a python.pdfIntroducción a python.pdf
Introducción a python.pdf
 
Fundamentos de java I
Fundamentos de java IFundamentos de java I
Fundamentos de java I
 
Estructuras de datos
Estructuras de datosEstructuras de datos
Estructuras de datos
 
Curso python
Curso pythonCurso python
Curso python
 
principales datos simples
principales datos simplesprincipales datos simples
principales datos simples
 
2 _expresiones_matematicas_254209
2  _expresiones_matematicas_2542092  _expresiones_matematicas_254209
2 _expresiones_matematicas_254209
 
Phyton
PhytonPhyton
Phyton
 

Dernier

GeoS4344444444444444444444444444444444.pdf
GeoS4344444444444444444444444444444444.pdfGeoS4344444444444444444444444444444444.pdf
GeoS4344444444444444444444444444444444.pdffredyflores58
 
MANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdf
MANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdfMANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdf
MANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdfciteagrohuallaga07
 
R. Contraloria 432-2023-CG obras x AD.pdf
R. Contraloria 432-2023-CG obras x AD.pdfR. Contraloria 432-2023-CG obras x AD.pdf
R. Contraloria 432-2023-CG obras x AD.pdfrudy cabezas
 
Sistema Séptico Domiciliario para viviendas rurales
Sistema Séptico Domiciliario para viviendas ruralesSistema Séptico Domiciliario para viviendas rurales
Sistema Séptico Domiciliario para viviendas ruralesrberinald
 
Dispositivos Semiconductores de Potencia BJT, MOSFET 01.pdf
Dispositivos Semiconductores de Potencia BJT, MOSFET 01.pdfDispositivos Semiconductores de Potencia BJT, MOSFET 01.pdf
Dispositivos Semiconductores de Potencia BJT, MOSFET 01.pdfdego18
 
SESION 2- 2 ATOMO Y ESTRUCTURA ATÓMICA.pdf
SESION 2- 2 ATOMO Y ESTRUCTURA ATÓMICA.pdfSESION 2- 2 ATOMO Y ESTRUCTURA ATÓMICA.pdf
SESION 2- 2 ATOMO Y ESTRUCTURA ATÓMICA.pdfEsvinAlvares
 
Introduccion-a-los-tipos-de-cemento (1).pdf
Introduccion-a-los-tipos-de-cemento (1).pdfIntroduccion-a-los-tipos-de-cemento (1).pdf
Introduccion-a-los-tipos-de-cemento (1).pdfjhorbycoralsanchez
 
5. MATERIAL COMPLEMENTARIO - PPT de la Sesión 02.pptx
5. MATERIAL COMPLEMENTARIO - PPT  de la Sesión 02.pptx5. MATERIAL COMPLEMENTARIO - PPT  de la Sesión 02.pptx
5. MATERIAL COMPLEMENTARIO - PPT de la Sesión 02.pptxJOSLUISCALLATAENRIQU
 
EJERCICIOS DE PROPIEDADES INDICES DE MECÁNICA DE SUELOS
EJERCICIOS DE PROPIEDADES INDICES DE MECÁNICA DE SUELOSEJERCICIOS DE PROPIEDADES INDICES DE MECÁNICA DE SUELOS
EJERCICIOS DE PROPIEDADES INDICES DE MECÁNICA DE SUELOSLuisLopez273366
 
Análisis de Varianza- Anova y pruebas de estadística
Análisis de Varianza- Anova y pruebas de estadísticaAnálisis de Varianza- Anova y pruebas de estadística
Análisis de Varianza- Anova y pruebas de estadísticaJoellyAlejandraRodrg
 
ENFOQUE METODOLOGICO DE LA INVESTIGACION
ENFOQUE METODOLOGICO DE LA INVESTIGACIONENFOQUE METODOLOGICO DE LA INVESTIGACION
ENFOQUE METODOLOGICO DE LA INVESTIGACIONJOHNNY SURI MAMANI
 
MATEMATICA BÁSICA FUNCIONES LOGARITMICAS
MATEMATICA BÁSICA FUNCIONES LOGARITMICASMATEMATICA BÁSICA FUNCIONES LOGARITMICAS
MATEMATICA BÁSICA FUNCIONES LOGARITMICASSALVADOR ALTEZ PALOMINO
 
SEMICONDUCTORES lafhnoealifsncknisz.pptx
SEMICONDUCTORES lafhnoealifsncknisz.pptxSEMICONDUCTORES lafhnoealifsncknisz.pptx
SEMICONDUCTORES lafhnoealifsncknisz.pptxOSCARADRIANMEDINADUR
 
04-circuitos-comparadores de amplificadores operacionales.pptx
04-circuitos-comparadores de amplificadores operacionales.pptx04-circuitos-comparadores de amplificadores operacionales.pptx
04-circuitos-comparadores de amplificadores operacionales.pptxHenryApaza12
 
PRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdf
PRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdfPRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdf
PRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdfAuraGabriela2
 
PRESENTACIÓN ANALISIS ESTRUCTURAL II.pptx
PRESENTACIÓN ANALISIS ESTRUCTURAL II.pptxPRESENTACIÓN ANALISIS ESTRUCTURAL II.pptx
PRESENTACIÓN ANALISIS ESTRUCTURAL II.pptxStibeCr
 
Sanidad en alpacas, enfermedades infecciosas y parasitarias
Sanidad en alpacas, enfermedades infecciosas y parasitariasSanidad en alpacas, enfermedades infecciosas y parasitarias
Sanidad en alpacas, enfermedades infecciosas y parasitariasJilvertHuisaCenteno
 
EXPOSICION UNIDAD 3 MANTENIMIENTOO .pptx
EXPOSICION UNIDAD 3 MANTENIMIENTOO .pptxEXPOSICION UNIDAD 3 MANTENIMIENTOO .pptx
EXPOSICION UNIDAD 3 MANTENIMIENTOO .pptxKeylaArlethTorresOrt
 
209530529 Licuacion-de-Suelos-en-Arequipa.pdf
209530529 Licuacion-de-Suelos-en-Arequipa.pdf209530529 Licuacion-de-Suelos-en-Arequipa.pdf
209530529 Licuacion-de-Suelos-en-Arequipa.pdfnurix_15
 
Sales Básicas Quimica, conocer como se forman las sales basicas
Sales Básicas Quimica, conocer como se forman las sales basicasSales Básicas Quimica, conocer como se forman las sales basicas
Sales Básicas Quimica, conocer como se forman las sales basicasPaulina Cargua
 

Dernier (20)

GeoS4344444444444444444444444444444444.pdf
GeoS4344444444444444444444444444444444.pdfGeoS4344444444444444444444444444444444.pdf
GeoS4344444444444444444444444444444444.pdf
 
MANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdf
MANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdfMANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdf
MANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdf
 
R. Contraloria 432-2023-CG obras x AD.pdf
R. Contraloria 432-2023-CG obras x AD.pdfR. Contraloria 432-2023-CG obras x AD.pdf
R. Contraloria 432-2023-CG obras x AD.pdf
 
Sistema Séptico Domiciliario para viviendas rurales
Sistema Séptico Domiciliario para viviendas ruralesSistema Séptico Domiciliario para viviendas rurales
Sistema Séptico Domiciliario para viviendas rurales
 
Dispositivos Semiconductores de Potencia BJT, MOSFET 01.pdf
Dispositivos Semiconductores de Potencia BJT, MOSFET 01.pdfDispositivos Semiconductores de Potencia BJT, MOSFET 01.pdf
Dispositivos Semiconductores de Potencia BJT, MOSFET 01.pdf
 
SESION 2- 2 ATOMO Y ESTRUCTURA ATÓMICA.pdf
SESION 2- 2 ATOMO Y ESTRUCTURA ATÓMICA.pdfSESION 2- 2 ATOMO Y ESTRUCTURA ATÓMICA.pdf
SESION 2- 2 ATOMO Y ESTRUCTURA ATÓMICA.pdf
 
Introduccion-a-los-tipos-de-cemento (1).pdf
Introduccion-a-los-tipos-de-cemento (1).pdfIntroduccion-a-los-tipos-de-cemento (1).pdf
Introduccion-a-los-tipos-de-cemento (1).pdf
 
5. MATERIAL COMPLEMENTARIO - PPT de la Sesión 02.pptx
5. MATERIAL COMPLEMENTARIO - PPT  de la Sesión 02.pptx5. MATERIAL COMPLEMENTARIO - PPT  de la Sesión 02.pptx
5. MATERIAL COMPLEMENTARIO - PPT de la Sesión 02.pptx
 
EJERCICIOS DE PROPIEDADES INDICES DE MECÁNICA DE SUELOS
EJERCICIOS DE PROPIEDADES INDICES DE MECÁNICA DE SUELOSEJERCICIOS DE PROPIEDADES INDICES DE MECÁNICA DE SUELOS
EJERCICIOS DE PROPIEDADES INDICES DE MECÁNICA DE SUELOS
 
Análisis de Varianza- Anova y pruebas de estadística
Análisis de Varianza- Anova y pruebas de estadísticaAnálisis de Varianza- Anova y pruebas de estadística
Análisis de Varianza- Anova y pruebas de estadística
 
ENFOQUE METODOLOGICO DE LA INVESTIGACION
ENFOQUE METODOLOGICO DE LA INVESTIGACIONENFOQUE METODOLOGICO DE LA INVESTIGACION
ENFOQUE METODOLOGICO DE LA INVESTIGACION
 
MATEMATICA BÁSICA FUNCIONES LOGARITMICAS
MATEMATICA BÁSICA FUNCIONES LOGARITMICASMATEMATICA BÁSICA FUNCIONES LOGARITMICAS
MATEMATICA BÁSICA FUNCIONES LOGARITMICAS
 
SEMICONDUCTORES lafhnoealifsncknisz.pptx
SEMICONDUCTORES lafhnoealifsncknisz.pptxSEMICONDUCTORES lafhnoealifsncknisz.pptx
SEMICONDUCTORES lafhnoealifsncknisz.pptx
 
04-circuitos-comparadores de amplificadores operacionales.pptx
04-circuitos-comparadores de amplificadores operacionales.pptx04-circuitos-comparadores de amplificadores operacionales.pptx
04-circuitos-comparadores de amplificadores operacionales.pptx
 
PRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdf
PRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdfPRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdf
PRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdf
 
PRESENTACIÓN ANALISIS ESTRUCTURAL II.pptx
PRESENTACIÓN ANALISIS ESTRUCTURAL II.pptxPRESENTACIÓN ANALISIS ESTRUCTURAL II.pptx
PRESENTACIÓN ANALISIS ESTRUCTURAL II.pptx
 
Sanidad en alpacas, enfermedades infecciosas y parasitarias
Sanidad en alpacas, enfermedades infecciosas y parasitariasSanidad en alpacas, enfermedades infecciosas y parasitarias
Sanidad en alpacas, enfermedades infecciosas y parasitarias
 
EXPOSICION UNIDAD 3 MANTENIMIENTOO .pptx
EXPOSICION UNIDAD 3 MANTENIMIENTOO .pptxEXPOSICION UNIDAD 3 MANTENIMIENTOO .pptx
EXPOSICION UNIDAD 3 MANTENIMIENTOO .pptx
 
209530529 Licuacion-de-Suelos-en-Arequipa.pdf
209530529 Licuacion-de-Suelos-en-Arequipa.pdf209530529 Licuacion-de-Suelos-en-Arequipa.pdf
209530529 Licuacion-de-Suelos-en-Arequipa.pdf
 
Sales Básicas Quimica, conocer como se forman las sales basicas
Sales Básicas Quimica, conocer como se forman las sales basicasSales Básicas Quimica, conocer como se forman las sales basicas
Sales Básicas Quimica, conocer como se forman las sales basicas
 

9. listas y for-in

  • 1. Universidad de Santiago de Chile Facultad de Ingeniería Fundamentos de Computación y Programación 1 Listas y ciclos for-in Anteriormente hemos tratado con distintos tipos de datos que Python ofrece, como el entero (int), el entero de largo (long), los números de punto flotante (float) y los valores booleanos (boolean), sin embargo todos estos tipos comparten una característica en común: Son tipos de datos atómicos (estructuralmente indivisibles). Esto significa que cuando hacemos una asignación, la variable almacena sólo un valor. >>> flotante = 2.5 >>> flotante 2.5 >>> enteroLargo = 3L >>> enteroLargo 3L >>> verdad = False >>> verdad False >>> Sin embargo, en el mundo real existen ejemplos de conceptos asociados a varios valores. Por ejemplo “estudiantes del curso”, “notas del estudiante”, “nombres de los miembros del club”, etc. En consecuencia, al programar una solución a un problema real, muchas veces necesitamos asociar varios datos a un mismo nombre. Supongamos, por ejemplo, que se nos pide un programa que calcule el promedio y la desviación estándar de la estatura de los alumnos que están cursando Fundamentos de Computación y Programación. ¡Podríamos necesitar 1.600 variables! Para facilitar el manejo de datos en problemas como éste, Python permite el manejo de listas de elementos, en las cuáles se pueden almacenar varios datos dentro de una sola variable. Veamos cómo funcionan las listas en el siguiente ejemplo. >>> [1, 2, 3, 4, 5, 6.0] [1, 2, 3, 4, 5, 6.0] >>> lista1 = [1, 1+1, int(6/2.0)] >>> lista1 [1, 2, 3] >>> listaVacia = [] >>> listaVacia [] Ejemplo 1 Ejemplo 2
  • 2. Universidad de Santiago de Chile Facultad de Ingeniería Fundamentos de Computación y Programación 2 Podemos ver que para definir una lista en Python, simplemente colocamos los elementos de la lista dentro de paréntesis cuadrados ([ ]), separándolos por comas (,). Podemos guardar la lista en una variable para usarla posteriormente en el programa. En resumen la sintaxis es la siguiente: variable = [<elemento_1>, <elemento_2>, ... , <elemento_n>] Ahora podemos guardar muchos valores en una única variable de tipo lista (list en Python). Pero como los valores no sólo son para guardarlos solamente, sino que también necesitamos operar con ellos, requerimos formas de accederlos. Observemos el siguiente código en Python: numeros = [2, 5, 7, 13] print numeros numeros[0] = numeros [0]**2 numeros[1] = numeros [1]**2 numeros[2] = numeros [2]**2 numeros[3] = numeros [3]**2 print numeros Trabaja ahora con tu grupo en responder la pregunta 1 de la actividad. Ahora, es claro que el programa Cuadrados.py eleva los elementos de la lista numeros al cuadrado. Podemos notar que es posible referirse a un elemento de la lista en particular con la posición que tiene en la lista. Podemos ver que la lista numeros tiene cuatro elementos (largo 4), y que sus elementos están indexados con las posiciones del 0 al 3. Para acceder al primer elemento, se escribe el nombre de la lista con la posición 0 en paréntesis cuadrados: numeros[0]. Para obtener el número 7 en la lista, en la penúltima posición de la lista, tenemos referenciarlo escribiendo: numeros[2]. El último elemento de la lista será numeros[3]. La figura 1 resume esta indexación posicional. Importante Cuadrados.py Pregunta 1
  • 3. Universidad de Santiago de Chile Facultad de Ingeniería Fundamentos de Computación y Programación 3 2 5 7 13 0 1 2 3Posiciones de referencia en la lista numeros Valores almacenados en la lista numeros Figura 1. Posiciones y valores en la lista numeros Pero también existen operaciones y funciones que podemos aplicar a una lista completa, como una sola entidad. Por ejemplo, podemos obtener el largo de una lista utilizando la función nativa de Python len(). >>> len([1, 2, 3, 4, 5, 6.0]) 6 >>> lista1 = [1, 1+1, int(6/2.0)] >>> len(lista1) 3 >>> listaVacia = [] >>> len(listaVacia) 0 También tenemos el operador concatenación (+) que nos permite unir dos listas. >>> lista = [1, 2, 3] >>> lista [1, 2, 3] >>> lista = lista + [4, 5] >>> lista [1, 2, 3, 4, 5] >>> Trabajen ahora en la segunda pregunta de la actividad. Las listas son naturalmente iterativas, ya que muchos problemas en el mundo real requieren aplicar alguna operación a cada elemento de una lista. Por ejemplo, calcular el promedio de cada alumno del curso, calcular el impuesto a pagar por cada funcionario de la Universidad, etc. Ejemplo 3 Ejemplo 4 Pregunta 2
  • 4. Universidad de Santiago de Chile Facultad de Ingeniería Fundamentos de Computación y Programación 4 Estructura for-in Para realizar iteraciones en Python, hemos visto que es posible utilizar la sentencia while. Por ejemplo, si quisiéramos obtener las potencias de 0 a 7 de 2 por pantalla para trabajar en ejercicios con base binaria, deberíamos escribir algo similar a esto: # Definición de los exponentes a utilizar exponentes = [0, 1, 2, 3, 4, 5, 6, 7] # Muestra la potencia de 2 para cada exponente posicion = 0 while posicion < len(exponentes): print posicion, 2 ** exponentes[posicion] posicion = posicion + 1 Sin embargo, se obtiene una solución mucho más natural cuando se aprovecha la naturaleza iterativa de las listas a través de la sentencia for-in: # Muestra la potencia de 2 para los exponentes del cero al siete for exponente in [0, 1, 2, 3, 4, 5, 6, 7]: print exponente, 2 ** exponente Sabiendo un poquito de inglés, podemos notar lo natural que esta sintaxis resulta: “para cada exponente en la secuencia [0, 1, 2, 3, 4, 5, 6, 7: mostrar el exponente y 2 elevado al exponente”. La sintaxis en Python para un ciclo for-in es la siguiente: for <identificador> in <lista de elementos>: <operaciones a realizar> Es hora de desarrollar la pregunta 3 de la actividad de hoy. PotenciasDeDos.py PotenciasDeDosNatural.py Importante Pregunta 3
  • 5. Universidad de Santiago de Chile Facultad de Ingeniería Fundamentos de Computación y Programación 5 En otros lenguajes de programación existe la sentencia for, sin embargo esta es un poco distinta al for-in de Python, pues mientras aquí la sentencia se lee:  Para cada elemento de la secuencia haga : <instrucciones> for <elemento> in <listado de elementos>: Por ejemplo: for elemento in [1, 2, 3, ,4 ,5 ,6 ,7]: En otros lenguajes de programación se entiende como:  Para cada iteración desde <inicio> hasta <condición de fin>, con paso de <incremento> haga {<instrucciones>} for(<inicio>, <condición de fin>, <incremento>){… Por ejemplo: for(i = 0; i < 7, i ++){… Es decir, mientras en Python limitamos la iteración de for-in para cada elemento de la lista, la sentencia for de otros lenguajes limitan las iteraciones completamente, al decirle explícitamente al programa dónde empezar, hasta donde llegar y que tan largos deben ser los pasos a dar. Construyendo listas rápidamente La función nativa range(<desde>, <hasta>, <incremento>) es muy utilizada en Python para iterar un bloque de código un número fijo de veces que es conocido a priori. La función crea listas de números enteros de acuerdo a los tres parámetros que se le entregan. El parámetro <desde> indica el valor inicial de la secuencia a generar (el primer elemento). Éste es un parámetro opcional, que si se omite asume valor cero. El parámetro <hasta> es obligatorio y corresponde al límite superior de la secuencia. Debe tenerse en cuenta que el último elemento en la secuencia es siempre menor que el valor de este parámetro. Por último, el parámetro opcional <incremento> especifica la diferencia aritmética que existe entre cada elemento consecutivo de la secuencia. También es un parámetro opcional y si se omite se asume el valor uno. Los siguientes son ejemplos del funcionamiento de la función range(). Observémoslos con cuidado para entender por qué se obtiene la secuencia resultante. For-in en Python y for en otros lenguajes
  • 6. Universidad de Santiago de Chile Facultad de Ingeniería Fundamentos de Computación y Programación 6 >>>range(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> range(1, 10) [1, 2, 3, 4, 5, 6, 7, 8, 9] >>> range(1, 10, 3) [1, 4, 7] >>> range(0, 10, 3) [0, 3, 6, 9] >>> range(10, 3) [] >>> range(5, 10, 10) [5] >>> La función range() nos sirve para crear rápidamente listas para nuestros ciclos for-in. Por ejemplo, si en el programa PotenciasDeDosNatural.py necesitáramos ahora las 30 primeras potencias de 2, resultaría engorroso definir una lista con los números del 0 al 30. Más simple es utilizar la función range() para generarla. for exponente in range(0, 30): print exponente, 2 ** exponente # Equivalente a: exponentes = range(0, 30) for e in exponentes: print e, 2 ** e Trabajemos ahora en la cuarta pregunta de nuestro apunte de hoy. Manejando texto En Python hemos visto que a menudo entregamos mensajes utilizando palabras u oraciones entre comillas, como por ejemplo "HOLA MUNDO". Este es un tipo de dato conocido como string (str en Python) que la mayoría de los lenguajes de programación incluye. Ejemplo 5 PotenciasDeDosNaturalConRange.py Pregunta 4
  • 7. Universidad de Santiago de Chile Facultad de Ingeniería Fundamentos de Computación y Programación 7 Al igual que las listas, el string es un tipo de dato compuesto (no atómico), en este caso, exclusivamente por caracteres (chr en Python). Por esta razón, podemos iterar sobre los caracteres que contiene y podemos concatenarlos con otros strings. >>> for c in "Hola Mundo": print c H o l a M u n d o >>> >>> "Hola" + " " + "Mundo" 'Hola Mundo' >>> Sin embargo, a diferencia de las listas, un string es inmutable, es decir no podemos cambiar alguno de los elementos que lo componen. >>> saludo = "Hola Mundo" >>> saludo[0] = 'h' Traceback (most recent call last): File "<pyshell#34>", line 1, in <module> saludo[0] = 'h' TypeError: 'str' object does not support item assignment >>> Con esta restricción en mente, podemos hacer operaciones iterativas sobre texto, como por ejemplo, contar cuántas palabras contiene un string. Ejemplo 6 Ejemplo 7
  • 8. Universidad de Santiago de Chile Facultad de Ingeniería Fundamentos de Computación y Programación 8 # Entrada texto = input("Ingrese texto entre comillas: ") # Procesamiento nEspacios = 0 for caracter in texto: if caracter == ' ': nEspacios = nEspacios + 1 # Salida print "Su texto contiene", nEspacios + 1, "palabras" Para terminar resuelve con tus compañeros la pregunta 5 de la actividad Pregunta 5 ContarPalabras.py