Retos en Python

Aprender haciendo. Esa es la idea. Vamos a proponer una serie de ejemplos para programar código en Python pensando en el que inicia su formación en este lenguaje.

Son casos prácticos que se pueden resolver por varios métodos. Afortunadamente Python es un lenguaje de programación ideal para comenzar a programar e introducirse en el mundo del código.

Comenzaremos por el conocido "Hola mundo" e iremos aumentando progresivamente el nivel y abordando diferentes comandos del lenguaje.

Proponemos cada reto y puedes tomarte tu tiempo para resolverlo. Luego, puedes pulsar sobre la solución y ver el caso resuelto por varios métodos. Las diferentes formas de resolver cada reto suponen un buen sistema de entrenamiento.


Realmente dominas algo cuando eres capaz de hacerlo de varias formas


Si tienes nuevos retos puedes dejarlos en los comentarios, seguro que ayudarán a más personas en su capacitación en Python. Si tienes nuevos métodos de resolución para alguno de los retos también te invitamos a dejarlos en los comentarios correspondientes a cada reto.

¡Adelante con los ejercicios en Python!


Instalar Python

Instalar Python


Hola mundo

Imprimir la expresión "Hola mundo".


Operaciones con números

Dados dos números hacer con ellos las operaciones básicas.


Número mayor y menor

Dados dos números decir cuál es mayor, o si ambos son iguales.


Aleatorios

Generar un número aleatorio.


Intervalos

Generar un número aleatorio entre 1 y 120. Decir si se encuentra en el intervalo entre 10 y 50, o bien si es mayor de 50 hasta 100, o bien si es mayor de 100, o bien si es menor de 10.


Bucles

Listar los números del 1 al 10.


Pares

Listar los números pares del 10 al 20.


Series

Listar los números entre un valor inicial y uno final, con un cierto intervalo. Al final dar la suma de todos los valores listados.


Progresión geométrica

Calcular cuantos granos de trigo tendríamos que utilizar si por cada casilla de un tablero de ajedrez pusiéramos un grano en la primera casilla, dos en la segunda, cuatro en la tercera, y así doblando hasta la última.


Unir listas

Generar primero una lista con los números entre 0 y 10, luego generar otra lista con los números del 11 al 20. Unir ambas lista e imprimir el resultado.


Cadenas alfanuméricas

Listar los caracteres de la cadena ‘2001: A Space Odyssey’.


Media de dos números

Calcular la media de dos números.


Funciones

Crear una función que calcule el cuadrado de un número. Probar la función con los números entre -10 y +10. Crear otra función que lo único que hace es imprimir al final la frase “Programa finalizado”. Ejecutar ambas funciones.



Media de n valores

Calcular la media de n números.


Media ponderada

Calcular la media ponderada de una serie de valores.


Adivina el número secreto

Se genera un número aleatorio entero entre 1 y 100. El usuario debe adivinar el número secreto, diciendo en cada tirada si es mayor o menor.


Longitud de una cadena

Crear una función que calcule la longitud de una cadena alfanumérica. Crear otra función que dada una cadena devuelva el primer caracter en mayúsculas y el resto en minúsculas. Pasar una palabra por ambas funciones y dar el resultado.


Capitalización compuesta

Crear una aplicación que trabaje con la ley de capitalización compuesta.


Bisiesto

Crear una función que dado un año diga si es bisiesto.


Índice de masa corporal

Crear una función que calcule el Índice de Masa Corporal (Body Mass Index [BMI]).


Fecha y hora

Imprimir la fecha y hora actuales.


Calendario

Importar la librería calendar. Imprimir el calendario del mes actual.


Palíndromos

Dada una cadena decir si es un palíndromo.


Cifras pares e impares

Generar un número aleatorio entero entre un millón y dos millones. Imprimir ese número en pantalla y decir cuántas cifras pares e impares tiene.


Máximo y mínimo

Generar 10 números aleatorios y calcular el máximo y el mínimo.


Bucles anidados

Generar la tabla de multiplicar.


Pitágoras

Indicar las dimensiones de los triángulos rectángulos donde todas sus longitudes sean números enteros. Listarlos hasta el límite donde los catetos lleguen hasta 100.


Encriptación

Encriptar y desencriptar frases usando la clave MURCIELAGO. Cada letra de la frase que coincida con alguna letra de la clave se sustituye por un número siguiendo el orden 0123456789.


Acumulado

Listar los números entre 1 y 10. En la columna contigua sus cuadrados, y en la tercera columna sus cubos. Al final dar la suma de todos los valores de cada columna.


Ordenar números

Imprimir una lista de 10 números aleatorios sin repetición que varíen en el rango 80 a 99. Volver a imprimir la lista pero ordenada.


