Automatize Tarefas Maçantes com Python – 3ª Edição
Programação prática para verdadeiros iniciantes
Descrição do livro
APRENDA PYHTON. FAÇA O QUE TEM DE SER FEITO.
BEST-SELLER INTERNACIONAL
Aborda Python 3.x
Se você já passou horas renomeando arquivos ou atualizando centenas de células em planilhas, sabe como essas tarefas podem ser maçantes. Mas e se você pudesse deixar o computador fazer esse trabalho por você?
Nesta terceira edição totalmente revisada de Automatize tarefas maçantes com Python, você aprenderá a usar o Python para criar programas capazes de fazer em poucos minutos o que levaria horas manualmente — tudo isso sem precisar ter experiência prévia em programação. Os primeiros capítulos apresentam os fundamentos da linguagem por meio de explicações claras e exemplos envolventes. Você criará seu primeiro programa Python, trabalhará com strings, listas, dicionários e outras estruturas de dados e depois aprenderá a utilizar expressões regulares para localizar e manipular padrões de texto.
Quando tiver dominado os conceitos básicos, colocará em prática projetos que ensinam a usar o Python para automatizar tarefas como:
• Pesquisar na Web, fazer download de conteúdos e preencher formulários
• Localizar, extrair e manipular textos e dados em arquivos e planilhas
• Copiar, mover, renomear ou compactar arquivos salvos no seu computador
• Dividir, mesclar e extrair texto de PDFs e documentos Word
• Interagir com aplicativos por meio de macros personalizadas de mouse e teclado
• Organizar sua caixa de entrada, cancelar inscrições em listas e enviar notificações por e-mail ou mensagem de texto
Novidades desta edição: Todos os códigos e exemplos foram completamente atualizados. Você também encontrará quatro novos capítulos sobre integração com bancos de dados, reconhecimento de fala e edição de áudio e vídeo, além de 16 novos projetos de programação e uma cobertura ampliada de técnicas de desenvolvimento, como a criação de programas de linha de comando.
Não perca seu tempo com tarefas que poderiam ser facilmente automatizadas. Mesmo que nunca tenha escrito uma linha de código, você pode deixar esse trabalho repetitivo para o seu computador. Descubra como em Automatize tarefas maçantes com Python.
Ver menos ▲Sumário
- Sobre o autor
- Prefácio
- Agradecimentos
- Introdução
- Para quem é este livro?
- Convenções de codificação utilizadas neste livro
- O que é programação?
- O que é Python?
- Mitos comuns sobre programação
- Programadores não precisam saber muito de matemática
- Você não está velho demais para aprender programação
- A IA não substituirá os programadores
- Sobre este livro
- Baixando e instalando o Python
- Baixando e instalando o Mu
- Inicializando o Mu
- Inicializando o IDLE
- Shell interativo
- Como encontrar ajuda
- Fazendo perguntas inteligentes sobre programação
- Novidades da terceira edição
- Resumo
- Parte I: Fundamentos de programação
- Capítulo 1: Fundamentos básicos de Python
- Fornecendo expressões no shell interativo
- Tipos de dados: inteiro, ponto flutuante e string
- Concatenação e repetição de strings
- Armazenando valores em variáveis
- Instruções de atribuição
- Nomes de variáveis
- Seu primeiro programa
- Dissecando o programa
- Comentários
- Função print()
- Função input()
- Mensagem de saudação
- Função len()
- Funções str(), int() e float()
- Função type()
- Funções round() e abs()
- Como computadores armazenam dados utilizando números binários
- Resumo
- Exercícios práticos
- Capítulo 2: Instruções if-else e controle de fluxo
- Valores booleanos
- Operadores de comparação
- Operadores booleanos
- Combinando operadores booleanos e operadores de comparação
- Elementos do controle de fluxo
- Condições
- Blocos de código
- Execução do programa
- Instruções de controle de fluxo
- Instrução if
- Instrução else
- Instrução elif
- Criando um programa simples: o dia do oposto
- Criando um programa simples: a calculadora de capacidade enganosa
- Resumo
- Exercícios práticos
- Capítulo 3: Loops
- Instruções de loop while
- Um loop while irritante
- Instruções break
- Instruções continue
- Loops for e a função range()
- Um equivalente ao loop while
- Argumentos da função range()
- Importando módulos
- Encerrando um programa previamente com sys exit()
- Criando um programa simples: adivinhe o número
- Criando um programa simples: pedra, papel e tesoura
- Resumo
- Exercícios práticos
- Capítulo 4: Funções
- Criando funções
- Argumentos e parâmetros
- Valores de retorno e instruções return
- O valor None
- Parâmetros nomeados
- A pilha de chamadas
- Escopos local e global
- Regras de escopo
- A instrução global
- Identificação de escopo
- Tratamento de exceções
- Criando um programa simples: Zigue-zague
- Criando um programa simples: desenhando pontas de lança
- Resumo
- Exercícios práticos
- Projetos práticos
- Sequência de Collatz
- Validação de dados de entrada
- Capítulo 5: Depuração
- Gerando exceções
- Asserções
- Logging
- Módulo logging
- Logging em arquivos
- Evite fazer depuração com print()
- Níveis de logging
- Desabilitando o logging
- Depurador do Mu
- Depurando um programa que soma números
- Definindo breakpoints
- Resumo
- Exercícios práticos
- Projeto prático: Depurando um programa de cara ou coroa
- Capítulo 6: Listas
- Tipo de dado lista
- Índices
- Índices negativos
- Slices
- Função len()
- Atualização de valores
- Concatenação e replicação
- Instruções del
- Trabalhando com listas
- Loops for e listas
- Operadores in e not in
- Truque da atribuição múltipla
- Enumeração de itens de lista
- Seleção e ordenação aleatória
- Operadores de atribuição compostos
- Métodos
- Encontrando valores
- Adicionando valores
- Removendo valores
- Ordenando valores
- Invertendo valores
- Operadores booleanos com curto-circuito
- Criando um programa simples: bola mágica 8 com uma lista
- Tipos de dados sequenciais
- Tipos de dados mutáveis e imutáveis
- Tipo de dado tupla
- Conversão entre listas e tuplas
- Referências
- Argumentos
- Funções copy() e deepcopy()
- Criando um programa simples: protetor de tela do Matrix
- Resumo
- Exercícios práticos
- Projetos práticos
- Lista com vírgulas
- Sequências de cara ou coroa
- Capítulo 7: Dicionários e estruturação de dados
- Tipo de dado dicionário
- Comparando dicionários e listas
- Retornando chaves e valores
- Verificando se uma chave existe
- Definindo valores padrão
- Utilizando estruturas de dados para modelar objetos do mundo real
- Projeto 1: Simulador interativo de tabuleiro de xadrez (projeto)
- 1º Passo: Configurando o programa
- 2º Passo: Criando um modelo de tabuleiro de xadrez
- 3º Passo: Exibindo o tabuleiro atual na tela
- 4º Passo: Manipulando o tabuleiro de xadrez
- Dicionários e listas aninhados
- Resumo
- Exercícios práticos
- Projetos práticos
- Validador de dicionário de xadrez
- Inventário de jogo de fantasia
- Convertendo os itens coletados de lista para dicionário
- Capítulo 8: Manipulação de strings
- Trabalhando com strings
- Literais de string
- Indexação e fatiamento
- Operadores in e not in
- F-strings
- Alternativas às f-strings: %s e format()
- Métodos de string úteis
- Mudando a capitalização
- Verificando características de strings
- Verificando o início ou o fim de uma string
- Concatenando e dividindo strings
- Justificando e centralizando texto
- Removendo espaços em branco
- Pontos de código numéricos dos caracteres
- Copiando e colando strings
- Projeto 2: Adicionando marcadores à marcação da Wiki
- 1º Passo: Copiando e colando a partir da área de transferência
- 2º Passo: Separando as linhas de texto
- 3º Passo: Concatenando as linhas modificadas
- Criando um programa simples: Pig Latin
- Resumo
- Exercícios práticos
- Projeto prático: Exibição de texto em tabelas
- Parte II: Automatizando tarefas
- Capítulo 9: Correspondência de padrões de texto com expressões regulares
- Encontrando padrões de texto sem expressões regulares
- Encontrando padrões de texto com expressões regulares
- Sintaxe das expressões regulares
- Agrupando com parênteses
- Utilizando caracteres de escape
- Fazendo a correspondência de caracteres com diferentes grupos
- Retornando todas as correspondências
- Sintaxe dos qualificadores: Quais caracteres devem corresponder
- Utilizando classes de caracteres e classes de caracteres negativos
- Utilizando classes de caracteres abreviadas
- Fazendo correspondência com qualquer coisa utilizando o caractere de ponto
- Cuidado com o que você faz correspondência
- Sintaxe dos quantificadores: Quantos quantificadores devem corresponder
- Fazendo a correspondência com um padrão opcional
- Fazendo a correspondência de zero ou mais ocorrências de um qualificador
- Fazendo a correspondência com uma ou mais ocorrências de um qualificador
- Fazendo a correspondência com um número específico de ocorrências de qualificadores
- Correspondências gulosas e não gulosas
- Fazendo a correspondência com qualquer coisa
- Fazendo a correspondência com caracteres de quebra de linha
- Fazendo a correspondência com o início e o final de uma string
- Fazendo correspondências sem diferenciar letras maiúsculas de minúsculas
- Substituindo strings
- Gerenciando regexes complexas com o modo verbose
- Combinando re IGNORECASE, re DOTALL e re VERBOSE
- Projeto 3: Extraindo números de telefone de documentos extensos
- 1º Passo: Criando uma regex para números de telefone
- 2º Passo: Criando uma regex para endereços de e-mail
- 3º Passo: Encontrando correspondências no texto da área de transferência
- 4º Passo: Concatenando as correspondências em uma string
- Ideias para programas semelhantes
- Humre: Um módulo para tornar regexes mais fáceis de ler
- Resumo
- Exercícios práticos
- Projetos práticos
- Detecção de senhas fortes
- Versão com regex do método strip()
- Capítulo 10: Lendo e gravando em arquivos
- Arquivos e caminhos de arquivos
- Padronizando os separadores de caminho
- Concatenando caminhos
- Acessando o diretório de trabalho atual
- Acessando o diretório pessoal
- Especificando caminhos absolutos e relativos
- Criando novas pastas
- Manipulando caminhos absolutos e relativos
- Extraindo partes de um caminho de arquivo
- Extraindo tamanho de arquivos e timestamps
- Localizando arquivos com padrões glob
- Verificando a validade de um caminho
- Processo de leitura e gravação de arquivos
- Abrindo arquivos
- Lendo o conteúdo de arquivos
- Gravando conteúdo em arquivos
- Utilizando instruções with
- Salvando variáveis com o módulo shelve
- Projeto 4: Geração de arquivos aleatórios de provas
- 1º Passo: Armazenar os dados das provas em um dicionário
- 2º Passo: Criar o arquivo de prova
- 3º Passo: Criar as opções de resposta
- 4º Passo: Gravar o conteúdo nos arquivos
- Resumo
- Exercícios práticos
- Projetos práticos
- Mad Libs
- Pesquisa com regex
- Capítulo 11: Organizando arquivos
- Módulo shutil
- Copiando arquivos e pastas
- Movendo e renomeando arquivos e pastas
- Excluindo arquivos e pastas permanentemente
- Excluindo arquivos e pastas para a lixeira
- Percorrendo uma árvore de diretórios
- Compactando arquivos com o módulo zipfile
- Criando e adicionando arquivos a arquivos ZIP
- Lendo arquivos ZIP
- Extraindo arquivos de arquivos ZIP
- Projeto 5: Fazendo backup de uma pasta em um arquivo ZIP
- 1º Passo: Definindo o nome do arquivo ZIP
- 2º Passo: Criando o novo arquivo ZIP
- 3º Passo: Percorrendo uma árvore de diretórios
- Ideias para programas semelhantes
- Resumo
- Exercícios práticos
- Projetos práticos
- Cópia seletiva
- Excluindo arquivos desnecessários
- Renumerando arquivos
- Convertendo datas do formato americano para o formato europeu
- Capítulo 12: Projetando e implantando programas para a linha de comando
- Programa é programa, não importa o nome
- Utilizando o terminal
- Comandos cd, pwd, dir e ls
- Variável de ambiente PATH
- Editando a variável PATH
- Comandos which e where
- Ambientes virtuais
- Instalando pacotes Python com o pip
- Programas autoconscientes
- Projetando programas baseados em texto
- Comandos com nomes curtos
- Argumentos de linha de comando
- Entrada e saída via área de transferência
- Texto colorido com Bext
- Limpando o terminal
- Notificações por som e texto
- Criando um programa simples: Tempestade de neve
- Adicionando caixas de mensagem pop-up com o PyMsgBox
- Implantando programas Python
- Windows
- macOS
- Ubuntu Linux
- Criando um programa simples: Copiando o diretório de trabalho atual
- Windows
- macOS
- Ubuntu Linux
- Criando um programa simples: Gravador da área de transferência
- Windows
- macOS
- Ubuntu Linux
- Compilando programas Python com o PyInstaller
- Resumo
- Exercícios práticos
- Projeto prático: Torne seus programas implantáveis
- Capítulo 13: Web Scraping
- HTTP e HTTPS
- Projeto 6: Executando um programa com o módulo webbrowser
- 1º Passo: Descobrir o URL
- 2º Passo: Tratar os argumentos da linha de comando
- 3º Passo: Obter o conteúdo da área de transferência
- Ideias para programas semelhantes
- Fazendo download de arquivos da web com o módulo requests
- Fazendo download de páginas web com a função requests get()
- Verificando se houve erros
- Salvando arquivos baixados no disco rígido
- Acessando uma API de previsão do tempo
- Solicitando dados de latitude e longitude
- Obtendo as condições atuais do clima
- Obtendo uma previsão do tempo
- Explorando APIs
- Compreendendo HTML
- Explorando o formato HTML
- Visualizando o código-fonte de uma página web
- Abrindo as Ferramentas de Desenvolvedor do navegador
- Localizando elementos HTML
- Fazendo o parsing de HTML com o Beautiful Soup
- Criando um objeto Beautiful Soup
- Localizando um elemento
- Obtendo dados dos atributos de um elemento
- Projeto 7: Abrindo todos os resultados da busca
- 1º Passo: Obter a página de pesquisa
- 2º Passo: Encontrar todos os resultados
- 3º Passo: Abrir uma aba no navegador para cada resultado
- Ideias para programas semelhantes
- Projeto 8: Fazendo download de quadrinhos do XKCD
- 1º Passo: Projetar o programa
- 2º Passo: Fazer o download da página web
- 3º Passo: Localizar e fazer o download da imagem do quadrinho
- 4º Passo: Salvar a imagem e localizar o quadrinho anterior
- Ideias para programas semelhantes
- Controlando o navegador com o Selenium
- Inicializando um navegador controlado pelo Selenium
- Clicando em botões do navegador
- Localizando elementos na página
- Clicando em elementos na página
- Preenchendo e enviando formulários
- Simulando o clique de teclas especiais
- Controlando o navegador com o Playwright
- Inicializando um navegador controlado pelo Playwright
- Clicando em botões do navegador
- Localizando elementos na página
- Clicando em elementos na página
- Preenchendo e enviando formulários
- Simulando o clique de teclas especiais
- Resumo
- Exercícios práticos
- Projetos práticos
- Baixador de imagens de sites
- 2048
- Verificador de links
- Capítulo 14: Trabalhando com planilhas Excel
- Lendo arquivos Excel
- Abrindo um workbook
- Acessando as planilhas do workbook
- Acessando as células das planilhas
- Fazendo a conversão entre letras e números das colunas
- Obtendo linhas e colunas
- Projeto 9: Coletor de estatísticas do censo
- 1º Passo: Ler os dados da planilha
- 2º Passo: Preencher a estrutura de dados
- 3º Passo: Gravar os resultados em um arquivo
- Ideias para programas semelhantes
- Gravando documentos Excel
- Criando e salvando arquivos Excel
- Criando e excluindo planilhas
- Gravando valores em células
- Projeto 10: Atualizando uma planilha
- 1º Passo: Criar uma estrutura de dados com as informações atualizadas
- 2º Passo: Verificar todas as linhas e atualizar os preços incorretos
- Ideias para programas semelhantes
- Definindo o estilo de fonte das células
- Fórmulas
- Ajustando linhas e colunas
- Definindo altura de linhas e largura de colunas
- Mesclando e desfazendo a mesclagem de células
- Fixando painéis
- Gráficos
- Resumo
- Exercícios práticos
- Projetos práticos
- Criador de tabela de multiplicação
- Ferramenta para inserir linhas em branco
- Capítulo 15: Google Sheets
- Instalando e configurando o EZSheets
- Criando um novo projeto no Google Cloud
- Ativando as APIs do Sheets e do Drive
- Configurando a tela de consentimento do OAuth
- Criando as credenciais
- Fazendo login utilizando o arquivo de credenciais
- Revogando o arquivo de credenciais
- Objetos Spreadsheet
- Criando, enviando e listando planilhas
- Acessando os atributos de uma planilha
- Fazendo download e upload de planilhas
- Excluindo planilhas
- Objetos Sheet
- Lendo e gravando dados
- Criando, movendo e excluindo páginas
- Copiando páginas
- Google Forms
- Projeto 11: Golpe de criptomoeda com blockchain falso
- 1º Passo: Auditar o blockchain falso
- 2º Passo: Realizar transações
- Lidando com as cotas do Google Sheets
- Resumo
- Exercícios práticos
- Projetos práticos
- Fazendo download de dados do Google Forms
- Convertendo planilhas para outros formatos
- Encontrando erros em uma planilha
- Capítulo 16: Bancos de dados SQLite
- Planilhas versus bancos de dados
- SQLite versus outros bancos de dados SQL
- Criando bancos de dados e tabelas
- Conectando-se a bancos de dados
- Criando tabelas
- Definindo tipos de dados
- Listando tabelas e colunas
- Operações CRUD em bancos de dados
- Inserindo dados no banco de dados
- Lendo dados do banco de dados
- Atualizando dados no banco de dados
- Excluindo dados do banco de dados
- Revertendo transações com rollback
- Fazendo backup de bancos de dados
- Alterando e excluindo tabelas
- Relacionando múltiplas tabelas com chaves estrangeiras
- Utilizando bancos de dados em memória e backups
- Copiando bancos de dados
- Aplicativos SQLite
- Resumo
- Exercícios práticos
- Projetos práticos
- Verificador de vacinação de gatos
- Banco de dados de refeições e ingredientes
- Capítulo 17: Trabalhando com documentos PDF e Word
- Documentos PDF
- Extraindo texto
- Pós-processamento com IA
- Extraindo imagens
- Criando PDFs a partir de outras páginas
- Projeto 12: Combinando páginas específicas de vários PDFs
- 1º Passo: Localizar todos os arquivos PDF
- 2º Passo: Abrir cada PDF
- 3º Passo: Salvar os resultados
- Ideias para programas semelhantes
- Documentos Word
- Lendo documentos Word
- Obtendo o texto completo de um arquivo .docx
- Formatando objetos Paragraph e Run com estilos
- Aplicando atributos a objetos Run
- Gravando documentos Word
- Adicionando títulos
- Adicionando quebras de linha e de página
- Adicionando imagens
- Resumo
- Exercícios práticos
- Projetos práticos
- Script de segurança para PDFs
- Convites personalizados
- Removedor de senhas de PDF
- Capítulo 18: Trabalhando com arquivos CSV, JSON e XML
- Formato CSV
- Lendo arquivos CSV
- Acessando dados com um loop for
- Gravando arquivos CSV
- Utilizando tabulações em vez de vírgulas
- Tratando linhas de cabeçalho
- Projeto 13: Removendo o cabeçalho de arquivos CSV
- 1º Passo: Iterar sobre cada arquivo
- 2º Passo: Ler o arquivo
- 3º Passo: Gravar o novo arquivo CSV
- Ideias para programas semelhantes
- Formatos de texto simples versáteis
- JSON
- XML
- Resumo
- Exercícios práticos
- Projeto prático: Conversor de Excel para CSV
- Capítulo 19: Monitorando tempo, agendando tarefas e inicializando programas
- Módulo time
- Retornando o timestamp de época
- Pausando a execução de programas
- Projeto 14: Supercronômetro
- 1º Passo: Configurar o programa para registrar horários
- 2º Passo: Acompanhar e exibir os tempos das voltas
- Ideias para programas semelhantes
- Módulo datetime
- Representando duração
- Pausando a execução do programa até uma data específica
- Convertendo objetos datetime em strings
- Convertendo strings em objetos datetime
- Inicializando outros programas a partir do Python
- Passando argumentos de linha de comando para processos
- Recebendo texto de saída de comandos inicializados
- Executando os agendadores Task Scheduler, launchd e cron
- Abrindo arquivos com aplicativos padrão
- Projeto 15: Contagem regressiva simples
- 1º Passo: Realizar a contagem regressiva
- 2º Passo: Reproduzir o arquivo de áudio
- Ideias para programas semelhantes
- Resumo
- Exercícios práticos
- Projetos práticos
- Cronômetro aprimorado
- Localizador de sextas-feiras 13
- Capítulo 20: Enviando e-mails, mensagens de texto e notificações push
- API do Gmail
- Ativando a API
- Enviando e-mails
- Lendo e-mails
- Buscando e-mails
- Fazendo download de anexos
- Gateways de e-mail para SMS
- Notificações push
- Enviando notificações
- Transmitindo metadados
- Recebendo notificações
- Resumo
- Exercícios práticos
- Projetos práticos
- Lembrete de levar o guarda-chuva
- Cancelador automático de inscrições
- Controlando o computador remotamente via e-mail
- Capítulo 21: Criando gráficos e manipulando imagens
- Fundamentos de imagens digitais
- Cores e valores RGBA
- Coordenadas e tuplas de caixa
- Manipulando imagens com o Pillow
- Trabalhando com o tipo de dado Image
- Cortando imagens
- Colando imagens em outras imagens
- Redimensionando imagens
- Rotacionando e espelhando imagens
- Alterando pixels específicos
- Projeto 16: Adicionando um logotipo
- 1º Passo: Abrir a imagem do logotipo
- 2º Passo: Iterar sobre todos os arquivos
- 3º Passo: Redimensionar as imagens
- 4º Passo: Adicionar o logotipo e salvar as alterações
- Ideias para programas semelhantes
- Desenhando em imagens
- Desenhando formas
- Desenhando textos
- Copiando e colando imagens na área de transferência
- Criando gráficos com o Matplotlib
- Gráficos de linhas e gráficos de dispersão
- Gráficos de barras e gráficos de pizza
- Componentes adicionais
- Resumo
- Exercícios práticos
- Projetos práticos
- Gerador de mosaicos
- Identificando pastas de fotos no disco rígido
- Criando cartões de mesa personalizados
- Capítulo 22: Reconhecimento de texto em imagens
- Instalando o Tesseract e o PyTesseract
- Windows
- macOS
- Linux
- PyTesseract
- Fundamentos de OCR
- Pré-processando uma imagem
- Corrigindo erros com grandes modelos de linguagem
- Reconhecimento de texto em outros idiomas
- Aplicativo NAPS2 Scanner
- Instalando e configurando o NAPS2
- Executando o NAPS2 a partir do Python
- Especificando a entrada
- Resumo
- Exercícios práticos
- Projeto prático: Ferramenta de captura de texto no navegador
- Capítulo 23: Controlando o teclado e o mouse com automação de GUI
- Configurando aplicativos de acessibilidade no macOS
- Mantendo o controle da automação
- Pausas e mecanismos de segurança
- Encerrando o programa com logout
- Controlando o movimento do mouse
- Movendo o mouse
- Obtendo a posição atual do cursor do mouse
- Controlando as operações do mouse
- Simulando cliques
- Arrastando o mouse
- Utilizando a rolagem do mouse
- Planejando os movimentos do mouse
- Fazendo capturas de tela
- Reconhecimento de imagem
- Obtendo informações sobre janelas
- Obtendo a janela ativa
- Localizando janelas com outras funções
- Manipulando janelas
- Controlando o teclado
- Enviando strings de pressionamentos de tecla
- Especificando nomes de teclas
- Pressionando e soltando teclas do teclado
- Executando combinações de teclas de atalho
- Configurando scripts de automação de GUI
- Exibindo caixas de mensagem
- Resumo
- Exercícios práticos
- Projetos práticos
- Fingindo produtividade
- Lendo campos de texto com a área de transferência
- Criando um bot para jogos
- Capítulo 24: Mecanismos de conversão de texto em fala e reconhecimento de fala
- Mecanismo de conversão de texto em fala
- Geração de fala
- Salvando áudio de fala em arquivos WAV
- Reconhecimento de fala
- Criando arquivos de legenda
- Fazendo download de vídeos de sites
- Resumo
- Exercícios práticos
- Projetos práticos
- Adicionando voz ao programa “Adivinhe o número”
- Cantando a canção “99 Bottles of Beer”
- Ferramenta de transcrição de vídeos do YouTube
- Apêndice A: Instalando pacotes de terceiros
- Instalando o pip
- Localizando o pip
- Executando o pip em ambientes virtuais
- Instalando os pacotes utilizados neste livro
- Apêndice B: Respostas dos exercícios práticos
- Índice remissivo
Sobre o autor
Al Sweigart é desenvolvedor de software, membro da Python Software Foundation e autor de diversos livros conhecidos sobre programação, incluindo The Big Book of Small Python Projects, Beyond the Basic Stuff with Python, Coding with Minecraft e The Recursive Book of Recursion (todos publicados pela No Starch Press).… Ver perfil completo ▶
Livros relacionados
Recursos
Opinião dos leitores
Roberto J de O
Este livro é uma obra essencial e imprescindível a qualquer pessoa que tenha interesse ou necessidade em conhecer, aprender e, principalmente, praticar a programação com base em fundamentos sólidos, porém com clareza e didática impressionantes. O autor já havia me surpreendido com a edição anterior, mas nesta, ele conseguiu se superar. As verdadeiras aulas sobre Python; o regex elucidativo com exemplos práticos; a manipulação e edição de diversos tipos e formatos de arquivos - inclusive bases de dados, no terminal ou na web, são alguns dos tópicos que realmente fazem desta edição um modelo de aprendizado e ensino, teórico e prático. Obrigado e parabéns a ambos, autor e editora.






