0% encontró este documento útil (0 votos)
179 vistas8 páginas

Estructuras Iterativas Python

Este documento describe conceptos básicos de estructuras iterativas y secuenciales en Python. Explica que una iteración es la repetición de acciones basada en una condición, y que los bucles deben ser finitos con un inicio y final conocidos. También describe tipos de secuencias como de longitud fija o infinita, y esquemas como recorrido y búsqueda para iterar sobre secuencias.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
179 vistas8 páginas

Estructuras Iterativas Python

Este documento describe conceptos básicos de estructuras iterativas y secuenciales en Python. Explica que una iteración es la repetición de acciones basada en una condición, y que los bucles deben ser finitos con un inicio y final conocidos. También describe tipos de secuencias como de longitud fija o infinita, y esquemas como recorrido y búsqueda para iterar sobre secuencias.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Estructuras iterativas

Concepto de composición iterativa

Una iteración o bucle es la repetición indefinida de ciertas acciones en función del


resultado de una condición

Entrada

Acción

Condición
Si
No

Salida

Un bucle debe ser finito, tener un inicio y un final, debemos conocer el final antes de
realizarlo. Las opciones del final de un bucle son:

- Longitud conocida o un numero máximo de repeticiones (*)


- Un centinela o marca de final del bucle (Una serie numérica que acabe con un
-1 o en una carrera ciclista, el coche escoba)
- La condición del último elemento (por ejemplo, calcular inversas de cuadrado
hasta que el valor sea más peuqño que 1/107

Secuencias

Una secuencia es una serie de valores (‘Hola, mundo’) puede ser finita (1,3,5,7,9) o
infinita de longitud desconocida (La serie de Fibonacci: 1,1,2,3,5,8,13,21,34,55... o
Potencias de n: 1,4,9,16,25,36,49...)

Las iteraciones se ralizan básicamente sobre secuencias y el ordenador no puede


trabajar con la secuencia por lo que lo hace elemento a elemento.

- Iteraciones sobre secuencias de longitud conocida: utilizaremos for:


Usa y trata cada elemento de la secuencia hasta llegar al final de la misma
Bucles

- Secuencias de longitud conocida: Por ejemplo cadenas o secuencias de


caracteres
- Se impone el numero máximo de iteraciones que será el número de elementos
de la secuencia
- El iterador solo accede a un elemento de la secuencia en cada momento
- Los elementos de la secuencia se tratan de forma ordenada de inicio a fin

Ejemplo: Hay sólo 6 iteraciones. La variable caracter empieza por tomar el valor del
primer elemento de la secuencia (‘p’) y luego toma en cada iteración el valor del
siguiente elemento de la secuencia hasta completar la misma.

Ejemplo: Contar vocales de una frase


- La estructura for irá iterando sobre cada una de las letras de la secuencia de
caracteres. En el momento que una letra sea una vocal, la imprimirá por la
pantalla.

Secuencias de caracteres – Funciones asociadas


Índices en cadenas de caracteres

- Son estructuras organizadas de caracteres simples. Su tratamiento pasa por


una variables estructurada que puede referenciarse cada uno de sus caracteres
mediante índices.
- Nuneran cada uno de los elementos de izquierda a derecha y empezando por
cero(0). Así se permite acceder a los elementos por su indice y no
secuencialmente. Se puede acceder también de derecha a izquierda mediante
índices negativos.
- Para la secuencia s, s[i] indica el elemento con índice i de la secuencia.
- Así por ejemplo, len(s) = 9, el ultimo elemento es el índice 8 o -1s[8]=”I”, s[-
1]=”I”
S U N I V E R S A L
Indice positivo 0 1 2 3 4 5 6 7 8
Índice negativo -9 -8 -7 -6 -5 -4 -3 -2 -1

Indexación y segmentación de las cadenas de caracteres

- Es una operación que se relaiza sobre un string o una lista. El operador permite
extraer partes de la estructura en una subestructura.
- Por ejemplo, de la secuencia ‘Hola, que tal’ extraer solo los elementos pares
‘hl,qetl’
- En la documentación del lenguaje, se explica la sintaxis de los operadores de
segmentación.

En los casos de s[i:j] y s[i:j:k]

- Si i no se indica, i toma el valor 0  s[:4] es s[0:4]


- Si j no se indica, toma el valor de len(s)  s[4:] es s[4:len(s)]
- Si k no se indica, toma el valor 1
Secuencias numéricas

Python tiene funciones que generan automáticamente secuencias numéricas de


diferentes tipos (iteradores) y según las caracterisiticas que pueda definir el
programador.

“range” es una función iteradora predefinida que actua generando una serie
secuencial de valores según los parámetros que le son introducidos.

Sintaxis: range([desde,]hasta[,interv])

Range genera una serie de números enteros empezando por el marcado desde y
acabando hasta -1 incrementándose en valores de interv.

- Si desde no se indica, se asume por defecto el valor cero (0)


- Si interv no se indica, se asume por defecto el valor 1
- El valor de hasta es siempre obligado
- Si solo se indican dos, seran los de desde y hasta

Ejemplos:
o range(5)  (0,1,2,3,4)
o range(2, 10)  (2,3,4,5,6,7,8,9)
o range(2, 10, 2) (2, 4, 6, 8)
o range(10, 0, 2)  ()
Esquemas secuenciales

Los esquemas secuenciales son esquemas iterativos que nos permiten modelar
soluciones a diferentes problemas. Son unos métodos base que se tienen que refinar al
problema concreto que se está solucionando.

Hay de dos tipos:


- Recorrido
- Búsqueda

Esquemas de recorrido

Es el esquemas más basico y comun, se realiza la inspección de TODOS los elementos


de la secuencia. Al finalizar la secuencia se presentan los resultados.

La secuencia debe ser finita y debe tener un final conocido.

Ejemplo: cuantas “a” hay en una frase o secuencia de caracteres de texto?


Secuencias

Como recorremos las secuencias? Tenemos dos métodos:

- Método 1: Acceso directo a los elementos de la secuencia

La secuencia que se recorre aquí son los


elementos de la secuencia o variable t 
‘h’, ‘o’, ‘l’ y ‘a’

- Método 2: Acceso indirecto a través de su posición índice

La secuencia aquí es una


secuencia numérica que se
inicia en cero y acaba en
len(t)-1, o sea, 0,1,2 y 3. La
secuencia no son los
elementos de t sino los
numeros 0, 1, 2, 3. Los
elementos de t los podemos
extraer a traves de la
expresión “t[i]”

En todos los casos se puede acceder con el método directo a los elementos de una
secuencia pero accederemos a este método sólo cuando recorramos únicamente una
secuencia y necesitemos conocer su contenido independientemente de su posición en
la misma.
Siempre y en cualquier caso podemos acceder de manera indirecta, sólo en casos
concretos solucionaremos el problema accediendo indirectamente a través de su
índice o posición.

Podremos resolver el problema , por ejemplo, para:


- Saber la posición de un elemento de la secuencia (en una búsqueda)
- Buscar diferencias entre dos secuencias
- Intercalar o fusionar dos secuencias
- Acceder a más de un elemento de la secuencia al mismo tiempo como, por
ejemplo, saber un elemento y el siguiente cumplen con una característica
común
- Cualquier método que nos obligue a trabajar con más de una secuencia al
mismo tiempo

EJEMPLOS:

Esquemas de búsqueda

Terminar la secuencia cuando se haya cumplido con el objetivo (lo antes posible).

Hay dos premisas importantes:

- No es necesario seguir recorriendo el resto de la secuencia: Cuando al recorrer


la secuencia conseguimos el objetivo, no necesitamos seguir revisando más
elementos. (ex: buscar nuestro coche en el aparcamiento)

- A diferencia del equema de recorrido, no acaba con una única respuesta, sino
que puede acabar siempre de dos maneras diferentes:
o Porque existe el elemento que cumple con el objetivo
o Porque no existe ningún elemento que cumpla con el objetivo
Solución 1: Se recorre la secuencia hasta que se encuentra un elemento que cumple
con el objetivo deseado o una condición determinada. En este momento la secuencia
termina, el resto de elementos no se recorren y se termina el recorrido de la secuencia

Solución 2: Sin embargo puede pasar que el eobjetivo que se busca no se encuentre en
la secuencia. Se recorrerá toda la secuencia y se informa de que no hay ningun
objetivo que cumpla con el objetivo marcado.

El numero de elementos tratados en la secuencia debe ser finito.


Ejemplo:

Esquemas secuenciales:

Antes de empezar a escribir el programa debemos:

- Entender la noción de secuencia de valores


- Dado el problema, averiguar la secuencia subyacente (en algunos casos puede
resultar obvio, pero en otros casos no lo es tanto) y determinar cuál es su final.
- Elegir el esquema que hay que aplicar para resolver el problema (recorrido o
búsuqeda)
- Refinar el eaquema para el problema concreto:
o Decidir el conjunto de variables que van a intervenir en la solución del
problema. A parte de las variables de entrada y salida, harán falta más
para efectua<r cálculos intermedios y para “visitar” los elementos de la
secuencia.
o Sustituir las partes generales del esquema por acciones y expresiones
que resuelvan el problema planteado.

También podría gustarte