Está en la página 1de 2

Nivel 3 – Laboratorio repaso de instrucciones iterativas sobre números,

cadenas de caracteres y listas; y patrones de recorrido

Objetivos
1. Manipular números, cadenas de caracteres y listas
2. Practicar el uso de instrucciones condicionales while y for-in
3. Usar correctamente los patrones de recorrido
4. Fomentar la habilidad de descomponer un problema en subproblemas y de
implementar funciones que los resuelven, lo que se conoce comúnmente como la
técnica de “Dividir y Conquistar”.
5. Practicar la construcción de interfaces por consola.

Preparación
- Cree una carpeta de trabajo y descargue allí el archivo n3-l3-listas-esqueleto.zip que
se encuentra adjunto a este enunciado en BrightSpace. Descomprima este archivo y
abra desde Spyder los archivos modulo.py y pruebas.py

- Estudie el archivo pruebas.py fíjese que si ejecuta este archivo antes de haber trabajado
en sus funciones la mayoría de las pruebas fallarán. Cuando termine una función puede
ejecutar las pruebas, pero recuerde revisar los resultados únicamente de la función en la
que está trabajando para evitar confusiones

- Estudie la documentación de cada función del modulo.py y complete las funciones


acordemente. No olvide analizar que tipo de patrón de recorrido se requiere para
solucionar cada problema y úselos acordemente

Problema 1: Número entero abundante


En teoría de números, un número entero positivo es abundante si la suma de todos sus
divisores propios es mayor que el mismo número. Por ejemplo, el número 12 es abundante
dado que sus divisores propios son 1, 2, 3, 4 y 6, que suman 16. Complete la función
es_abundante que decida si un número entero dado es abundante. Por ejemplo:

- Para el número 12 el resultado esperado es True


- Para el número 13 el resultado esperado es False, porque su único divisor propio es 1

Problema 2: Contar apariciones - Calificable


Complete la función contar_apariciones que recibe dos listas, la segunda lista más corta
que la primera y con al menos un elemento; y retorna la cantidad de veces en que la
segunda lista corta aparece en la primera. No considere el caso en el que aparezcan
elementos intercalados. Por ejemplo:

- Para las listas a= [1,2,3,1,2,4,3] y b= [1,2,3], la respuesta esperada es 1


- Para las listas a= ['hola', 'buenos', 'hola', 'python', 'nivel', 'hola', 'buenos'] y b= ['hola',
'buenos'], la respuesta esperada es 2
- Si la segunda lista no aparece en la primera lista, entonces retorna 0

Problema 3: Cadenas cool - Calificable


Complete la función hay_tres_cadenas_cool que recibe una lista con cadenas de caracteres
y dice si hay al menos 3 cadenas cool. Una cadena es cool si su longitud es dos más y su
primer y último caracter son iguales. Por ejemplo:

- Para la lista a= ['abc', 'xyz', 'aba', '1221'], el resutado esperado es False porque solo tiene 2
cadenas cool
- Para la lista a= ['abc', 'xyz', 'aba', '1221', 'aja'], el resultado es True porque tiene al menos 3
cadenas cool

Entrega
Comprima los dos archivos modificados (consola y módulo) en un solo archivo .zip. El
nombre del archivo comprimido tiene que seguir la siguiente estructura n3-l3-login.zip,
donde login corresponde a su nombre de usuario de Uniandes. Entregue el archivo a través
de BrightSpace en el laboratorio del nivel 3 designado como “L3: Repaso Instrucciones
iterativas”.

También podría gustarte