Glossário do Curso de Python Intermediário
Todos os termos do curso em um só lugar, com definições simples. Use a busca para achar rápido.
- __init__
- O método construtor de uma classe, com dois sublinhados antes e depois do nome. O Python o chama automaticamente quando você cria um objeto, para preparar os seus dados iniciais. Não se chama __init__ à mão. Ver na aula →
- __name__
- Uma variável especial que o Python cria em todo arquivo. Ela vale "__main__" quando o arquivo é executado direto, e vale o nome do módulo quando o arquivo é importado por outro. Serve para o arquivo saber como está sendo usado. Ver na aula →
- __repr__
- Um método especial que devolve uma representação técnica do objeto, voltada a quem programa e a depuração. É o que aparece no console interativo e como fallback quando não há __str__. Ver na aula →
- __str__
- Um método especial que devolve o texto amigável de um objeto, pensado para uma pessoa ler. O print e a função str() o chamam automaticamente. Deve sempre retornar uma string. Ver na aula →
- @property
- Um decorador do Python que faz um método ser acessado como se fosse um atributo. Permite calcular ou validar um valor no acesso, sem que quem usa perceba que há um método por trás, mantendo uma interface limpa. Ver na aula →
- **kwargs
- Um parâmetro especial, escrito com dois asteriscos, que recolhe todos os argumentos nomeados extras em um dicionário. O nome kwargs vem de keyword arguments. Dentro da função, kwargs é um dicionário com nome e valor de cada extra. Ver na aula →
- *args
- Um parâmetro especial, escrito com um asterisco, que recolhe todos os argumentos posicionais extras em uma tupla. O nome args é só convenção; o que importa é o asterisco. Dentro da função, args é uma tupla que você pode percorrer. Ver na aula →
- Achatar (flatten)
- Transformar uma estrutura com listas dentro de listas em uma lista única e plana, juntando todos os itens de todos os níveis em uma só sequência. Ver na aula →
- Açúcar sintático
- Uma forma de escrita mais curta e agradável que a linguagem oferece para algo que já era possível de um jeito mais longo. O símbolo @ é açúcar sintático: não adiciona poder novo, só deixa a aplicação do decorador mais clara. Ver na aula →
- Acumulador
- Uma variável que vai somando resultados ao longo de um laço. Neste relatório, o acumulador é um dicionário que guarda o total de cada categoria, crescendo a cada linha lida do arquivo de vendas. Ver na aula →
- Ambiente virtual
- Uma pasta isolada com uma cópia do Python e dos pacotes de um projeto, para que projetos diferentes não misturem versões de bibliotecas. É o padrão profissional, apresentado no módulo 6. Ver na aula →
- API
- Uma interface pela qual um programa conversa com outro. Muitas APIs da web recebem um pedido por HTTP e devolvem dados, em geral no formato JSON. O requests é uma forma prática de fazer esses pedidos a partir do Python. Ver na aula →
- Argumento nomeado
- Um valor passado na chamada indicando o nome do parâmetro, na forma nome=valor (por exemplo, ativo=True). A ordem deixa de importar e a chamada fica autoexplicativa. Também chamado de argumento por palavra-chave (keyword). Ver na aula →
- Argumento obrigatório
- Um parâmetro sem valor padrão. Quem chama a função precisa informá-lo, senão o Python levanta um erro. Todos os parâmetros obrigatórios vêm antes dos que têm padrão. Ver na aula →
- Argumento posicional
- Um valor passado na chamada da função sem dizer o nome do parâmetro. O Python casa pela ordem: o primeiro valor vai para o primeiro parâmetro, o segundo para o segundo, e assim por diante. Ver na aula →
- Asserção
- Uma afirmação sobre o estado do programa que você espera que seja sempre verdadeira naquele ponto. Em Python, escrita com assert. Se a afirmação for falsa, o programa levanta um AssertionError. Ver na aula →
- AssertionError
- O erro que o Python levanta quando a condição de um assert é falsa. A mensagem opcional escrita depois da vírgula aparece junto, explicando o que se esperava e ajudando a entender a falha. Ver na aula →
- Ativar o ambiente
- Ligar o ambiente virtual na sessão atual do terminal, rodando o script de ativação. A partir daí, os comandos python e pip passam a usar a despensa isolada daquele projeto, em vez da instalação global. Ver na aula →
- Atributo days
- A parte de um timedelta que informa quantos dias inteiros ele representa, lida com .days. Quando você subtrai duas datas, o resultado é um timedelta, e resultado.days devolve o número de dias entre elas como um inteiro. Ver na aula →
- Atributo de classe
- Um dado definido direto no corpo da classe, fora do __init__. Ele é compartilhado por todas as instâncias: existe uma cópia só, ligada à classe, e todos os objetos a enxergam. Ver na aula →
- Atributo de instância
- Um dado guardado em cada objeto com self.algo, geralmente no __init__. Cada instância tem a sua própria cópia; mudar em um objeto não afeta os outros. Ver na aula →
- Avaliação preguiçosa
- A estratégia de só calcular um valor quando ele é realmente pedido, em vez de calcular tudo de antemão. Geradores são preguiçosos: produzem cada item na hora em que você o consome, e nem um a mais. Ver na aula →
- Biblioteca padrão
- O conjunto de módulos que já vem junto com o Python, sem instalar nada, para tarefas comuns como matemática, datas, números aleatórios e leitura de arquivos. Você conhece vários deles a fundo no módulo 5. Ver na aula →
- Bloco else do try
- Um bloco opcional que roda apenas se o try terminou sem levantar nenhuma exceção. Serve para separar a parte que pode falhar da parte que só faz sentido quando tudo deu certo. Ver na aula →
- Bloco finally
- Um bloco opcional que roda sempre ao sair do try, tenha havido erro ou não. É o lugar certo para liberar recursos, como fechar um arquivo ou uma conexão, aconteça o que acontecer. Ver na aula →
- Cabeçalho
- A primeira linha de muitos CSV, que não é um dado e sim os nomes das colunas, como nome, idade, cidade. Serve para dizer o que cada campo significa nas linhas seguintes. Ver na aula →
- Caso de borda
- Uma entrada no limite ou fora do comum onde o código tem mais chance de falhar: coleção vazia, zero, número negativo, o maior valor permitido, o primeiro e o último item. É onde os bugs costumam se esconder. Ver na aula →
- Caso feliz
- A entrada típica e bem comportada, para a qual o código foi pensado. Testar só o caso feliz passa uma falsa sensação de segurança, porque as falhas quase sempre aparecem nas bordas e nas entradas inválidas. Ver na aula →
- Catálogo de dados
- Uma coleção de registros semelhantes, aqui uma lista de dicionários em que cada dicionário descreve um produto com os mesmos campos. É um formato natural para JSON e uma base comum de programas que listam, buscam e filtram itens. Ver na aula →
- Classe
- Um molde que descreve como será um tipo de objeto: quais dados ele guarda e quais ações ele sabe fazer. A classe não é a coisa em si; é a receita a partir da qual você cria as coisas. Ver na aula →
- Classe base
- A classe mais geral, de onde outras herdam. Também chamada de superclasse ou classe mãe. Ela reúne o que é comum a várias classes filhas, como Animal reúne o que todo animal tem. Ver na aula →
- Classe base abstrata
- Uma classe pensada só para ser herdada, nunca instanciada sozinha, que define os métodos que as filhas devem ter. Aqui Forma faz esse papel de forma simples: ela dá o contrato area() que toda forma precisa cumprir. Ver na aula →
- Classe base de exceção
- Uma exceção do seu programa da qual outras herdam, como ErroDaConta. Capturá-la com um except pega qualquer erro da família de uma vez, o que é útil quando o tratamento é o mesmo para todos. Ver na aula →
- Classe de caractere
- Um símbolo curto que representa um grupo de caracteres. Os principais são \d (um dígito de 0 a 9), \w (uma letra, dígito ou sublinhado) e \s (um espaço em branco, incluindo tabulação e quebra de linha). Cada um casa com um único caractere daquele grupo. Ver na aula →
- Classe de exceção
- Uma classe que herda de Exception (direta ou indiretamente) e pode ser levantada com raise e capturada com except. Criar a sua dá um nome próprio a um erro específico do seu programa. Ver na aula →
- Classe filha
- Uma classe que herda de outra e representa um caso mais específico. Também chamada de subclasse ou classe derivada. Ela ganha tudo da base e acrescenta ou muda só o que a diferencia. Ver na aula →
- Closure
- Uma função interna que continua enxergando as variáveis da função externa onde foi criada, mesmo depois de a externa terminar de rodar. A função interna carrega consigo esse ambiente. Ver na aula →
- Cobertura de casos
- O conjunto de situações que os seus testes verificam. Uma boa cobertura inclui o caso típico, os casos de borda e as entradas inválidas, para que uma mudança que quebre qualquer um deles seja pega na hora. Ver na aula →
- Código de status HTTP
- Um número que a resposta traz para dizer como o pedido foi. 200 significa que deu certo, 404 que o recurso não foi encontrado e 500 que houve erro no servidor. Checar esse número antes de ler os dados é boa prática. Ver na aula →
- Código pythônico
- Código que usa os recursos do Python do jeito que a comunidade considera claro e idiomático, em vez de traduzir ao pé da letra soluções de outras linguagens. Costuma ser mais curto, legível e menos sujeito a erro. Ver na aula →
- Compreensão de conjunto
- Uma expressão que constrói um conjunto de uma vez, no formato {expressão for item in sequência}. Usa chaves como o dicionário, mas sem o par chave: valor, e descarta itens repetidos automaticamente. Ver na aula →
- Compreensão de dicionário
- Uma expressão que constrói um dicionário de uma vez, no formato {chave: valor for item in sequência}. Usa chaves em vez de colchetes e exige os dois lados do par, separados por dois-pontos. Ver na aula →
- Compreensão de lista
- Uma expressão que constrói uma lista inteira de uma vez, no formato [expressão for item in sequência]. Substitui o padrão de criar uma lista vazia e ir dando append dentro de um laço. Ver na aula →
- Conflito de versão
- A situação em que dois projetos precisam de versões diferentes do mesmo pacote ao mesmo tempo. Sem isolamento, instalar a versão de um projeto pode quebrar o outro, porque os dois dividem a mesma instalação. Ver na aula →
- Construção incremental
- Estratégia de montar um programa em pequenos passos, mantendo-o funcionando a cada etapa, em vez de escrever tudo de uma vez. Cada aula acrescenta uma peça e roda o resultado antes de seguir. Ver na aula →
- Construtor
- O método __init__, executado quando você cria um objeto. Ele recebe os dados iniciais e monta os atributos. Na herança, a filha pode ter o seu construtor e ainda aproveitar o da base chamando super().__init__(). Ver na aula →
- Contar ocorrências
- Percorrer um fluxo somando quantas vezes uma condição se cumpre, guardando apenas o contador. Feito sobre um gerador, permite contar em arquivos gigantes usando memória constante, de uma linha por vez. Ver na aula →
- Context manager
- Um objeto que sabe preparar um recurso ao entrar em um bloco with e liberá-lo ao sair, mesmo se ocorrer um erro. Um arquivo aberto é um context manager: entra abrindo e sai fechando, automaticamente. Ver na aula →
- Contrato de método
- A promessa de que toda filha vai oferecer um método com um certo nome e uso, como area(). Quem trabalha com a lista de formas conta com esse contrato para chamar area() em qualquer uma delas sem checar o tipo. Ver na aula →
- Counter
- Uma subclasse de dicionário do módulo collections que conta ocorrências automaticamente. Você passa uma sequência e ele já devolve quantas vezes cada item aparece, além de métodos como most_common. Ver na aula →
- Cross-cutting (comportamento transversal)
- Comportamento que se repete em muitas funções sem ser o objetivo delas, como registrar log, medir tempo ou checar permissão. Decoradores são a forma pythônica de isolar esse comportamento transversal em um lugar só. Ver na aula →
- CSV
- Sigla de comma-separated values, ou valores separados por vírgula. É um arquivo de texto em que cada linha é um registro e os campos daquele registro vêm separados por um caractere, quase sempre a vírgula ou o ponto e vírgula. Ver na aula →
- csv.DictReader
- Uma classe do módulo csv que lê o arquivo e devolve cada linha como um dicionário, usando o cabeçalho como chaves. Assim você acessa os campos pelo nome da coluna, como linha['nome'], em vez de por posição. Ver na aula →
- csv.DictWriter
- Uma classe do módulo csv que grava linhas a partir de dicionários. Você informa os nomes das colunas na criação (fieldnames), chama writeheader para escrever o cabeçalho e passa dicionários para escrever cada registro. Ver na aula →
- defaultdict
- Um dicionário que, ao acessar uma chave que ainda não existe, cria essa chave com um valor padrão em vez de dar erro. Você define o tipo do padrão, como int (começa em 0) ou list (começa em lista vazia). Ver na aula →
- Docstring
- Texto de documentação escrito logo abaixo da def, entre aspas triplas, que descreve o que a função faz. Fica acessível em func.__doc__ e no help(). Sem cuidado, um decorador apaga essa docstring, trocando pela do wrapper. Ver na aula →
- Duck typing
- Uma ideia do Python: se um objeto tem o método que você vai chamar, ele serve, não importa o tipo dele. O nome vem da frase se anda e grasna como um pato, é um pato. Você confia no comportamento, não na classe exata. Ver na aula →
- Empilhar decoradores
- Aplicar mais de um decorador na mesma função, escrevendo várias linhas com o símbolo @ uma sobre a outra. Eles se aplicam de baixo para cima: o mais próximo da def envolve a função primeiro, e o de cima envolve o resultado. Ver na aula →
- Encadear geradores
- Ligar geradores em série, passando o gerador produzido por um como argumento do próximo. O resultado é um novo gerador que combina todas as transformações, ainda preguiçoso, consumido apenas no fim. Ver na aula →
- Encapsulamento
- O princípio de agrupar dados e comportamento num objeto e esconder os detalhes internos, expondo só uma interface pública. Quem usa o objeto não precisa saber como ele guarda os dados por dentro. Ver na aula →
- Encapsular
- Guardar os dados e as regras que mexem neles dentro do próprio objeto, expondo ações claras como depositar e sacar. Assim, o resto do programa usa o objeto sem precisar mexer direto no atributo. Ver na aula →
- encoding utf-8
- A codificação de caracteres que representa acentos e símbolos de forma universal. Ao abrir arquivos com encoding="utf-8", você garante que letras como ã, ç e é sejam gravadas e lidas corretamente, sem depender da configuração padrão do sistema operacional. Ver na aula →
- ensure_ascii
- Argumento de json.dumps e json.dump. Por padrão vale True, o que escapa acentos como sequências \uXXXX. Ao passar ensure_ascii=False, os acentos e caracteres em português são mantidos legíveis no resultado, o que é quase sempre o que você quer. Ver na aula →
- Escopo
- A região do programa onde um nome de variável é válido e pode ser usado. Uma variável criada dentro de uma função tem escopo local: existe só ali. Uma criada no nível do arquivo tem escopo global: vale no módulo inteiro. Ver na aula →
- Estado do objeto
- O conjunto de valores dos atributos de um objeto em um dado momento, como o saldo atual de uma conta. Os métodos alteram o estado de forma controlada, seguindo as regras da classe. Ver na aula →
- Estrutura aninhada
- Um dado que contém outros dados dentro de si, em camadas. No JSON, um dicionário pode ter uma lista como valor, e cada item dessa lista pode ser outro dicionário, e assim por diante. Percorrer essas camadas é a habilidade central para lidar com dados reais. Ver na aula →
- Estrutura de dados
- Um jeito de organizar vários valores na memória. No Python básico você viu listas (ordenadas e mutáveis), tuplas (fixas), dicionários (pares de chave e valor) e conjuntos (sem repetição). Ver na aula →
- Exceção
- Um objeto que o Python cria quando algo dá errado durante a execução, como dividir por zero ou converter um texto inválido em número. Se ninguém trata a exceção, o programa para e mostra um traceback. Ver na aula →
- Exceção própria
- Uma classe de erro criada por você, herdando de Exception, para representar uma falha específica do seu programa. ContatoNaoEncontradoError deixa claro, pelo nome, o que deu errado, muito melhor que um erro genérico. Ver na aula →
- except puro
- Um except sem tipo (ou except Exception muito amplo) que captura qualquer erro. Usado sem cuidado, esconde bugs porque engole também as falhas que você não previu e deveria consertar. Ver na aula →
- Expressão
- Um trecho de código que produz um valor, como 2 * n ou nome.upper(). Diferente de um comando (como um for ou um if soltos), uma expressão pode ficar dentro de uma compreensão porque devolve algo. Ver na aula →
- Expressão condicional
- A forma valor_se_verdadeiro if condição else valor_se_falso, que devolve um de dois valores conforme a condição. Como devolve um valor, cabe no início de uma compreensão para escolher o que cada item vira. Ver na aula →
- Expressão regular
- Um pequeno texto que descreve um padrão de outros textos, usando símbolos especiais. Em vez de procurar uma palavra fixa, você descreve a forma que procura, por exemplo tres letras seguidas de quatro números. Também é chamada de regex, abreviação de regular expression. Ver na aula →
- Extensão (suffix)
- A parte final do nome de um arquivo depois do ponto, como .csv ou .txt. No pathlib, a propriedade suffix devolve essa extensão a partir de um Path, útil para decidir como tratar cada arquivo. Ver na aula →
- Fábrica de funções
- Uma função cujo trabalho é criar e devolver outras funções, cada uma ajustada aos argumentos recebidos. criar_multiplicador(3) devolve uma função que multiplica por 3. Ver na aula →
- Filtragem
- Selecionar de uma coleção apenas os itens que atendem a uma condição, como produtos com preço abaixo de um valor. No Python, você filtra percorrendo a lista com um laço e um if, ou com uma compreensão de lista. Ver na aula →
- Filtro
- Selecionar de uma sequência apenas os itens que passam em um teste, descartando os demais. Na compreensão, o filtro é feito com um if no fim, depois do for. Ver na aula →
- Fluxo do projeto
- A sequência de passos que abre todo projeto Python novo: criar a pasta, criar e ativar o ambiente virtual, instalar as dependências, congelar a receita e escrever o código. Repetido tantas vezes, vira automático. Ver na aula →
- Função callback
- A função que você passa para outra função executar quando precisar. Em aplicar(f, valor), f é o callback: quem escreveu aplicar decide quando chamá-lo, e você decide o que ele faz. Ver na aula →
- Função de ordem superior
- Uma função que recebe outra função como argumento ou devolve uma função. Exemplos comuns são sorted, map e filter, que recebem uma função (muitas vezes uma lambda) para decidir como processar cada item. Ver na aula →
- Função geradora
- Uma função que contém pelo menos um yield no corpo. Chamá-la não roda o corpo de imediato: devolve um objeto gerador, que é um iterador. O corpo só avança quando você pede itens com next() ou com um for. Ver na aula →
- Função lambda
- Uma função anônima, sem nome, escrita em uma única expressão: lambda parametros: expressao. Ela devolve o valor da expressão automaticamente, sem return. Serve para funções muito curtas usadas de passagem, como um critério de ordenação. Ver na aula →
- Função pura
- Uma função que, dadas as mesmas entradas, devolve sempre o mesmo resultado e não depende nem altera nada de fora. É o tipo mais fácil de testar, porque basta comparar o valor devolvido com o esperado. Ver na aula →
- functools.wraps
- Um decorador da biblioteca padrão, aplicado sobre o wrapper, que copia para ele o nome, a docstring e outros metadados da função original. Faz a função decorada continuar se apresentando com a própria identidade. Ver na aula →
- Generator expression
- Uma expressão parecida com a compreensão, mas com parênteses, que não constrói a coleção inteira na memória; ela produz os itens um a um, sob demanda. É a base do assunto geradores, aprofundado em um módulo posterior. Ver na aula →
- get de dicionário
- O método dicionario.get("chave") devolve o valor da chave ou None se ela não existir, em vez de levantar erro como o acesso com colchetes. É útil em JSON de fontes externas, onde nem todo campo aparece sempre, para evitar que o programa quebre. Ver na aula →
- Grupo de captura
- Um trecho do padrão colocado entre parênteses, que a regex guarda separadamente. Depois de casar, você recupera cada grupo com .group(1), .group(2) e assim por diante, o que serve para pegar pedaços específicos, como o DDD e o número de um telefone. Ver na aula →
- Herança
- O mecanismo pelo qual uma classe reaproveita o comportamento de outra. Ao escrever class MeuErro(Exception), a sua classe herda tudo que uma exceção precisa ter, e você só dá a ela um nome novo. Ver na aula →
- Instanciar
- Criar um objeto a partir de uma classe, escrevendo o nome da classe seguido de parênteses, como Conta(). Cada vez que você instancia, o Python monta um novo objeto independente na memória. Ver na aula →
- Interface comum
- O conjunto de métodos que vários tipos compartilham pelo mesmo nome, como falar em todos os animais. É o que permite tratá-los de forma uniforme, chamando o mesmo método em qualquer um deles. Ver na aula →
- Invariante
- Uma regra que deve valer sempre, como "o saldo nunca fica negativo". Validar a entrada antes de alterar o estado é o que mantém a invariante intacta mesmo quando alguém passa um dado inválido. Ver na aula →
- Iterador
- O objeto que de fato caminha pela sequência, um item por vez, quando você chama next(). Ele guarda a posição atual e avisa que acabou levantando StopIteration. Ver na aula →
- Iterável
- Qualquer objeto que o Python sabe percorrer com um for, como uma lista, uma tupla, um dicionário, um conjunto ou uma string. Um iterável sabe entregar um iterador quando você chama iter() nele. Ver na aula →
- JSON
- Sigla de JavaScript Object Notation. É um formato de texto para representar dados estruturados (objetos com pares de chave e valor, listas, números, textos, booleanos e nulo). Nasceu no JavaScript, mas hoje é usado por quase todas as linguagens. Ver na aula →
- json.dump e json.load
- Funções do módulo json. dump escreve um objeto Python (listas, dicionários, textos, números) em um arquivo como texto JSON. load faz o inverso: lê o arquivo e devolve os dados como estruturas Python. Ver na aula →
- json.dumps
- Função do módulo json que recebe um objeto Python (dicionário, lista, número, texto) e devolve uma string JSON. O sufixo s no nome vem de string: dumps produz texto. Sem esse s, a função dump grava direto em um arquivo. Ver na aula →
- json.loads
- Função do módulo json que recebe uma string JSON e devolve o objeto Python correspondente: um dicionário se o JSON for um objeto, uma lista se for um array. O s no nome indica que a entrada é uma string, em contraste com json.load, que lê de um arquivo. Ver na aula →
- JSONDecodeError
- O erro que o json.loads levanta quando o texto recebido não é um JSON válido, por exemplo por conta de aspas simples, uma vírgula sobrando ou uma chave sem fechar. A mensagem aponta a linha e a coluna do problema, o que ajuda a localizar o defeito. Ver na aula →
- Laço do menu
- Um while que repete a exibição do menu e a leitura da opção até o usuário escolher sair. Mantém o programa vivo entre uma ação e outra, sem precisar rodá-lo de novo a cada operação. Ver na aula →
- Leitura preguiçosa de arquivo
- Ler um arquivo linha a linha, tratando cada linha e descartando-a antes de ler a próxima, sem chamar read() para trazer o conteúdo inteiro à memória. O próprio objeto arquivo é iterável e entrega uma linha por vez. Ver na aula →
- Ler, processar e gravar
- O padrão de três etapas de boa parte dos programas de dados: ler a entrada de um arquivo, transformar ou resumir os dados na memória, e gravar o resultado em outro arquivo. É o esqueleto deste relatório. Ver na aula →
- Lista de dicionários
- Uma estrutura muito comum para tabelas: uma lista em que cada item é um dicionário representando um registro, com os mesmos campos (chaves) em todos. É o formato típico de dados vindos de JSON ou CSV. Ver na aula →
- Log
- Registro de eventos que um programa produz enquanto roda, como quais funções foram chamadas e com quais dados. Ajuda a acompanhar o comportamento e a investigar problemas depois, sem parar a execução. Ver na aula →
- Mapear
- Transformar cada item de uma sequência em outro valor, sem mudar a quantidade de itens. Extrair só o nome de cada aluno de uma lista de dicionários é um exemplo de mapeamento. Ver na aula →
- Matriz
- Em Python, costuma ser representada como uma lista de listas: cada lista interna é uma linha, e os itens dentro dela são as colunas. Percorrê-la exige dois laços, um para as linhas e outro para as colunas. Ver na aula →
- Método
- Uma função definida dentro de uma classe, que recebe self e age sobre os dados do objeto. Chama-se pelo ponto, como conta.depositar(100). É a forma de dar comportamento aos objetos. Ver na aula →
- Módulo
- Um arquivo Python com extensão .py que agrupa funções, classes e valores para serem reaproveitados por outros arquivos. A biblioteca padrão é uma coleção grande de módulos que já vêm com o Python. Ver na aula →
- Módulo datetime
- O módulo da biblioteca padrão do Python que trata de datas e horas. Traz, entre outros, os tipos date (só a data), datetime (data com hora) e timedelta (uma duração). Já vem com o Python, basta importar. Ver na aula →
- Namespace
- O espaço de nomes de onde um valor vem. Ao escrever math.sqrt, o math é o namespace: ele deixa claro que sqrt pertence ao módulo math, evitando confusão com uma função de mesmo nome sua. Ver na aula →
- newline vazio
- O argumento newline='' passado ao abrir um CSV. Ele diz ao Python para não mexer nas quebras de linha, deixando o módulo csv cuidar disso. Sem ele, em alguns sistemas aparecem linhas em branco extras entre os registros. Ver na aula →
- Normalizar
- Deixar dados em um formato padrão antes de compará-los. Ao contar palavras, colocar tudo em minúsculas com lower faz "Casa" e "casa" contarem como a mesma palavra. Ver na aula →
- Objeto
- Uma coisa concreta criada a partir de uma classe, também chamada de instância. Cada objeto tem os seus próprios dados, mesmo tendo sido criado do mesmo molde que outros objetos. Ver na aula →
- Objeto de data
- Um valor que guarda ano, mês e dia (e, no caso do datetime, também hora, minuto e segundo) de forma estruturada, permitindo comparações e cálculos, diferente de guardar a data como um texto solto. Ver na aula →
- Objeto de primeira classe
- Um valor que a linguagem trata como qualquer outro: pode ser guardado em variável, passado como argumento e devolvido por uma função. No Python, funções são objetos de primeira classe, assim como números, textos e listas. Ver na aula →
- Objeto mutável
- Um objeto que pode ser alterado depois de criado, sem virar outro objeto. Listas, dicionários e conjuntos são mutáveis. Números, textos, tuplas e booleanos são imutáveis. Só os mutáveis causam a armadilha do padrão. Ver na aula →
- Objeto preguiçoso
- Um resultado que não calcula tudo de uma vez, só produz cada item quando pedido. map e filter devolvem objetos preguiçosos; para ver todos os itens de uma vez, você os converte com list(). Ver na aula →
- Ordem decrescente por campo
- Ordenar do maior para o menor. Em campos numéricos, dá para usar reverse=True ou negar o valor no key, como key=lambda a: -a['nota'], quando outros campos precisam ficar crescentes. Ver na aula →
- Ordenação por múltiplos critérios
- Ordenar comparando mais de um campo em ordem de prioridade. No key, devolve-se uma tupla como (nota, nome): o Python compara a nota e, no empate, o nome. Ver na aula →
- Pacote
- Uma biblioteca de Python escrita por outra pessoa e distribuída para você instalar e usar no seu projeto, como requests para acessar a web ou pandas para dados. Não vem com o Python; você instala com o pip. Ver na aula →
- Pacote externo
- Uma biblioteca que não faz parte da instalação do Python e precisa ser instalada com pip, de preferência dentro de um ambiente virtual. O pytest é um exemplo, ao contrário do unittest, que já vem com a linguagem. Ver na aula →
- Parâmetro key
- Um argumento de sorted e sort que recebe uma função. Para cada item, a função devolve o valor usado na comparação. Ordenar por key=len compara os itens pelo tamanho, não pelo conteúdo. Ver na aula →
- Parâmetro padrão
- Um parâmetro que recebe um valor combinado na definição da função (por exemplo, moeda="BRL"). Se quem chama a função não informar esse argumento, o Python usa o valor padrão. Serve para tornar o argumento opcional. Ver na aula →
- pass
- Uma instrução que não faz nada, usada como recheio quando o Python exige um corpo mas você ainda não tem código para pôr ali. Serve para deixar uma classe ou função vazia sem dar erro. Ver na aula →
- Path
- A classe principal do módulo pathlib. Um objeto Path representa um caminho de arquivo ou pasta e traz métodos e propriedades para montar, consultar, ler e gravar, em vez de manipular o caminho como texto solto. Ver na aula →
- perf_counter
- Função do módulo time da biblioteca padrão que devolve um relógio de alta precisão, ideal para medir intervalos. Chamada antes e depois de uma função, a diferença dá o tempo de execução. Ver na aula →
- pip
- O instalador de pacotes do Python. Com um comando, ele baixa uma biblioteca do repositório oficial (o PyPI) e a instala no ambiente ativo. Já vem junto com o Python e é a forma padrão de adicionar pacotes externos a um projeto. Ver na aula →
- Pipeline de dados
- Uma sequência de etapas em que a saída de cada uma alimenta a entrada da próxima. Com geradores, cada etapa processa um item por vez e passa adiante, sem materializar a coleção inteira em nenhum ponto. Ver na aula →
- Polimorfismo
- A capacidade de um mesmo comando produzir comportamentos diferentes conforme o tipo do objeto. Ao sobrescrever falar em cada filha, chamar falar num objeto qualquer faz o certo para aquele tipo. Ver na aula →
- Ponto de entrada
- O arquivo ou trecho onde um programa começa a rodar quando você o executa. O bloco dentro do if __name__ == "__main__" costuma ser o ponto de entrada quando o arquivo é chamado direto. Ver na aula →
- Ponto flutuante
- O tipo de número com casas decimais no Python, o float. Funções do math como sqrt costumam devolver um float, por isso math.sqrt(9) retorna 3.0 e não 3. Ver na aula →
- Programa de linha de comando
- Um programa que conversa com o usuário pelo terminal, lendo o que ele digita e imprimindo respostas em texto, sem janelas ou botões. É o formato mais simples para focar na lógica, e é o que a agenda usa. Ver na aula →
- Pseudoaleatório
- Os números do módulo random não são aleatórios de verdade: são gerados por uma fórmula que imita o acaso muito bem para jogos e sorteios. Por isso não devem ser usados para senhas ou segurança, onde existe o módulo secrets. Ver na aula →
- PyPI
- O Python Package Index, o repositório oficial e público de pacotes Python. É de lá que o pip baixa as bibliotecas quando você roda pip install. Ele reúne centenas de milhares de pacotes mantidos pela comunidade. Ver na aula →
- pytest
- Um framework de testes externo, muito popular na comunidade Python. Não vem com a linguagem: é instalado com pip. Permite escrever testes como funções simples usando o assert nativo e gera relatórios de falha bastante detalhados. Ver na aula →
- Quantificador
- Um símbolo que diz quantas vezes o item anterior pode se repetir. O + exige uma ou mais vezes; o * aceita zero ou mais; e {n} exige exatamente n vezes. Assim, \d+ casa com um ou mais dígitos seguidos, como um número inteiro. Ver na aula →
- raise
- O comando que faz o seu código levantar uma exceção de propósito. Você escreve raise seguido de uma exceção, como raise ValueError("mensagem"), para interromper a execução e sinalizar que algo está errado. Ver na aula →
- raise from
- Uma forma de levantar uma nova exceção deixando registrada a original que a causou. O traceback mostra as duas, ligadas pela frase "a exceção acima foi a causa direta", o que ajuda a entender a origem do problema. Ver na aula →
- Raw string
- Uma string escrita com um r antes das aspas, como r"\d+", em que a barra invertida é tratada de forma literal. Como as regex usam muitas barras invertidas, escrever o padrão como raw string evita conflito com os códigos de escape normais do Python. Ver na aula →
- re.fullmatch
- Função do módulo re que só casa se o padrão descrever o texto inteiro, do primeiro ao último caractere. É ideal para validar, porque não aceita que o formato certo apareça apenas em um pedaço no meio de um texto maior. Ver na aula →
- Reatribuição
- Fazer um nome passar a apontar para outro objeto. Quando você usa @deco sobre uma função, o Python reatribui o nome da função para o resultado de deco(func), tudo automaticamente. Ver na aula →
- Refatorar
- Reescrever um código que já funciona para deixá-lo mais claro, organizado ou reaproveitável, sem mudar o que ele faz. É uma atividade central do nível intermediário. Ver na aula →
- Referência de função
- O nome da função escrito sem os parênteses, que aponta para o objeto função em vez de executá-lo. Escrever dobrar aponta para a função; escrever dobrar(3) a executa e devolve o resultado. Ver na aula →
- Regra LEGB
- A ordem em que o Python procura um nome: Local (a função atual), Enclosing (funções que a envolvem), Global (o módulo) e Built-in (nomes embutidos, como print e len). Ele usa o primeiro que encontrar nessa sequência. Ver na aula →
- Regressão
- Quando uma mudança no código quebra algo que já funcionava. Testes automatizados servem justamente para pegar regressões cedo, avisando na hora que um comportamento antigo parou de funcionar. Ver na aula →
- Reprodutível
- Um projeto é reprodutível quando outra pessoa consegue rodá-lo com o mesmo resultado, instalando exatamente as mesmas versões de pacotes. O requirements.txt é o que torna isso possível no mundo Python. Ver na aula →
- requirements.txt
- Um arquivo de texto simples que lista os pacotes de um projeto e as versões exatas de cada um. Serve de receita: com ele, qualquer pessoa recria o mesmo ambiente com um comando, no seu computador ou em outro. Ver na aula →
- Resolução de método
- A ordem em que o Python procura um método quando você o chama num objeto. Ele olha primeiro na classe do objeto, depois nas classes base, subindo a cadeia até achar o método ou dar erro se não existir. Ver na aula →
- Retorno de função
- O valor que uma função devolve com a palavra return, para quem a chamou usar. É diferente de apenas imprimir na tela: um valor devolvido pode ser guardado, comparado e passado adiante. Ver na aula →
- Script
- Um arquivo .py com código Python que você executa de uma vez, do começo ao fim, rodando python nome.py no terminal. É o formato mais direto de programa e o que você usa nesta prática. Ver na aula →
- self
- O primeiro parâmetro dos métodos de instância. Representa o próprio objeto que está sendo usado, permitindo guardar e ler os seus atributos com self.atributo. O Python passa o self sozinho quando você chama um método. Ver na aula →
- Sentinela None
- O uso de None como valor padrão para sinalizar ausência de argumento. Dentro da função, um if verifica se o argumento é None e, em caso positivo, cria um objeto novo. É a solução padrão para evitar o bug do mutável compartilhado. Ver na aula →
- Sequência infinita
- Uma sequência sem fim natural, como todos os números pares, que só é possível representar com avaliação preguiçosa. Um gerador pode produzi-la para sempre; cabe a você impor um limite ao consumi-la. Ver na aula →
- Serialização
- O processo de transformar dados que vivem na memória de um programa em texto (ou bytes) para guardar em arquivo ou enviar pela rede. Ler esse texto de volta para dados vivos é a desserialização. O JSON é um dos formatos de serialização mais comuns. Ver na aula →
- setUp
- Método especial do unittest que roda antes de cada teste, preparando um cenário limpo. Na agenda, ele cria uma agenda nova com um contato, para que cada teste comece do mesmo ponto conhecido. Ver na aula →
- Sobrescrever
- Redefinir na classe filha um método com o mesmo nome de um método da base. A versão da filha passa a ser usada para os objetos dela. Em inglês, essa técnica é chamada de override. Ver na aula →
- strftime
- Método que transforma um objeto de data em texto seguindo um molde de códigos. O nome vem de string format time. Você diz o formato com marcadores como %d (dia), %m (mês) e %Y (ano de quatro dígitos), e ele devolve a data escrita daquele jeito. Ver na aula →
- strptime
- Método que faz o caminho inverso: lê um texto e devolve um objeto datetime, guiado pelo mesmo molde de códigos. O p é de parse, que significa interpretar. Você precisa informar o formato exato do texto para ele saber onde estão o dia, o mês e o ano. Ver na aula →
- Subclasse
- Outro nome para classe filha: a classe que herda de outra. Você a declara com o nome da classe base entre parênteses, como class Cachorro(Animal). Ela é uma versão especializada da base. Ver na aula →
- Suíte de testes
- O conjunto de todos os testes que rodam juntos. O unittest descobre os métodos test_, executa cada um isoladamente e apresenta um relatório com o total de testes, quantos passaram e quantos falharam. Ver na aula →
- super()
- Uma função embutida que dá acesso aos métodos da classe base a partir da filha. Dentro de um método da filha, super().metodo() chama a versão da base. O uso mais comum é super().__init__() no construtor. Ver na aula →
- TestCase
- A classe base do unittest da qual você herda para agrupar testes. Cada método cujo nome começa com test_ vira um teste independente, e a classe oferece métodos de verificação como assertEqual e assertTrue. Ver na aula →
- Teste automatizado
- Um pequeno programa que executa o seu código com entradas conhecidas e verifica sozinho se o resultado é o esperado. Roda em segundos e pode ser repetido quantas vezes você quiser, sem esforço manual. Ver na aula →
- timedelta
- O objeto que representa uma duração, uma diferença de tempo, e não um instante. Ao subtrair duas datas você recebe um timedelta, de onde tira, por exemplo, a quantidade de dias com .days. Ver na aula →
- Tokenizar
- Quebrar um texto em pedaços menores, geralmente palavras, para analisá-los. No Python, o método split de uma string separa por espaços e já é uma tokenização simples, suficiente para esta prática. Ver na aula →
- Traceback
- O relatório que o Python imprime quando uma exceção não é tratada. Ele mostra a linha onde o erro aconteceu, o caminho até ali e o tipo do erro, como ValueError ou ZeroDivisionError. Ver na aula →
- unittest
- Módulo de testes da biblioteca padrão. Você escreve uma classe que herda de unittest.TestCase e métodos começando com test_, cada um verificando um comportamento com asserções como assertEqual. Ver na aula →
- utf-8-sig
- Uma variação da codificação utf-8 que adiciona uma marca invisível no começo do arquivo, o BOM. Ela faz o Excel em português reconhecer o arquivo como utf-8 e mostrar os acentos corretamente ao abrir um CSV. Ver na aula →
- Validação
- Checar, dentro do método, se um valor recebido faz sentido antes de usá-lo, como recusar um depósito de valor negativo. É o que impede o objeto de entrar em um estado inválido. Ver na aula →
- Validação de entrada
- Conferir, logo no começo de uma função, se os dados recebidos são válidos antes de usá-los. Quando um valor não faz sentido, a função levanta uma exceção em vez de seguir com um dado ruim. Ver na aula →
- Vazamento de recurso
- Quando um recurso, como um arquivo aberto, não é liberado e continua ocupado. Esquecer de fechar arquivos pode travar edições, corromper gravações incompletas e, em programas grandes, esgotar os arquivos que o sistema permite abrir. Ver na aula →
- venv
- O módulo da biblioteca padrão do Python que cria ambientes virtuais. Você o chama com python -m venv seguido do nome da pasta do ambiente, normalmente .venv. Não precisa instalar nada: já vem com o Python. Ver na aula →
- with open
- A forma recomendada de abrir arquivos no Python. O with garante que o arquivo seja fechado automaticamente ao final do bloco, mesmo se ocorrer um erro. O open recebe o caminho, o modo ("r" para ler, "w" para escrever) e o encoding. Ver na aula →
- yield
- A palavra que devolve um valor por vez e pausa a função naquele ponto, preservando o estado. No próximo pedido de item, a função continua da linha logo depois do yield, como se nunca tivesse parado. Ver na aula →
- zip
- Função que junta duas ou mais sequências item a item, formando pares. É muito usada com a compreensão de dicionário para casar uma lista de chaves com uma lista de valores. Ver na aula →