Aleatorios con excepciones

Generar números aleatorios pares entre 100 y 130, salvo 110 y 120.


Alternos con excepciones

Imprimir diez números aleatorios sin repetición entre 100 y 130, excepto los números 110, 115, 120 y alternando par, impar, comenzando por par.


Generar y ordenar palabras

Crear una serie de 10 palabras donde sus letras se obtienen de forma aleatoria. Mostrar estas palabras y mostrar esas mismas palabras ordenadas alfabéticamente.


Imprimir con color

Generar aleatoriamente la nota de diez alumnos. Calcular la media e imprimir en pantalla la nota de cada uno y la desviación de cada una de las notas respecto a la media. Los que estén por encima o por debajo de la media que se imprimen en colores diferentes.

  • Método 1
  • Método 2

Cubo 3D

Generar las notas de 5 estudiantes, en 6 asignaturas, durante 4 cursos. Mostrar en pantalla los datos de forma que seleccionado un elemento lo muestre según su curso, asignatura o compañeros.

  • Método 1
  • Método 2

Polinomio

Dado el polinomio y=x^4-3x^2+2 calcular el valor de y para valores de x que varían en el rango -2, +2 con incremento de 0,1.


Fibonacci

Dar los n primeros valores de la sucesión de Fibonacci.


Tuplas

Crear una tupla con las cuatro estaciones del año. Imprimir la tupla, imprimir su longitud e imprimir los elemento de la tupla uno a uno.

  • Método 1
  • Método 2

Diccionarios

Dado un número del 1 al 12, mostrar el mes correspondiente y el número de días que tiene. Trabajar con diccionarios.


Diccionario con Tupla

Crear un diccionario donde la clave sean los números del 1 al 100, y para cada uno de los números tenemos una tupla como valor, donde la tupla contiene el cuadrado de ese número, e indica si el número es primo o no.

  • Método 1
  • Método 2

Letra del DNI

Calcular la letra del DNI.


Triángulos factibles

Dados tres lados decir si es posible construir un triángulo con ellos. En caso afirmativo decir si el triángulo formado es equilátero, isósceles o escaleno.


Booleanos

Generar aletoriamente un número del 100.000 al 200.000. Si ese número tiene un tres pierdes la partida y si carece de treses entonces has tenido éxito en el juego.


Números primos

Listar los n primeros números primos.

  • Método 1
  • Método 2

Criba de Eratóstenes

La criba de Eratóstenes es un algoritmo que permite hallar todos los números primos menores que un número dado.

  • Método 1
  • Método 2

Juego de la tirada más larga

Cada tirada genera una sucesión de números aleatorios entre 1 y 100. La tirada finaliza cuando se obtiene un número par, entre 40 y 60. El juego lanza 20 tiradas y al final se dice que tirada ha sido la más larga.


Frecuencias

Construir una lista que contenga el código de 6 aeropuertos internacionales: MAD, JFK, LHR, CDG, AMS, FRA. Generar un dado de seis caras, con las siguientes probabilidades 25%, 22%, 18%, 14%, 11%, 10%, que corresponden a cada uno de los aeropuertos respectivamente. Generar un listado de 100 aeropuertos extraídos entre los seis del array y que aparezcan de forma aleatoria cada uno según su probabilidad. Finalmente mostramos los aeropuertos y el número de veces que aparece cada uno de ellos.


Juego del número secreto

Se genera un número secreto entero entre 1 y 100 que debe adivinar el jugador. Por cada número que dice el jugador el programa contesta diciendo si el número secreto es mayor o menor hasta que llegue a adivinarlo.

  • Método 1
  • Método 2

Juego de la última piedra

Programar el juego de la última piedra.

  • Método 1
  • Método 2

Convertir segundos

Dados un cierto número se segundos expresarlos como días, horas, minutos y segundos.


Conversión de monedas y billetes

Dada una cantidad de dinero indicar cuantos billetes y monedas de cada tipo son necesarios como mínimo.

Ordenar las ciudades

Con la lista de ciudades que está abajo, pide al usuario que añada otra a la lista. Ahora imprime cuantas letras tiene cada ciudad y ordena el array de las que tengan menos letras a las que más.

Ciudades:

  • Madrid
  • Ottawa
  • Estocolmo
  • Oslo

  • Solucíon

Dibujar un cuadrado

Dibujar un cuadrado que muestre también sus dos diagonales.

  • Método 1
  • Método 2

Intersección de rectas

Dadas dos rectas, calcular el punto de intersección y representarlas.

  • Método 1
  • Método 2

Camino aleatorio

