Ejercitación aplicada
Aleatoriedad con el módulo random
-
Escribe un programa que simule el lanzamiento de una moneda. Esta moneda, que posee 2 lados, permite traernos el concepto de probabilidad: 50% de posibilidades de que salga cara y 50% de que salga cruz. Aunque esta probabilidad es teórica, en la práctica, la moneda puede caer de cualquier lado, haciendo que las chances de 50 y 50 no sean exactas, en los sucesivos lanzamientos.
Para ello, utiliza la función
random.choice()
para seleccionar entre las opciones "cara" y "cruz". Imprime el resultado en pantalla.Haz clic aquí para ver la solución propuesta
La implementación práctica de la función
random.choice()
en Python nos permite comprender varios conceptos fundamentales de la programación.Analicemos paso a paso cómo podemos simular el lanzamiento de una moneda, lo que nos ayudará a entender mejor la sintaxis y estructura del código.
El primer paso crucial es la importación del módulo:
Esta instrucción debe ubicarse al inicio de nuestro programa, actuando como una declaración que le indica a Python que necesitaremos acceder a las funcionalidades del módulo
random
. Es similar a cuando abrimos un libro de referencia antes de comenzar a trabajar: necesitamos tenerlo disponible antes de poder utilizarlo.Para simular el lanzamiento de una moneda, necesitamos crear una lista que represente los posibles resultados:
Analicemos los componentes de esta instrucción:
- Los corchetes [ ] crean una lista, que es una estructura de datos que puede contener múltiples elementos
- Las cadenas "cara" y "cruz" son elementos individuales de la lista, separados por una coma
- Las comillas (ya sean simples o dobles) indican que estamos trabajando con cadenas de texto
- random.choice() es la función que seleccionará aleatoriamente uno de estos elementos
- Los paréntesis ( ) después de 'choice' contienen el argumento que pasamos a la función, en este caso, nuestra lista
La notación
random.choice
utiliza el punto (.) como un operador de acceso, similar a la forma en que podríamos referirnos a un capítulo específico de un libro: "libro.capítulo". Esto le indica a Python que queremos usar la funciónchoice
que se encuentra dentro del módulorandom
.Nuestro programa completo se vería así:
Programa completo Al ejecutar este programa, obtendremos un resultado aleatorio entre "cara" y "cruz", lo que simula efectivamente el lanzamiento de una moneda.
En este caso, el resultado fue "cara", pero si se ejecuta nuevamente, podría ser "cruz"... o "cara" nuevamente. La aleatoriedad inherente de la función
random.choice()
nos permite simular un lanzamiento de moneda realista y emocionante. Si ejecutáramos nuestro programa una cantidad infinita de veces, el resultado sería 50/50 o estaría muy cerca. Pero si solo lo ejecutáramos un par de veces, tal vez la proporción no sería tan clara. Es que son solo probabilidades.En este ejercicio tratamos con las opciones "cara" y "cruz", pero podríamos personalizar nuestra lista según nuestras necesidades. Por ejemplo:
Personalización de la lista# Versión en español resultados_espanol = random.choice(["cara", "cruz"]) # Versión en inglés resultados_ingles = random.choice(["heads", "tails"]) # Versión con números resultados_numericos = random.choice([1, 2])
La flexibilidad de esta función nos permite trabajar con cualquier tipo de secuencia, siempre que mantengamos la sintaxis correcta de la lista y respetemos la estructura de los elementos que queremos incluir en ella. Esta versatilidad hace que
random.choice()
sea una herramienta poderosa para cualquier situación donde necesitemos selección aleatoria en nuestros programas.
-
Escribe un programa que contenga una lista de 5 personas. El programa deberá seleccionar aleatoriamente una persona de la lista e imprimir su nombre.
-
Escribe un programa que simule la generación de datos de prueba aleatorios para un sistema de selección aleatoria de un juego. El programa deberá seleccionar aleatoriamente un número entre 1 y 100 y mostrarlo en pantalla.
-
Escribe un programa que simule el lanzamiento de un dado. Un dado tiene 6 caras, numeradas del 1 al 6. Utiliza la función
random.randint()
para seleccionar un número aleatorio entre 1 y 6. Imprime el resultado en pantalla.
-
Escribe un programa que simule un juego de adivinanza de números. El programa deberá seleccionar aleatoriamente un número entre 1 y 5 y solicitar al usuario que adivine cuál es. Si el usuario adivina correctamente, el programa deberá imprimir un mensaje de felicitaciones. Si el usuario no adivina, el programa deberá imprimir un mensaje de ánimo y mostrar el número correcto.
-
Escribe un programa que genere un problema matemático aleatorio para que el usuario lo resuelva.
El programa deberá seleccionar aleatoriamente dos números entre 1 y 10 y un operador matemático (+, -, *, /).
El programa deberá mostrar el problema al usuario y solicitarle que ingrese la respuesta.
Si el usuario responde correctamente, el programa deberá imprimir un mensaje de felicitaciones. Si el usuario responde incorrectamente, el programa deberá imprimir un mensaje de ánimo y mostrar la respuesta correcta.
-
En una baraja real, cada palo tiene cartas numeradas del 2 al 10, más las figuras (JACK, QUEEN, KING) y el AS.
Escribe un programa que mezcle las cartas y que luego le pregunte al usuario en qué posición se encuentra una carta específica.
El programa deberá seleccionar aleatoriamente una carta de la baraja y mostrarla al usuario.
Luego, el programa deberá solicitar al usuario que ingrese la posición de la carta en la baraja.
Si el usuario adivina correctamente, el programa deberá imprimir un mensaje de felicitaciones. Si el usuario no adivina, el programa deberá imprimir un mensaje de ánimo y mostrar la carta correcta.
Puedes tomar este fragmento de código como punto de partida y completarlo con la lógica necesaria. Analízalo porque en varias líneas de código parece no estar completo o tener errores:
Juego de cartasimport❓ # Creamos una lista con todas las cartas de un palo # Primero las cartas numeradas, luego las figuras cartas = "2", "3", "4", "5", "6", "7", "8", "9", "10", "JACK", "QUEEN", "KING", "AS" # Mezclamos todas las cartas print("\n¡Mezclando las cartas!\n") cartas = random.❓(cartas) # El programa elige una carta al azar carta_a_adivinar = random.❓(cartas) print(f"¿En qué posición crees que quedó la carta {carta_a_adivinar}?") # El programa le pide al usuario que adivine la posición de la carta while ❓: try: respuesta = str(input("Ingresa un número del 1 al 13: ")) if respuesta < 1 or respuesta > 13: print("Por favor, ingresa un número del 1 al 13.") else: ❓ except ValueError: print("El dato ingresado no es válido.") # Obtenemos la posición real de la carta a adivinar posicion_real = cartas.index(carta_a_adivinar) + 1 # Mostramos como quedó el mazo de cartas mezcladas de forma más legible print("\nEl mazo ha quedado ordenado de la siguiente manera, desde la carta superior a la carta inferior:") for posicion, carta in enumerate(cartas, 1): if carta == carta_a_adivinar: print() if posicion_real == ❓: print(f"Carta {posicion}: {carta} --- ¡ADIVINASTE LA CARTA!") else: print(f"Carta {posicion}: {carta} --- ESTA ERA LA CARTA A ADIVINAR") print() else: print(f"Carta {posicion}: {carta}") if respuesta == posicion_real: print("\n¡Increíble! ¡Adivinaste!") else: print(f"\nCasi! La carta {carta_a_adivinar} estaba en la posición {posicion_real} y no en la posición {respuesta}.")
Haz clic aquí para ver la solución propuesta
Juego de cartasimport random # Creamos una lista con todas las cartas de un palo # Primero las cartas numeradas, luego las figuras cartas = ["2", "3", "4", "5", "6", "7", "8", "9", "10", "JACK", "QUEEN", "KING", "AS"] # Mezclamos todas las cartas print("\n¡Mezclando las cartas!\n") random.shuffle(cartas) # El programa elige una carta al azar carta_a_adivinar = random.choice(cartas) print(f"¿En qué posición crees que quedó la carta {carta_a_adivinar}?") # El programa le pide al usuario que adivine la posición de la carta while True: try: respuesta = int(input("Ingresa un número del 1 al 13: ")) if respuesta < 1 or respuesta > 13: print("Por favor, ingresa un número del 1 al 13.") else: break except ValueError: print("El dato ingresado no es válido.") # Obtenemos la posición real de la carta a adivinar posicion_real = cartas.index(carta_a_adivinar) + 1 # Mostramos como quedó el mazo de cartas mezcladas de forma más legible print("\nEl mazo ha quedado ordenado de la siguiente manera, desde la carta superior a la carta inferior:") for posicion, carta in enumerate(cartas, 1): if carta == carta_a_adivinar: print() if posicion_real == respuesta: print(f"Carta {posicion}: {carta} --- ¡ADIVINASTE LA CARTA!") else: print(f"Carta {posicion}: {carta} --- ESTA ERA LA CARTA A ADIVINAR") print() else: print(f"Carta {posicion}: {carta}") if respuesta == posicion_real: print("\n¡Increíble! ¡Adivinaste!") else: print(f"\nCasi! La carta {carta_a_adivinar} estaba en la posición {posicion_real} y no en la posición {respuesta}.")
Este ejercicio nos muestra cómo podemos combinar diferentes conceptos que hemos aprendido: listas, entrada de usuario, condicionales y, por supuesto, la función
shuffle()
para crear algo divertido e interactivo.¿Te animas a pensar en otras formas de usar estas cartas mezcladas para crear juegos diferentes?