40 - Importar algunas funcionalidades de un módulo de la biblioteca estándar de Python

Hemos visto que para importar toda la funcionalidad de un módulo de la Biblioteca estándar de Python utilizamos la palabra clave import y seguidamente el nombre del módulo:

import random

Con esa sintaxis todas las funcionalidades del módulo "random" pueden ser accedidas desde nuestro módulo.

Ahora veremos que en Python tenemos otra sintaxis para las situaciones que queremos acceder a una o pocas funcionalidades de un módulo.

Por ejemplo si queremos acceder solo a la función randint del módulo random en Python lo podemos expresar con la siguiente sintaxis:

from random import randint

Utilizamos la palabra clave from y seguidamente el nombre del módulo de donde queremos importar funcionalidades del mismo. Luego indicamos la palabra clave import y la funcionalidad que queremos importar, en nuestro ejemplo la función randint.

También cambia como utilizamos la función randint dentro de nuestro módulo:

valor=randint(1,10)
print(valor)

Como vemos no le antecedemos ningún nombre de módulo y hacemos referencia directamente a la función importada.

Si necesitamos importar más de una funcionalidad de un módulo debemos separar por comas las funcionalidades importadas:

from random import randint,shuffle

Problema 1:

Confeccionar un programa que solicite la carga de un valor entero por teclado y luego nos muestre la raíz cuadrada del número y el valor elevado al cubo.

Para resolver este problema utilizaremos dos funcionalidades que nos provee el módulo math de la biblioteca estándar de Python. Podemos consultar el módulo math aquí

Programa: ejercicio183.py

Ver video

from math import sqrt, pow

valor=int(input("Ingrese un valor entero:"))
r1=sqrt(valor)
r2=pow(valor,3)
print("La raiz cuadrada es",r1)
print("El cubo es",r2)

El módulo math tiene dos funciones llamadas sqrt (para obtener la raíz cuadrada) y la función pow para elevar un valor a cierta potencia.

Utilizamos la sintaxis para importar solo dichas dos funcionalidades del módulo math:

from math import sqrt, pow

Una vez importadas las dos funciones podemos hacer uso de las mismas en nuestro programa indicando directamente su nombre:

r1=sqrt(valor)

Lo mismo para llamar la función pow:

r2=pow(valor,3)

Definición de alias para una funcionalidad

Podemos definir un nombre distinto para una funcionalidad que importamos de otro módulo. Esto puede tener como objetivo que nuestro programa sea más legible o evitar que un nombre de función que importamos colisione con un nombre de función de nuestro propio módulo.

Resolveremos el mismo problema anterior pero definiendo dos alias para las funciones sqrt y pow del módulo math.

Programa: ejercicio184.py

Ver video

from math import sqrt as raiz, pow as elevar

valor=int(input("Ingrese un valor entero:"))
r1=raiz(valor)
r2=elevar(valor,3)
print("La raiz cuadrada es",r1)
print("El cubo es",r2)

Como vemos para definir un alias a una funcionalidad que importamos de un módulo debemos disponer la palabra clave as seguida del nuevo nombre:

from math import sqrt as raiz, pow as elevar

Luego para utilizar la funcionalidad que importamos debemos hacerlo mediante el alias y no con el nombre definido en el módulo que importamos:

r1=raiz(valor)
r2=elevar(valor,3)

Problema propuesto

  • Calcular el factorial de un número ingresado por teclado.
    El factorial de un número es la cantidad que resulta de la multiplicación de determinado número natural por todos los números naturales que le anteceden excluyendo el cero. Por ejemplo el factorial de 4 es 24, que resulta de multiplicar 4*3*2*1.
    No hay que implementar el algoritmo para calcular el factorial sino hay que importar dicha funcionalidad del módulo math.
    El módulo math tiene una función llamada factorial que recibe como parámetro un entero del que necesitamos que nos retorne el factorial.
    Solo importar la funcionalidad factorial del módulo math de la biblioteca estándar de Python.

    Ver video

Solución
ejercicio185.py

from math import factorial

valor=int(input("Ingrese un valor:"))
resu=factorial(valor)
print("El factorial de",valor,"es",resu)