Representar gráficamente el camino de un borracho. Comprobar si dados n pasos la distancia que alcanza tiende a la raiz cuadrada de n que es el valor teórico de esa distancia.

  • Método 1
  • Método 2

Movimiento en un canvas

Crear un cuadrado en un canvas que se vea cómo se mueve y gira.

  • Método 1
  • Método 2

Rectángulos aleatorios

Representar gráficamente rectángulos aleatorios.

  • Método 1
  • Método 2

Juego de la tortuga

Crear un juego donde se pueda dibujar en un canvas con los cursores del teclado.

  • Método 1
  • Método 2

Representar funciones

Representar gráficamente el polinomio y=x^4-3x^2+2.

  • Método 1
  • Método 2

Seno y coseno

Crear un CANVAS donde representar las funciones seno y coseno en dos colores diferentes.

  • Método 1
  • Método 2

Producto de polinomios

Crear un procedimiento que calcule el producto de dos polinomios.

  • Método 1
  • Método 2

Reversión a la media

Crear un vector de un millón de datos aleatorios según una distribución normal. Ir calculando la media a medida que se van generando los valores, e irla representando en un Canvas para ver como se tiende a la media a medida que aumenta el número de datos.

  • Método 1
  • Método 2

Generar palabras

Generar palabras de 6 caracteres formados por 3 parejas: cvcvcv, donde c representa una consonante y donde v una vocal. Hacer una lista de varias palabras separadas por coma, y probar la lista en una página de dominios de internet para ver si existe alguno de estos libre. Ejemplo: casato.com

  • Método 1
  • Método 2

Contraseñas aleatorias

Generar posibles contraseñas de 11 dígitos donde los 8 primeros sean letras y los 2 últimos sean números, separando las letras de los números con una barra baja (_). Se generan de forma aleatoria. Las 8 letras están compuestas por 4 parejas. Dentro de cada pareja la primera letra es una consonante y la segunda es una vocal. La primera letra de todas es mayúscula y las 7 letras restantes son minúsculas. Ejemplo: Macapaca_17. Al lanzar el proceso se generan series de 20 contraseñas que se muestran en pantalla.

  • Método 1
  • Método 2

Máximo Común Divisor

Programar el algoritmo de Euclides para calcular el MCD (Máximo Común Divisor).

  • Método 1
  • Método 2

Mínimo común múltiplo

Calcular el mcm (mínimo común múltiplo).

  • Método 1
  • Método 2

Cuadrados latinos

Generar cuadrados latinos de tamaño n×n.

  • Método 1
  • Método 2

Resolver cuadrados latinos

Resolver cuadrados latinos.

  • Método 1
  • Método 2

Cálculo de determinantes

Calcular determinantes de orden nxn.

  • Método 1
  • Método 2

Hacer ceros

Reducir una matriz haciendo ceros por Gauss-Jordan.

  • Método 1
  • Método 2

Matriz inversa

Calcular una matriz inversa de orden nxn.

  • Método 1
  • Método 2

Tiro parabólico

Crear un Canvas para ilustrar el tiro parabólico calculando la distancia alcanzada en función del ángulo α y la velocidad inicial.

  • Método 1
  • Método 2

Guerra a cañonazos

Crear un juego donde los dos adversarios se disparan alternativamente balas de cañón variando el ángulo y la velocidad hasta que uno de ellos alcanza al otro.

  • Método 1
  • Método 2

Tres en raya

Programar el juego de las tres en raya.

  • Método 1
  • Método 2

Gráfico histórico del IBEX

Descargar un archivo con formato csv de la página de Yahoo Finanzas con la cotización del IBEX. Crear un procedimiento en Python que lea el fichero y finalmente obtenga un gráfico del histórico del cierre del IBEX. Tomar el periodo desde el 5-julio-1993 hasta la actualidad.

  • Método 1
  • Método 2

Puzle

Programar un juego del tipo Sliding puzzle con los números del 1 al 8. https://tinyurl.com/puzzlemagnito

  • Método 1
  • Método 2

El juego de la vida

Programar el juego de la vida.

  • Método 1
  • Método 2

2 comentarios:

  1. Si el reto 58 no me sale, donde puedo ver la solucion?

    ResponderEliminar
  2. Hola Damian.
    El reto 58 se titula "Juego de la tortuga" y dice: "Crear un juego donde se pueda dibujar en un canvas con los cursores del teclado".
    Aún no está resuelto, ni publicado. Como ves la mayoría de los retos están resueltos por varios métodos y algunos únicamente están enunciados y su resolución está pendiente a futuro.
    Si alguien que llegue por este blog quiere aportar su solución será bienvenida.
    Un saludo.

    ResponderEliminar