9  Outros Tópicos

Outros tópicos. Abaixo alguns possíveis de serem abordados.


9.1 Funções Base

Referência: https://docs.python.org/3/library/functions.html

9.1.1 Funções relacionadas à tipos de variáveis

bool(0), bool(1), bool(1811275162543)
float(10), float(3.5), float('3.5')
int('8'), int(10.7)
str(8)
type([1, 2])

9.1.2 Funções sobre iteráveis

my_list = ['São Paulo', 'Flamengo']

# o que é um iterável?

enumerate(my_list), list(enumerate(my_list))
#type(enumerate(my_list))
#sem enumerate:
index = 0
for i in my_list:
    print('Parabéns ' + i + '! Você ficou em ' + str(index + 1) + 'º lugar!')
    index += 1
#com enumerate:
for index, i in enumerate(my_list):
    print('Parabéns ' + i + '! Você ficou em ' + str(index + 1) + 'º lugar!')

print("cof cof Copa do Brasil cof cof")
def maior_que_dois(x):
    return x > 2
#Ou utilizar uma função anônima "lambda": lambda x: x > 2

my_list = [1,2,3,4]
print(list(filter(maior_que_dois, my_list)))
print(list(filter(lambda x: x>2, my_list)))
my_map = list(map(maior_que_dois, my_list)) # map: aplicar uma função para todos os itens
my_map
print(my_list)
print(my_map)
[my_list, my_map]

[(my_list[i], my_map[i]) for i in range(4)]
list(zip(my_list, my_map))
# zip(): une tuplas, mas é um objeto próprio
# → precisa fazer tuple(zip()) para ver a tupla mesmo

9.1.3 Funções sobre criação de variáveis

dict(zip(my_list, my_map))
list()
set([1,2,2,3,4])
tuple(my_list)
type((1, 2))

9.1.4 Outras funções

format() #formata strings (setá tratada na aula de REGEX)
my_list, repr(my_list), eval(repr(my_list)), eval('1+2')
# eval(): avalia um string para ver se tem como fazer contas lá dentro → se der, devolve quanto que dá
input() #recebe algum valor do terminal

input("A aula tá legal? ")

9.1.5 Funções matemáticas e lógicas

abs() #módulo
divmod(número, divisor) #divisão (parte inteira, resto)
max()
min()
pow(base, expoente)
round(número, digitos)
sum()
all([True, True, False]) # True se todos os argumentos são true
any([True, True, False]) # True se pelo menos um argumento é verdadeiro
abs(-3), abs(3)
divmod(7, 5)
round(3.1263817241864518742612, 4)

9.2 Bibliotecas

Agora partimos para funções externas

9.2.1 Como instalar bibliotecas

Referência: https://packaging.python.org/en/latest/tutorials/installing-packages/

Checar instalação do python (digitar no terminal): > py –version

Checar instalação do pip, o instalador de pacotes: > py -m pip –version

Instalar o pacote pelo nome: > py -m pip install nome_do_pacote

9.2.2 Módulo math

Referência: https://docs.python.org/3/library/math.html

import math
round(math.pi, 3)
math.ceil()
math.floor()
math.trunc()
math.modf(5.256) #(0.2560000000000002, 5.0)
math.comb(k_items, n_opções) #n! / (k! * (n - k)!) ) (sem ordem, sem repetição)
math.perm(k_items, n_opções) #n! / (n - k)! (com ordem, sem repetição)
math.factorial(n)
math.gcd() #mdc
math.lcm() #mmc
# abs(a-b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol)
# rel_tol = tolerância relativa
# abs_tol = tolerância absoluta
print(m.isclose(5, 10, rel_tol=0.49, abs_tol=0))
print(m.isclose(5, 10, rel_tol=0, abs_tol=5))
math.isfinite()
math.isinf()
2**(0.5), math.sqrt(2)
print(math.dist((0,0), [1,1])) # distância euclidiana
print(math.hypot(1,1,1,1,1)) # norma euclidiana → distância da origem até o ponto
math.cos(), math.sin(), math.tan() #etc.
math.degrees(), math.radians() #conversão de um pro outro
math.e, math.pi, math.inf

