Biblioteca Padrão do Python
A
biblioteca padrão já vem
embutida na distribuição do Python, então na hora que você instala ele, a biblioteca já fica disponível para o uso.
Ela é muito extensa, oferece uma ampla variedade de recursos.
Implementação
A biblioteca contém módulos internos (
escritos em C) que fornecem acesso à funcionalidades do sistema, como
I/O de arquivo, além de módulos escritos em Python, que fornecem soluções padronizadas para muitos problemas que ocorrem no dia a dia de quem trabalha com programação.
Portabilidade
Alguns desses módulos foram projetados explicitamente para incentivar e aprimorar a portabilidade dos programas Python, abstraindo as especificidades da plataforma em APIs neutras.
Os instaladores do Python para a plataforma
Windows geralmente incluem toda a biblioteca padrão e geralmente também incluem muitos componentes adicionais.
Para sistemas operacionais do tipo
Unix, o Python normalmente é fornecido como uma coleção de pacotes, portanto, pode ser necessário usar as ferramentas de empacotamento fornecidas com o sistema operacional para obter alguns ou todos os componentes opcionais.
Componentes, pacotes e frameworks adicionais
Além da biblioteca padrão, há uma coleção crescente de componentes (de programas e módulos individuais a pacotes e estruturas inteiras de desenvolvimento de aplicativos), disponíveis no
Python Package Index.
Esse é o link para a página da documentação oficial da biblioteca padrão do python:
Alguns dos
módulos mais importantes da biblioteca padrão do python:
Matemática:
math,
cmath,
decimal e
random.
regex:
re, módulo de expressões regulares com funções muito poderosas para manipulação de texto.
Sistema:
os,
io,
sys,
glob,
logging,
shutils e
subprocess.
Threads:
threading.
Persistência:
pickle e
cPickle.
XML:
xml.dom,
xml.sax e
elementTree.
Configuração:
ConfigParser e
optparse.
Tempo:
time e
datetime.
Outros:
traceback,
types,
json e
timeit.
A princípio, abordaremos apenas alguns dos principais módulos da biblioteca padrão.
Obs. Para que as aulas não fiquem muito grandes, vamos dividir as aulas por módulos e nessa falaremos sobre o módulo math.
Módulo Math
Teoria dos números e representações em funções
O módulo
math fornece acesso às funções matemáticas definidas em
C.
Essas funções não podem ser usadas com números complexo.
Para números complexos use as funções com o mesmo nome do módulo
cmath.
As seguintes funções são fornecidas por este módulo.
Obs. Todos os valores de retorno são flutuantes, exceto quando explicitamente indicado o contrário.
- math.ceil - retorna o teto de x.
- math.copysign(x, y) - retorna um float com a magnitude (valor absoluto) de x mas o sinal de y.
- math.fabs (x) - retorna o valor absoluto de x.
- math.factorial(x) - retorna o fatorial de x
- math.floor(x) - retorna o piso de x.
- math.fmod(x, y) - retorna o resto da divisão de x por y.
- math.frexp(x) - retorna a mantissa e o expoente do número inteiro fornecido. Do latim, mantissa significa a parte quebrada, ou o excedente do peso. Para a matemática, mantissa é a parte decimal de um logaritmo. Veja o exemplo.
- math.fsum(iterable) - retorna uma soma exata de valores de ponto flutuante no iterável. Evita a perda de precisão rastreando várias somas parciais intermediárias. É usada para encontrar soma entre algum intervalo ou um iterável.
- math.gcd(x, y) - Retorna um valor inteiro, que é o GCD (Maior Divisor Comum), ou seja, o maior número inteiro que divide os dois números.
- math.isclose(a, b, *, rel_tol=1e-09, abs_tol=0.0) - o método é usado para determinar se dois números de ponto flutuante têm valor próximo.
- Parâmetros:
- rel_tol: diferença máxima para ser considerada “próxima”, em relação à magnitude dos valores de entrada.
- abs_tol: diferença máxima para ser considerada “fechado”, independentemente da magnitude dos valores de entrada.
- rel_tol e abs_tol podem ser alterados usando o argumento de palavra-chave ou simplesmente fornecendo diretamente um valor, de acordo com suas posições na lista de parâmetros. Retorna True se a tiver valor próximo de b e False caso contrário.
-
OBS. Para que os valores sejam considerados próximos, a diferença entre eles deve ser menor que pelo menos uma das tolerâncias.
-
#imprimindo se dois valores estão próximos ou não
math.isclose(2.005, 2.005) #Saída: True
math.isclose(2.005, 2.004) #Saída: False
math.isclose(2.006, 2.005) #Saída: False
- math.isfinite(x) - retorna True se x não for um infinito nem um NaN e False caso contrário. (Observe que 0,0 é considerado finito.)
- math.isinf(x) - retorna True se x for um infinito positivo ou negativo e False caso contrário.
- math.nan(0.0) - retorna True se x for um NaN (não é um número) e False caso contrário.
- math.ldexp(x, i) - retorna x * (2 ** i). Por examplo, se x = 3 e i = 4 então, math.ldexp(3, 4) = 3 * 16 = 48.0. É o inverso da função
frexp().
- math.modf(x) - retorna as partes fracionárias e inteiras do número em uma tupla de dois itens. Ambas as partes têm o mesmo sinal que o número. A parte inteira é retornada como um float.
-
math.modf(100.12) #Saída:(0.12000000000000455, 100.0)
math.modf(-100.72) #Saída: (-0.7199999999999989, -100.0)
math.modf(2) #Saída: (0.0, 2.0)
- math.remainder(x, y) - retorna o resto no estilo IEEE 754 de x em relação a y. Para x finito e y finito diferente de zero, essa é a diferença x - n * y, em que n é o número inteiro mais próximo do valor exato do quociente x / y. Se x / y estiver exatamente na metade do caminho entre dois números inteiros consecutivos, o número par mais próximo será usado para n. O resto r = remainder(x, y), portanto, sempre satisfaz abs (r) <= 0.5 * abs (y).
- math.trunc(x) - retorna o valor real x truncado para um integral (geralmente um número inteiro).
Potência e funções logarítmicas
- math.exp(x) - este método é usado para calcular a potência de e(Euler), ou seja, e ^ y ou podemos dizer exponencial de y. O valor de e é aproximadamente igual a 2.71828…Essa opção é mais precisa do que math.e ** x ou pow(math.e, x).
- math.expm1(x) - retorna e(euler) elevado à potência x, menos 1. Aqui e é a base dos logaritmos naturais. Para x floats pequenos, a subtração em exp (x) - 1 pode resultar em uma perda significativa de precisão, a função expm1() fornece uma maneira de calcular essa quantidade com precisão total.
-
math.expm1(4) #Saída: 53.598150033144236
math.expm1(1e-5) # Precisão total. Saída: 1.0000050000166667e-05
#Obs: 1e-5 é uma notação numérica científica, isso significa 1 × 10^-5. Em outras palavras, 0,00001.
- math.log(x[, base]) - com um argumento, retorna o logaritmo natural de x (para a base e).Com dois argumentos, retorna o logaritmo de x para a base especificada, calculada como log (x) / log (base).
- math.log1p(x) - retorna o logaritmo natural de 1 + x (base e). O resultado é calculado de maneira precisa para x próximo a zero.
- math.log2(x) - retorna o logaritmo de x na base 2. Isso geralmente é mais preciso que o math.log (x, 2).
- math.log10(x) - retorna o logaritmo de x na base 10. Isso geralmente é mais preciso que math.log (x, 10).
- math.pow(x, y)) - retorna x elevado à potência y. Em particular, pow (1.0, x) e pow (x, 0.0) sempre retornam 1.0, mesmo quando x é zero ou NaN. Se x e y são finitos, x é negativo e y não é um número inteiro, então pow (x, y) é indefinido e gera ValueError.Diferentemente do operador interno **, math.pow () converte os dois argumentos no tipo float. Use ** ou a função pow () integrada para calcular potências inteiras exatas.
- math.sqrt(x) - retorna a raiz quadrada de x.
Funções trigonométricas
- math.acos(x) - retorna o arco cosseno de x, em radianos..
- math.asin(x) - retorna o arco seno de x, em radianos..
- math.atan(x) - retorna o arco tangente de x, em radianos.
- math.atan2(y, x) - retorna a tangente do arco de x, em radianos. Retorna atan (y / x), em radianos. O resultado está entre -pi e pi. O vetor no plano da origem ao ponto (x, y) faz esse ângulo com o eixo X positivo. O ponto do atan2 () é que os sinais de ambas as entradas são conhecidos, para que possa calcular o quadrante correto para o ângulo. Por exemplo, atan (1) e atan2 (1, 1) são ambos pi / 4, mas atan2 (-1, -1) é -3 * pi / 4.
- math.cos(x) - retorna o cosseno de x radianos.
- math.hypot(x, y) - retorna a norma euclidiana, sqrt (x * x + y * y). Este é o comprimento do vetor da origem ao ponto (x, y).
- math.sin(x) - retorna o seno de x radianos.
- math.tan(x) - a tangente de x radianos.
Funções hiperbólicas
Funções hiperbólicas são análogas a funções trigonométricas, só que baseadas em hipérboles em vez de círculos.
- math.acosh(x) - retorna o cosseno hiperbólico inverso de x.
- math.asinh(x) - retorna o seno hiperbólico inverso de x.
- math.atanh(x) - retorna a tangente hiperbólica inversa de x.
- math.cosh(x) - retorna o cosseno hiperbólico de x.
- math.sinh(x) - retorna o seno hiperbólico de x.
- math.tanh(x) - retorna a tangente hiperbólica de x.
Funções especiais
- math.erf(x) - retorna a função de erro em x. A função erf () pode ser usada para calcular funções estatísticas tradicionais, como a distribuição normal padrão cumulativa. Note que erf(-x) == -erf(x).
-
print('{:^5} {:7}'.format('x', 'erf(x)'))
print('{:-^5} {:-^7}'.format('', ''))
for x in [ -3, -2, -1, -0.5, -0.25, 0, 0.25, 0.5, 1, 2, 3 ]:
print('{:5.2f} {:7.4f}'.format(x, math.erf(x)))
#Saída:
# x erf(x)
#----- -------
#-3.00 -1.0000
#-2.00 -0.9953
#-1.00 -0.8427
#-0.50 -0.5205
#-0.25 -0.2763
# 0.00 0.0000
# 0.25 0.2763
# 0.50 0.5205
# 1.00 0.8427
# 2.00 0.9953
# 3.00 1.0000
- math.erfc(x) - função de erro complementar em x. A função de erro complementar é definida como 1.0 - erf (x). É usado para grandes valores de x em que a subtração de um(1) pode causar perda de significância.
-
print('{:^5} {:7}'.format('x', 'erfc(x)'))
print('{:-^5} {:-^7}'.format('', ''))
for x in [ -3, -2, -1, -0.5, -0.25, 0, 0.25, 0.5, 1, 2, 3 ]:
print('{:5.2f} {:7.4f}'.format(x, math.erfc(x)))
#Saída:
# x erf(x)
#----- -------
#-3.00 2.0000
#-2.00 1.9953
#-1.00 1.8427
#-0.50 1.5205
#-0.25 1.2763
# 0.00 1.0000
# 0.25 0.7237
# 0.50 0.4795
# 1.00 0.1573
# 2.00 0.0047
# 3.00 0.0000
- math.gamma(x) - retorna a função Gamma em x. Em matemática, a função gamma é uma extensão comumente usada da função fatorial para números complexos. A função gamma é definida para todos os números complexos, exceto os números inteiros não positivos. Para qualquer número inteiro positivo.
- math.lgamma(x) - retorna o logaritmo natural do valor absoluto da função Gamma em x.
Constantes
- math.pi - constante matemática π = 3,141592…
- math.e - A constante matemática e = 2,718281…
- math.tau - A constante matemática τ = 6.283185… Tau é uma constante de círculo igual a 2π, a razão entre a circunferência de um círculo e seu raio.
- math.inf - um infinito positivo de ponto flutuante. (Para infinito negativo, use -math.inf. Equivalente à saída de float ('inf').
- math.nan - um valor de ponto flutuante "não é um número" (NaN). Equivalente à saída de float ('nan').
Ficamos por aqui, nos vemos na próxima aula. 🖖
Se gostarem do conteúdo dêem um joinha 👍 na página do Código Fluente no
Facebook
Esse é o link do código fluente no Pinterest
Meus links de afiliados:
Obrigado, até e bons estudos. ;)