Ir al contenido principal

EJERCICIOS RESUELTOS PARA PRACTICAR EN PYTHON

En esta sección podrás encontrar una colección de ejercicios para practicar y dominar Python. Los primeros ejercicios serán los más sencillos y la dificultad irá en aumento a medida que avances. Podrás practicar con estructuras condicionales, bucles for, while, listas, etc. Hay un enlace a la solución en cada ejercicio. Lo mejor es que primero lo consigas por tu cuenta y después compruebes la solución si quieres compararla. En la mayoría de casos, existirán muchas soluciones válidas. Iré añadiendo ejercicios nuevos a esta página así que merece la pena echar un vistazo de vez en cuando.

Todo lo que necesitas es un editor de código, tener python instalado y crear un fichero .py para implementar las funciones. Todos los ejercicios siguen la misma estructura:

  1. Definición de la función. En el interior de la función escribes tu código para resolver el problema.
  2. Función main con llamadas para probar el resultado. Puedes utilizar el mismo fichero para todos los ejercicios, manteniendo una única función main en la que ir añadiendo las llamadas a las funciones para probarlas.
Si utilizas un mismo fichero .py para todos los ejercicios (opción más recomendable), basta con que vayas añadiendo cada función y mantengas un único método main que ejecutes al final del fichero.

Ejemplo:

def my_function():
    # Tu código
    return "Hola Mundo"

def main():
    # Función principal para las pruebas
    print(my_function())

main()

1. Retornar una cadena de texto

Implementa una función hola_mundo() que retorne el texto "Hola Mundo".

def hola_mundo():
    # Escribe aquí tu código
   

def main():
    # Función principal para las pruebas
    print(hola_mundo())

main()

Salida esperada en la consola: 

Hola Mundo

Solución

2. Sumar dos números

Implementa una función que reciba dos números y retorne el resultado de sumarlos.

Parámetros de entrada:
  1. num1: Primer sumando
  2. num2: Segundo sumando
def add(num1, num2):
    # Escribe aquí tu código

def main():
    # Función principal para las pruebas
    print(add(1, 1))
    print(add(2, 5))
    print(add(-10, 15))

main()

Salida esperada en la consola:

2
7
5

3. Convertir una cadena de texto a mayúsculas

Implementa una función que reciba una cadena de texto en minúsculas y la retorne en mayúsculas. 

Parámetros de entrada:
  1. text: Cadena de texto en minúsculas
Ejemplo de funcionamiento:
  1. Cadena de entrada: "hola mundo"
  2. Cadena resultante: "HOLA MUNDO"
def uppercase(text):
    # Escribe aquí tu código

def main():
    # Función principal para las pruebas
    print(uppercase("hola mundo"))

main()

Salida esperada en la consola

HOLA MUNDO

4. Comprobar si un número es par

Implementa una función que reciba un número y compruebe si es par.

Parámetros de entrada:
  1. number: Número cuya paridad debe ser comprobada

def is_even(number):
    # Escribe aquí tu código

def main():
    # Función principal para las pruebas
    print(is_even(5))
    print(is_even(2))
    print(is_even(264))
    print(is_even(5007))

main()

Salida esperada en la consola:

False
True
True
False

5. Comprobar si una lista es de longitud par

Implementa una función que reciba una lista y compruebe si tiene longitud par.

Parámetros de entrada:
  1. array: Array o lista para cuya longitud se debe comprobar si es par.

def list_size_even(array):
    # Escribe aquí tu código

def main():
    # Función principal para las pruebas
    print(list_size_even([1, 2, 3, 4]))
    print(list_size_even([1, 2, 3]))

main()

Salida esperada en la consola:

True
False

6. Encontrar números pares en una lista

Implementa una función que reciba una lista de números enteros y devuelva una nueva lista con los que sean pares.

Parámetros de entrada:
  1. array: Lista de números enteros cuyos números pares deben conformar la lista resultado de la función.
def find_even_numbers(array):
    # Escribe aquí tu código

def main():
    # Función principal para las pruebas
    print(find_even_numbers([1, 2, 3, 4, 5, 6]))
    print(find_even_numbers([1, 3, 5, 7, 9]))

Salida esperada en la consola:

[2, 4, 6]
[]

7. Cara o cruz

Implementa una función que aleatoriamente retorne "cara" o "cruz", con igual probabilidad. La idea es lograr un funcionamiento equivalente a lo que sería lanzar una moneda al aire.

Pista: En este caso puede ser útil importar la librería random.