9.2.3 Módulo statistics

Referência: https://docs.python.org/3/library/statistics.html

import statistics as stat
stat.mean()
stat.geometric_mean()
stat.harmonic_mean()
stat.median()
stat.mode('aaabbb'), stat.multimode('aaabbbc') #('a', ['a', 'b'])
stat.quantiles(iterable, n_quantis, method) #método 'inclusive' se a amostra tiver os maiores valores da população, e 'exclusive' (default) c.c.
stat.stdev(), stat.pstdev()
stat.variance(), stat.pvariance()
#versões amostrais e populacionais, respectivamente
stat.covariance()
stat.correlation()

9.2.4 Módulo random

Referência: https://docs.python.org/3/library/random.html

import random as rd
rd.seed(seed)
rd.randint(1, 10), rd.random()
rd.choices(my_list, weights=[0, 10, 80, 10], cum_weights=None, k=10)
#rd.choices(my_list, weights=None, cum_weights=[0, 10, 90, 100], k=10)
print(my_list)
rd.shuffle(my_list) #nenhum output
my_list #alterou a lista
print(rd.sample(my_list, len(my_list), counts=None)) #nova lista
print(my_list) #não alterou a lista
print(rd.sample(my_list, 7, counts=[1, 2, 5, 2]))
#a lista usada foi [3, 2, 2, 4, 4, 4, 4, 4, 1, 1]
rd.uniform(2, 8)
rd.gauss(mu, sigma)

9.3 Funções Sobre Manipulação de Texto

9.4 Funções Não Essenciais

9.4.1 Funções relacionadas à tipos de variáveis

bin(10)
hex(445125215) # números hexadecimais
int('1000', 2) # "1000 base 2"
ord('a'), chr(97) # o item numero 97 no 'dicionário' UNICODE
#chr(ord('a'))
#ord(chr(98))

9.4.2 Funções sobre armazenamento de variáveis

a = 10 #lembre deste 10!
repr(dir())
# repr: retorna um string do objeto
# dir: todas os nomes no diretório atual
repr(dir([1,3]))
list(globals().items())[1:5]
dict(list(globals().items()))
dict(list(globals().items()))['__name__']

9.4.3 Outras funções

open(file_path, mode) #abre um arquivo
#Mode: 'r', 'w', 'x', 'a'; '+'; 'b' ou 't'
# 'r' = read
# 'w' = write
# 'x' = Create
# 'a' = Append
# 'b' = Binary
# 't' = Text
help() #abre o prompt de ajuda no terminal

9.4.4 Módulo os

Referência: https://docs.python.org/3/library/os.html, https://www.youtube.com/watch?v=tJxcKyFMTGo

import os
repr(dir(os))
os.getcwd()
os.chdir('/User/Michel')
os.listdir()
os.rmdir('aulas gvcode')
os.removedirs('name/subname')
os.rename('text.txt', 'new.txt')
os.stat('text.txt') #tamanho, data de criação e modificação, etc

9.4.5 Módulo ScyPy

Referências: https://docs.scipy.org/doc/scipy/tutorial/index.html#user-guide

  • Estatística: https://scipy.github.io/devdocs/reference/stats.html
  • Otimização: https://scipy.github.io/devdocs/reference/optimize.html
  • Álgebra linear: https://scipy.github.io/devdocs/reference/linalg.html
  • Interpolação: https://scipy.github.io/devdocs/reference/generated/scipy.interpolate.interp1d.html#scipy.interpolate.interp1d
import scipy.stats
scipy.stats.linregress(x, y)

Aqui, as funções menos essenciais, de consulta para vocês.

Referência: https://docs.python.org/3/library/functions.html