Desde el comienzo de este curso, hemos utilizado diferentes funciones predefinidas de python como pueden ser print, range, int, etc.
Pero, qué pasa si yo quiero añadir un módulo que no está por defecto, por ejemplo el uso de la función random. En este caso se importaría un módulo de la biblioteca estándar de python para acceder a dicha funcionalidad.
Vamos a realizar un ejemplo para verlo más claro.
Realizar un programa que simule tirar dos dados y luego muestre los valores que aparecieron. Si la suma de dichos números es igual a 9 mostrar un mensaje de “has ganado” sino mostrar “has perdido”.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# importamos el modulo random import random dado1=random.randint(1,6) dado2=random.randint(1,6) suma =dado1+dado2 print("El primer dado vale: ",dado1) print("El segundo dado vale: ",dado2) print("La suma de los dados es: ",suma) if suma==9: print("Has ganado") else: print("Has perdido") |
Como vemos en el código anterior, utilizamos la palabra clave import para importar el módulo random en nuestro programa. Al seleccionar la función randint, vemos que la separamos del módulo random con un ‘.’, esta es la forma que tiene python de obtener una función de un objeto. En el próximo tema explicaremos a fondo que es un objeto, de momento sólo aprenderemos que para poder obtener dicha función debemos enlazarla con un ‘.’ al objeto a través del cual la llamamos.
Este módulo se encarga de generar valores aleatorios en función de los caracteres que le pasemos. Hemos utilizado la función randint para generar un valor entero aleatorio comprendido entre 1 y 6 pero, podemos ver este módulo al completo con todas sus funciones en la página del api de python.
Otra opción, sería implementar sólo aquella funcionalidad que necesitemos para llevar a cabo nuestro programa. Para ello, vamos a realizar el mismo ejemplo anterior pero cargando sólo la función randint() del módulo random.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
from random import randint dado1=randint(1,6) dado2=randint(1,6) suma =dado1+dado2 print("El primer dado vale: ",dado1) print("El segundo dado vale: ",dado2) print("La suma de los dados es: ",suma) if suma==9: print("Has ganado") else: print("Has perdido") |
De esta forma, cargamos sólo la función que necesitamos para nuestro programa.
También podemos asignarle un alias a la función cargada de un módulo de la siguiente manera
1 |
From random import randint as entero, uniform as float |
Utilizando la palabra clave as podemos cambiar el nombre de dicha función haciendo más sencillo y personalizado nuestro programa.
Además de importar un módulo oficial de python, que pasa si yo quiero importar un módulo o un archivo mío. En este caso lo haríamos de la siguiente forma
Índice
Fichero operaciones.py
1 2 3 4 5 6 7 8 |
# crearemos una primera función para cargar un valor entero def cargar(): return int(input("Introduce un valor entero: ")) # creamos una segunda funcion para sumar dos valores def suma(num1,num2): return num1+num2 |
Fichero resultado.py
1 2 3 4 5 6 7 8 |
import operaciones num1=operaciones.cargar() num2=operaciones.cargar() suma=operaciones.suma(num1,num2) print("El primer valor es: ",num1) print("El segundo valor es: ",num2) print("La suma de los valores es: ",suma) |
En el ejemplo anterior, creamos un primer archivo llamado operaciones.py en el cual incluimos las funciones necesarias para la ejecución de nuestro programa. Por otro lado creamos el fichero resultado.py donde llamaremos al primer archivo para obtener las funciones que contiene.
Vemos que podemos crear una estructura muy completa gracias a este lenguaje pero, todavía nos queda una cosa más. Vamos a realizar unos ejercicios y continuaremos a la siguiente lección.
Problemas propuestos
Ejercicio 1
Desarrollar un programa que cargue una lista con 10 valores enteros. Cargar los valores aleatoriamente con números comprendidos entre 0 y 1000. Mostrar la lista obtenida por pantalla.
Dividir el programa en dos archivos, por un lado las funciones y por otro lado la ejecución de las mismas.
Ejercicio 2
Realizar el juego de ‘adivina el numerito’. Se deberá crear un programa que genere un valor aleatorio entre 1 y 100 y no se muestre. Después solicitar la carga de valores por teclado de un número y mostrar el mensaje “Has ganado” si el número es correcto. En caso contrario mostrar un mensaje informando si el número aleatorio es superior o inferior al introducido. Dividir el programa en dos archivos, por un lado las funciones y por otro lado la ejecución de las mismas.
Ejercicio 3
Desarrollar un programa que genere 20 números enteros aleatorios entre 0 y 100. Mostrar la lista obtenida por pantalla. Después ordenar los valores de la lista y volver a mostrarla.
Dividir el programa en dos archivos, por un lado las funciones y por otro lado la ejecución de las mismas.
Ejercicio 4
Realizar un programa que solicite la carga de un valor entero. Después mostrar por pantalla la raíz cuadrada y el valor elevado al cuadrado y al cubo de dicho número. (Utilizar el módulo math de python).
Ejercicio 5
Realizar un programa que calcule el factorial de un número ingresado por teclado.
El factorial de un número es el resultado de la multiplicación de dicho número por todos los valores que lo anteceden excluyendo el cero. Por ejemplo el factorial de 4 es 24 y es el resultado de multiplicar 4*3*2*1. Utilizar la función factorial del módulo math.
Además tenéis la lista completa de ejercicios en nuestro repositorio en github.
Con esto acabamos el décimo capítulo de nuestro curso de python 3.5. Si tienen cualquier duda relacionada con el contenido explicada en este capítulo, pueden exponerla en sus comentarios y le ayudaremos a resolverla lo antes posible. Nos vemos en el siguiente capítulo donde empezaremos con la programación orientada a objetos en Python.
<- Anterior | Volver al índice | Siguiente -> |