def cara_o_cruz():
    # Escribe aquí tu código

def main():
    # Función principal para las pruebas
    print(cara_o_cruz())

main()

Salida esperada por consola: 

Texto "cara" o "cruz" indistintamente. Debería ser aleatorio al hacer intentos sucesivos.

8. Lista al cuadrado

Implementa una función que reciba una lista de números y eleve todos al cuadrado.

Parámetros de entrada:
  1. array: Lista de números.
Ejemplo de funcionamiento:
  1. Lista de entrada: [1, 2, 3, 4]
  2. Lista de salida: [1, 4, 9, 16]
def square_list(array):
    # Escribe aquí tu código

def main():
    # Función principal para las pruebas
    print(square_list([1, 2, 3, 4, 5]))
    print(square_list([2, 4, 7, 0]))

main()

Salida esperada por consola:

[1.0, 4.0, 9.0, 16.0, 25.0]
[4.0, 16.0, 49.0, 0.0]

9. Próximamente...

Comentarios

Entradas populares de este blog

AMD Ryzen 4000 a principios de 2020.

Hace menos de una semana que la directora ejecutiva de AMD, Lisa Su, ha comunicado que la cuarta generación de los procesadores Ryzen llegará a principios de 2020. Concretamente, los primeros en llegar serán para portátiles y posteriormente para equipos de sobremesa. De este modo, AMD estrenaría la arquitectura Zen3 de 7nm este próximo año. Eso sí, como hemos comentado antes, los primeros en llegar, en el mes de enero, serían para ordenadores portátiles con arquitectura Zen2 de 7nm, que según lo que se sabe se presentarán en el CES de Las Vegas. Los Ryzen 4000 para ordenadores de sobremensa, con la nueva arquitectura Zen3 de 7nm, llegarán posteriormente, según se especula, para mediados de año. Cabe destacar también que se espera que la nueva arquitectura Zen3 sea compatible con los sockets actuales de AMD por lo que debería ser soportada por la mayoría de las placas base actuales para Ryzen (socket AM4). Como es lógico, con la arquitectura Zen3 se esperan aumentos e

PC Gaming por piezas por 500 euros. [2019]

Este ordenador por piezas de preseupuesto medio-bajo será capaz de correr con buena calidad gráfica y tasas de frames más que aceptables casi cualquier videojuego actual. Saldrá por menos de 500 euros (al menos en España), y podrá ser incluso más barato aprovechando ofertas de Black Friday.  Enlace a la configuración en pccomponentes: https://www.pccomponentes.com/configurador/398cA0522 Importante tener en cuenta que en la lista no incluyo el sistema operativo. Asumo que cada uno puede elegir el que prefiera. Eso sí, para quien esté interesado en adquirir Windows 10, se puede encontrar a precio muy asequible en Instant Gaming. Estos son los componentes (añado enlaces a la página española pccomponentes para más detalles y compra): Procesador:  Intel Core i3-9100F 3.6GHz. Cuatro núcleos y frecuencia de 3.6GHz llegando a 4.20GHz en overclock. https://www.pccomponentes.com/intel-core-i3-9100f-36ghz Placa base:  MSI B360M PRO-VDH. Cuenta con todas las funcionalidade

Funciones hash: el invento que protege tus contraseñas de los hackers y te permite minar criptomonedas.

La criptografía es casi tan antigua como la necesidad de ocultar la información escrita. Son muy diversas las técnicas que se han empleado desde siglos atrás para transformar un texto en claro en uno cifrado, ilegible para quien no lo pueda descifrar. Uno de los ejemplos clásicos y más sencillos es el cifrado César, utilizado por Julio César para comunicarse con sus tropas durante la guerra contra los galos. Este mecanismo de cifrado se basa en sustituir cada letra del mensaje por aquella que se encuentra desplazada n posiciones en el alfabeto. Por ejemplo, si n = 2 , la sustitución alfabética sería la siguiente: Alfabeto en claro:  ABCDEFG HIJKLMNÑOPQRSTUVWXYZ   Alfabeto cifrado:  CDEFGHIJKLMNÑOPQRSTUVWXYZAB Y si cifrasemos la palabra HOLA  con n = 2  obtendríamos el siguiente resultado:  H -> J, O -> Q, L ->N, A -> C:  JQNC Lo que llamaríamos la clave de cifrado es, en este caso  n = 2 . Como es lógico, cualquiera que conozca la clave, podrá revertir el cifrado desplazan