Para el Segundo Parcial - WordPress.com · Para el Segundo Parcial . Del libro Introducción a la...
Transcript of Para el Segundo Parcial - WordPress.com · Para el Segundo Parcial . Del libro Introducción a la...
![Page 1: Para el Segundo Parcial - WordPress.com · Para el Segundo Parcial . Del libro Introducción a la Programación con Python realice los siguientes ejercicios en cada da una de las](https://reader035.fdocuments.co/reader035/viewer/2022063006/5fb5dd470a3c813e59714d8e/html5/thumbnails/1.jpg)
Para el Segundo Parcial
![Page 2: Para el Segundo Parcial - WordPress.com · Para el Segundo Parcial . Del libro Introducción a la Programación con Python realice los siguientes ejercicios en cada da una de las](https://reader035.fdocuments.co/reader035/viewer/2022063006/5fb5dd470a3c813e59714d8e/html5/thumbnails/2.jpg)
Del libro Introducción a la Programación con Python realice los siguientes ejercicios en cada da una de las secciones indicadas.
Ejercicios
![Page 3: Para el Segundo Parcial - WordPress.com · Para el Segundo Parcial . Del libro Introducción a la Programación con Python realice los siguientes ejercicios en cada da una de las](https://reader035.fdocuments.co/reader035/viewer/2022063006/5fb5dd470a3c813e59714d8e/html5/thumbnails/3.jpg)
Sección 5.1.6
• 167, 168, 169
• 173
• 177
Sección 5.1.8
• 190, 194
• 197
Tiras de Caracteres
![Page 4: Para el Segundo Parcial - WordPress.com · Para el Segundo Parcial . Del libro Introducción a la Programación con Python realice los siguientes ejercicios en cada da una de las](https://reader035.fdocuments.co/reader035/viewer/2022063006/5fb5dd470a3c813e59714d8e/html5/thumbnails/4.jpg)
Sección 5.1.9
• 204, 206, 207, 209
Slicing
![Page 5: Para el Segundo Parcial - WordPress.com · Para el Segundo Parcial . Del libro Introducción a la Programación con Python realice los siguientes ejercicios en cada da una de las](https://reader035.fdocuments.co/reader035/viewer/2022063006/5fb5dd470a3c813e59714d8e/html5/thumbnails/5.jpg)
Nota: El profesor Jeff es el coordinador de los cursos de Introducción a la Programación. Muchas gracias Jeff !!
![Page 6: Para el Segundo Parcial - WordPress.com · Para el Segundo Parcial . Del libro Introducción a la Programación con Python realice los siguientes ejercicios en cada da una de las](https://reader035.fdocuments.co/reader035/viewer/2022063006/5fb5dd470a3c813e59714d8e/html5/thumbnails/6.jpg)
def foo(x, l):
if l == []:
return []
elif x == l[0]:
return ['x'] + foo(x, l[1:])
else:
return [l[0]] + foo(x, l[1:])
Realice la siguiente ejecución manual de la función e indique que problema resuelve:
>>> foo('a', ['a', 'b', 'c', 'a', 'c', 'c'])
Ejercicio 1
![Page 7: Para el Segundo Parcial - WordPress.com · Para el Segundo Parcial . Del libro Introducción a la Programación con Python realice los siguientes ejercicios en cada da una de las](https://reader035.fdocuments.co/reader035/viewer/2022063006/5fb5dd470a3c813e59714d8e/html5/thumbnails/7.jpg)
En una lista se reciben las notas de n estudiantes de un curso. Escriba una función recursiva notas(lista) que considerando que la nota de aprobación sea 70 y obtenga:
• Cuántos estudiantes aprobaron el curso.
• Cuantos estudiantes reprobaron.
• El promedio de notas.
Ejercicio 2
![Page 8: Para el Segundo Parcial - WordPress.com · Para el Segundo Parcial . Del libro Introducción a la Programación con Python realice los siguientes ejercicios en cada da una de las](https://reader035.fdocuments.co/reader035/viewer/2022063006/5fb5dd470a3c813e59714d8e/html5/thumbnails/8.jpg)
Escriba una función ultimo_par(lista) que recibe una lista no nula y retorna el último número par de la lista dada. Asuma que la lista está compuesta solo por números. La función debe mostrar un comportamiento similar a los siguientes ejemplos:
>>> ultimo_par([23, 72, 149, 34])
34
>>> ultimo_par([12, 5, 21, 3])
12
>>> ultimo_par([1, 3, 5, 7])
No hay ningún par
Ejercicio 3
![Page 9: Para el Segundo Parcial - WordPress.com · Para el Segundo Parcial . Del libro Introducción a la Programación con Python realice los siguientes ejercicios en cada da una de las](https://reader035.fdocuments.co/reader035/viewer/2022063006/5fb5dd470a3c813e59714d8e/html5/thumbnails/9.jpg)
La conjetura de Ulam genera una sucesión de números basado en la siguiente fórmula:
• Inicia con cualquier número positivo.
• Si el número es par, se divide entre 2, si es impar se multiplica por 3 y se le suma 1.
• Se obtienen enteros sucesivamente hasta llegar a obtener el número 1.
Escriba una función ulam(n) que reciba un número, que va a ser el inicial y obtenga la Sucesión de Ulam.
Ejercicio 4
![Page 10: Para el Segundo Parcial - WordPress.com · Para el Segundo Parcial . Del libro Introducción a la Programación con Python realice los siguientes ejercicios en cada da una de las](https://reader035.fdocuments.co/reader035/viewer/2022063006/5fb5dd470a3c813e59714d8e/html5/thumbnails/10.jpg)
Construya una función llamada split(ele, lista). Esta función toma una lista y la parte en sublistas usando como punto de corte el elemento recibido como argumento.
A continuación se muestran ejemplos de como debe comportarse la función:
>>> split('x', [])
()
>>> split('x', [1, 4, 7, 'x', 1, 2, 3])
([1 4 7] [1 2 3])
Ejercicio 5
![Page 11: Para el Segundo Parcial - WordPress.com · Para el Segundo Parcial . Del libro Introducción a la Programación con Python realice los siguientes ejercicios en cada da una de las](https://reader035.fdocuments.co/reader035/viewer/2022063006/5fb5dd470a3c813e59714d8e/html5/thumbnails/11.jpg)
Un cuadrado semi-mágico es aquel en que todas las sub-listas (filas) que lo componen suman lo mismo. Este concepto se aplica en listas formadas por sublistas del mismo tamaño.
Por ejemplo, la lista: [[6, 2, 1], [5, 4, 0], [4, 4, 1]] sería un cuadrado semi-mágico. Escriba una función semi_magico(lista) que reciba una lista de listas, asumiendo que vienen en forma correcta y verifique si el argumento dado es o no un cuadrado semi-mágico.
Ejercicio 6
![Page 12: Para el Segundo Parcial - WordPress.com · Para el Segundo Parcial . Del libro Introducción a la Programación con Python realice los siguientes ejercicios en cada da una de las](https://reader035.fdocuments.co/reader035/viewer/2022063006/5fb5dd470a3c813e59714d8e/html5/thumbnails/12.jpg)
Escriba una función booleana alternada(lista) que reciba una lista no nula y verifique si sus elementos son alternados entre pares e impares.
>>> alternada([2, 5, 8, 7, 10])
True
>>> alternada([1, 2, 3, 4, 6])
False
>>> alternada([1, 2, 3, 4, 5])
True
Ejercicio 7
![Page 13: Para el Segundo Parcial - WordPress.com · Para el Segundo Parcial . Del libro Introducción a la Programación con Python realice los siguientes ejercicios en cada da una de las](https://reader035.fdocuments.co/reader035/viewer/2022063006/5fb5dd470a3c813e59714d8e/html5/thumbnails/13.jpg)
Escriba una función parejas(num) en la cual num es un valor entre 2 y 100 que encuentre todas las parejas (sin importar el orden) de números que suman el número dado. Ejemplo:
>>> parejas(4)
[[0, 4], [1, 3], [2, 2]]
Ejercicio 8
![Page 14: Para el Segundo Parcial - WordPress.com · Para el Segundo Parcial . Del libro Introducción a la Programación con Python realice los siguientes ejercicios en cada da una de las](https://reader035.fdocuments.co/reader035/viewer/2022063006/5fb5dd470a3c813e59714d8e/html5/thumbnails/14.jpg)
Escriba una función coincide(lista) que recibe una lista de números enteros e indique si algún elemento de la lista coincide con la suma de todos los que le preceden.
>>> coincide([2, 4, 3, 9, 14]) # 2 + 4 + 3 = 9
True
>>> coincide([5, 6, 14, 18, 20, 41])
False
Ejercicio 9
![Page 15: Para el Segundo Parcial - WordPress.com · Para el Segundo Parcial . Del libro Introducción a la Programación con Python realice los siguientes ejercicios en cada da una de las](https://reader035.fdocuments.co/reader035/viewer/2022063006/5fb5dd470a3c813e59714d8e/html5/thumbnails/15.jpg)
Escriba una función amigos(num) que reciba un número entero y encuentre todas las parejas de números amigos que son inferiores al número dado. Se dice que dos números son amigos si cada uno de ellos es igual a la suma de los divisores del otro.
Por ejemplo 220 y 284 son dos números amigos, ya que los divisores de 220 son:
1 + 2 + 4 + 5 + 10 + 11 + 20 + 22 + 44 + 55 + 110 = 284.
Los divisores de 284 son:
1 + 2 + 4 + 71 + 142 = 220.
Ejercicio 10
![Page 16: Para el Segundo Parcial - WordPress.com · Para el Segundo Parcial . Del libro Introducción a la Programación con Python realice los siguientes ejercicios en cada da una de las](https://reader035.fdocuments.co/reader035/viewer/2022063006/5fb5dd470a3c813e59714d8e/html5/thumbnails/16.jpg)
En una competencia deportiva 10 jueces califican a los competidores en una escala de 1 a 100. Para obtener la calificación de un competidor, se eliminan la más alta y la más baja y se hace un promedio de las calificaciones restantes. Debe implementar la función calificacion(lista) que recibe una lista con las calificaciones de los 10 jueces y que obtenga la calificación de un competidor.
Ejercicio 11
![Page 17: Para el Segundo Parcial - WordPress.com · Para el Segundo Parcial . Del libro Introducción a la Programación con Python realice los siguientes ejercicios en cada da una de las](https://reader035.fdocuments.co/reader035/viewer/2022063006/5fb5dd470a3c813e59714d8e/html5/thumbnails/17.jpg)
Se desea recibir una lista no nula y devolver otra compuesta por dos sublistas, la primera tendrá a los elementos que ocupan un lugar impar, mientras que la segunda contendrá a los que ocupan un lugar par.
>>> separar(['a', 'b', 'c', 'd', 'e'])
[['b', 'd'], ['a', 'c', 'e']]
Ejercicio 12
![Page 18: Para el Segundo Parcial - WordPress.com · Para el Segundo Parcial . Del libro Introducción a la Programación con Python realice los siguientes ejercicios en cada da una de las](https://reader035.fdocuments.co/reader035/viewer/2022063006/5fb5dd470a3c813e59714d8e/html5/thumbnails/18.jpg)
Escribir una función llamada concordar que reciba como argumentos 3 listas: una lista patrón, una lista sustitución y una lista original. Se debe sustituir la aparición de los elementos de la lista patrón en la lista original por el respectivo elemento en la lista sustitución. Note que el largo de la lista patrón y la lista sustitución deben ser iguales.
Ejemplos:
>>> concordar([], [], [1, 2, 3, 4, 5])
[1, 2, 3, 4, 5]
>>> concordar([1, 2, 3], ['a', 'b', 'c'], [2, 4, 1, 5, 6, 3])
['b', 4, 'a', 5, 6, 'c']
Ejercicio 13
![Page 19: Para el Segundo Parcial - WordPress.com · Para el Segundo Parcial . Del libro Introducción a la Programación con Python realice los siguientes ejercicios en cada da una de las](https://reader035.fdocuments.co/reader035/viewer/2022063006/5fb5dd470a3c813e59714d8e/html5/thumbnails/19.jpg)
Definir una función get-profundidad(lista), que obtiene el número máximo de listas anidadas que aparecen en una lista.
>>> get_profundidad([[1, [2]], [[[5, 7]]], 4])
3
Ejercicio 14
![Page 20: Para el Segundo Parcial - WordPress.com · Para el Segundo Parcial . Del libro Introducción a la Programación con Python realice los siguientes ejercicios en cada da una de las](https://reader035.fdocuments.co/reader035/viewer/2022063006/5fb5dd470a3c813e59714d8e/html5/thumbnails/20.jpg)
Escriba una función llamada natural(lista) que reciba una lista de números desordenada y produce una lista de listas, donde cada sublista mantiene el orden natural de la lista original. Por ejemplo:
>>> natural([3, 4, 5, 1, 2, 3, 4, 7, 3, 2, 1])
[[3, 4, 5], [1, 2, 3, 4, 7], [3], [2], [1]]
Ejercicio 15