04 Python - Math y Random
04 Python - Math y Random
04 Python - Math y Random
Si una subrutina se va a utilizar en un único programa, se suele definir en el propio programa. Pero cuando una subrutina
se va a utilizar en varios programas, no es necesario repetirla en cada programa (se perderían algunas de las ventajas
comentadas anteriormente), sino que se puede incluir en un archivo aparte al que los programas pueden acceder para
recuperar las subrutinas. Estos archivos reciben el nombre de bibliotecas (en español se suele decir mucho librería,
traduciendo incorrectamente el término inglés library).
En Python se utiliza el término función para referirse a las subrutinas y el término módulo para referirse a las bibliotecas.
Todos los conceptos que hemos visto hasta ahora los hemos resuelto utilizando solo la sintaxis que nos provee Python y
un conjunto de funciones básicas que se incluyen automáticamente como por ejemplo son print(), input(), etc.
En Python se incluye una biblioteca extra de funciones, variables, clases etc. que nos facilitan la resolución de problemas
en una gran diversidad de áreas como matemáticas, estadísticas, compresión de datos, internet, interfaces visuales etc.
Veremos en este concepto como se importan algunos módulos de la biblioteca estándar y como se accede a su
funcionalidad.
Algo para tener en cuenta:
En Python, a diferencia de muchos lenguajes, se puede importar la biblioteca completa o solo la función que necesito
de la biblioteca, e inclusive se puede renombrar a la función según nuestra necesidad. Si se importan varias
funciones, los nombres de las funciones deben separarse como comas.
Por ejemplo, la función pow de la librería math calcula el resultado de una potencia dados la base y el exponente, la
función trunc elimina los decimales de cualquier número real.
Módulo random
La función randint(a, b) genera un número entero entre a y b, ambos incluidos. a debe ser inferior o igual a b.
from random import randint
print(randint(10, 20)) 12
La función randrange(a, b, c) genera un número entero entre los valores generados por range(a, b, c). La
función randrange() admite uno, dos o tres argumentos.
from random import randrange
print(randrange(10)) 9
#genera números al azar entre 0 y 9 (10 números a partir del 0)
La función random() genera un número decimal entre 0 y 1 (puede generar 0, pero no 1).
from random import random
print(random())
0.5310449231726346
La función uniform(a, b) genera un número decimal entre a y b (puede generar a y, debido a la forma de redondear de
Python, puede que genere b o no).
from random import uniform
print(uniform(5, 8))
6.216950987513291
La función choice(secuencia) elige un valor al azar en un conjunto de elementos. Los conjuntos de elementos se
escriben como listas, tuplas o ranges, que son tipos de datos que veremos en las próximas guías.
Por ahora entenderemos que si los elementos son constantes se pueden escribir entre paréntesis (tuplas) y son
variables, entre corchetes (listas). Siempre separando los elementos con comas
from random import choice
A = (14, 15, 20, 150)
print(choice(A)) 14
Módulo Math
Si estás escribiendo un programa para realizar tareas específicas como estudiar movimientos en física o simular circuitos
eléctricos, necesitarás trabajar con funciones trigonométricas así como números complejos. En Python, como en muchos
lenguajes no puedes usar estas funciones directamente, puedes acceder a ellas incluyendo dos módulos matemáticos
primero. Estos módulos son math y cmath.
El primero te da acceso a funciones matemáticas para números reales, entre ellas las hiperbólicas, trigonométricas y
logarítmicas, mientras que cmath te permite trabajar con números complejos. El módulo cmath lo estudiaremos más
adelante.
EJERCICIOS
4.A) Sin ejecutar el código respondé: ¿Qué hace el siguiente programa?
from random import choice
A=["A","2","3","4","5","6","7","8","9","10","J","Q","K"]
print (choice(A),end="")
B=["♠","♣","♥","♦"]
print (choice(B))
Copiá y pegá el código en el IDE para comprobarlo
4.B) Diseñá el juego de la moneda para que el usuario adivine si sale cara o ceca (¡Sí!, se escribe
con “c” https://dle.rae.es/ceca)
4.C) Desarrollá un juego para adivinar un número al azar entre el 1 y el 100. Una vez que
responde, se le dirá si ha acertado, se ha pasado o se ha quedado corto, y se le informará el
número que salió
4.D) JUEGO DE DADOS (1): Escribí un programa que simule un juego en el que dos jugadores
(Tomás y Lucía) tiran un dado. El que saque el valor más alto, gana. Si la puntuación coincide,
empatan.
JUEGO DE DADOS (1) JUEGO DE DADOS (1) JUEGO DE DADOS (1)
Tomás ha sacado un 4. Tomás ha sacado un 4. Tomás ha sacado un 3.
Lucía ha sacado un 4. Lucía ha sacado un 6. Lucía ha sacado un 1.
Han empatado. Ha ganado Lucía. Ha ganado Tomás.
4.E) JUEGO DE DADOS (2): Escribí un programa que simule un juego en el que dos jugadores
(Oriana y Joaquín) tiran dos dados. El que saque mayor puntuación total, gana. Si la puntuación
total coincide, gana quien haya sacado el dado con el valor más alto. Si el valor más alto también
coincide, empatan.
4.F) JUEGO DE DADOS (3): Escribí un programa que simule un juego en el que dos jugadores
(Helena y Nehuén) tiran dos dados. El que saque el valor más alto, gana. Si el valor más alto
coincide, decide el otro dado. Si también coincide, empatan.
4.G) JUEGO DEL QUINCE: Escribí un programa que simule un juego en el que dos jugadores
(Evangelina y Simón) sacan tres cartas al azar del 1 al 10. Gana el jugador que obtenga la mayor
puntuación total, siempre que no se pase de quince, en cuyo caso el jugador pierde.
4.H) Desarrollá el juego Piedra, papel, tijera para jugar contra la computadora. El usuario
deberá escribir “piedra”, “papel” o “tijera” en minúscula. De no escribirlo de la manera
adecuada mostrará un mensaje de error.
1er Trimestre - Guia 04 – pág 6
1er Trimestre – guía 04: Python - Profesora Mariángeles Glavina 4ºB
4.I) Utilizá como base el código del ejercicio anterior para desarrollar el juego Piedra, Papel,
Tijera, Lagarto, Spock, para jugar contra la computadora.
EXPLICACIÓN DEL JUEGO: https://www.youtube.com/watch?v=O5j4RGw6fHQ
4.N) Diseñá un programa que calcule a qué distancia del punto del disparo caerá la bala del
cañón (Suponemos que la altura del cañón es mínima, consideramos que la bala parte desde el
piso). Se ingresa el ángulo del disparo en grados y la velocidad inicial en metros sobre segundos.
La aceleración de la gravedad es de 9.81 m/s2
4.Ñ) diseñar un programa que permita saber si Red podrá chocar contra Leonard.
Datos a ingresar:
Altura a la que está ubicado Red y0
Ángulo del disparo, en grados α (debe ser mayor 0 y menor de 90)
Velocidad del disparo v0
Altura a la que está ubicado Leonard A
Distancia en horizontal a la que está ubicado Leonard B
La ecuación de la trayectoria parabólica que describe Leonard es:
𝑔𝑥 2
𝑦 = 𝑦0 + 𝑥 tan 𝛼 − 2
2𝑣0 𝑐𝑜𝑠 2 𝛼
Bibliografía:
Bahit, E. (2012). ”Curso Python para principiantes.” Buenos Aires: eugeniabahit.com.
Shokeen, M. (2020). Mathematical Modules in Python - Envato Tuts+ Code Tutorials. Recuperado
desde: https://code.tutsplus.com/series/mathematical-modules-in-python--cms-1116
Sintes Marco, B. (2020). Introducción a la programación con Python. www.mclibre.org. Recuperado
desde: https://www.mclibre.org/consultar/python/