Recursos Python

Recursos libres para aprender a programar en español

View the Project on GitHub flbulgarelli/recursos-python

Basado en https://github.com/MumukiProject/mumuki-guia-javascript-ejercitacion-bucles

Práctica Repetición

1. obtener_indice(valor, lista)

Definí una función obtener_indice que tome como argumento un valor cualquiera valor y un lista cualquiera lista y devuelva el índice del primer ítem con dicho valor en la lista, o -1 si no hay ninguno.

obtener_indice(12, [5, 7, 12, 34, 54, 2, 12])
2
obtener_indice(83, [5, 7, 12, 34, 54, 2, 12])
-1

2. repetir(valor, cantidad)

Definí una función repetir que tome como argumento un valor valor y un número entero cantidad, y devuelva una lista con valor repetido cantidad de veces.

repetir('lovelace', 3)
['lovelace', 'lovelace', 'lovelace']
repetir('a', 5)
['a', 'a', 'a', 'a', 'a']
repetir('python', 0)
[]

3. sumar_impares_hasta(numero)

Definí una función sumar_impares_hasta que tome como argumento un número numero y que devuelva la suma de todos los impares empezando desde 0 hasta dicho numero inclusive.

sumar_impares_hasta(5)
9 #(1 + 3 + 5 = 9)
sumar_impares_hasta(13)
49
sumar_impares_hasta(47)
576

4. cuenta_regresiva(numero_inicial)

Definí una función cuenta_regresiva que tome como argumento un número entero numero_inicial y que devuelva un lista con cuyo primer ítem sea numero_inicial y los demás ítems sean números enteros sucesivos descendientes, hasta llegar a 0.

cuenta_regresiva(3)
[3, 2, 1, 0]
cuenta_regresiva(5)
[5, 4, 3, 2, 1, 0]

4. invertir(lista)

Definí una función invertir que tome como argumento un lista lista y que devuelva un lista con los mismos valores pero en orden invertido.

>>> invertir([1, 2, 3])
[3, 2, 1]
>>> invertir([5, 7, 99, 34, 54, 2, 12])
[12, 2, 54, 34, 99, 7, 5]

4. remover_duplicados(lista)

Definí una función remover_duplicados que tome como argumento un lista lista y que devuelva un lista con los mismos valores de lista pero sin valores duplicados.

>>> remover_duplicados([1, 1, 1])
[1]
>>> remover_duplicados([1, 1, 2, 2, 3, 3])
[1, 2 ,3]
>>> remover_duplicados([5, 23, 8, 5, 5, 44, 23])
[5, 23 ,8, 44]

5. repetir_letras(palabra, cantidad)

Definí una función repetir_letras que tome como argumento un string palabra y un número entero cantidad, y devuelva una string donde cada letra de palabra esté repetida cantidad de veces.

>>> repetir_letras('hola', 2)
'hhoollaa'
>>> repetir_letras('ada', 3)
'aaadddaaa'
>>> repetir_letras('ah!', 5)
'aaaaahhhhh!!!!!'
>>> repetir_letras('basta', 1)
'basta'

6. capitalizar_palabras(string)

Definí una función capitalizar_palabras tome como argumento un string string y devuelva un string donde cada palabra está capitalizada (con la primera letra máyuscula). Dejar las demás letras como están.

>>> capitalizar_palabras('Esto es un título')
'Esto Es Un Título'
>>> capitalizar_palabras('había una vez')
'Había Una Vez'
>>> capitalizar_palabras('OMG')
'OMG'

7. sumar_seccion(lista, comienzo, cantidad)

Definí una función sumar_seccion que tome como argumento un lista de números enteros lista, un número entero comienzo y un número entero cantidad, y que devuelva la suma de cantidad de números de lista empezando a contar desde el ítem con índice comienzo.

>>> sumar_seccion([2, 2, 4, 3, 10, 20, 5], 0, 3)
8 #(2 + 2 + 4 = 8)
>>> sumar_seccion([2, 2, 4, 3, 10, 20, 5], 2, 4)
37 #(4 + 3 + 10 + 20 = 37)
>>> sumar_seccion([2, 2, 4, 3, 10, 20, 5], 4, 1)
10

8. es_subconjunto(subconjunto, conjunto)

Definí una función es_subconjunto que tome como argumento dos listas, subconjunto y conjunto, y devuelva True si subconjunto es realmente subconjunto de conjunto, es decir, si todos los valores de subconjunto están en conjunto.

>>> es_subconjunto([1], [1, 2, 3])
True
>>> es_subconjunto([1, 2, 3], [1, 2, 3, 4, 5])
True
>>> es_subconjunto([27, 49, 54], [54, 27, 8, 27, 49])
True
>>> es_subconjunto([1, 2, 3], [1, 2])
False
>>> es_subconjunto([1], [2, 3, 4])
False

9. tiene_bloque(lista)

Definí una función tiene_bloque que tome como argumento un lista lista y devuelva True si dicho lista tiene un bloque de 3 o más ítems consecutivos idénticos, o False si no tiene.

>>> tiene_bloque([1, 2, 3])
False
>>> tiene_bloque([1, 1, 1, 2, 3])
True
>>> tiene_bloque([1, 2, 3, 3, 3])
True
>>> tiene_bloque([1, 2, 3, 3, 3, 8])
True
>>> tiene_bloque([1, 2, 2, 3, 3, 4])
False

10. es_palindromo(palabra)

Definí una función es_palindromo que tenga como parámetro un string palabra y devuelva True si dicha palabra es palíndroma, es decir, si puede leerse de igual manera de izquierda a derecha que de derecha a izquierda, o False sino.

>>> es_palindromo('kayak')
True
>>> es_palindromo('reconocer')
True
>>> es_palindromo('mama')
False
>>> es_palindromo('python')
False

11. agregar_al_principio(lista, elemento)

Definí un procedimiento agregar_al_principio que agregue un elemento al principio de una lista (y no al final, como lo haría push)

>>> unos_numeros = [3, 5, 9]
>>> agregar_al_principio(unos_numeros, 1)
>>> unos_numeros
[1, 3, 5, 9]
>>> unos_string = ["mundo", "!"]
>>> agregar_al_principio(unos_strings, "hola")
>>> unos_strings
["hola", "mundo", "!"]