Curso Intensivo de Python – 3ª Edição
Uma Introdução Prática e Baseada em Projetos à Programação
Descrição do livro
O Curso Intensivo de Python é o guia de programação Python mais vendido do mundo. Com essa introdução rápida e abrangente, você será capaz de escrever, programar, solucionar problemas e desenvolver aplicações que funcionam num piscar de olhos.
Comece aprendendo os conceitos básicos de programação, como variáveis, listas, classes e loops, e pratique a escrita de código limpo com exercícios para cada tópico. Você também aprenderá como tornar seus programas interativos e testar seu código com segurança antes de adicioná-lo a um projeto. Assim, é possível colocar seus conhecimentos em prática, desenvolvendo um jogo arcade inspirado no Space Invaders, criando um conjunto de visualizações de dados com bibliotecas úteis do Python e implementando uma aplicação simples online.
Com este livro, você aprenderá como:
• Usar bibliotecas e ferramentas efetivas do Python, como pytest, Pygame, Matplotlib, Plotly e Django.
• Criar jogos 2D cada vez mais complexos que respondam às teclas pressionadas e cliques do mouse.
• Gerar visualizações de dados interativas usando uma variedade de conjuntos de dados.
• Desenvolver aplicações que permitam aos usuários criar contas e gerenciar seus próprios dados e fazer deploy de aplicações online.
• Solucionar erros de código e resolver problemas comuns de programação.
Novidades desta edição: Esta terceira edição foi totalmente revisada para retratar o que há de mais recente em programação Python. A cobertura nova e atualizada inclui o VS Code para edição de texto, o módulo pathlib para manipulação de arquivos, pytest para testar seu código, bem como os recursos mais recentes da Matplotlib, do Plotly e do Django.
Se você está pensando em se aprofundar na programação, com o Curso Intensivo de Python você terá as habilidades para escrever programas rapidamente. Por que esperar mais? Apertem os cintos e vamos programar!
Ver menos ▲Sumário
Sumário
- Prefácio da terceira edição
- Agradecimentos
- Introdução
- Noções básicas
- Capítulo 1 ■ Primeiros passos
- Configurando seu ambiente de programação
- Versões do Python
- Executando trechos de código Python
- Sobre o editor VS Code
- Python em diferentes sistemas operacionais
- Python no Windows
- Python no macOS
- Python no Linux
- Executando um programa Hello World
- Instalando a extensão Python para VS Code
- Executando hello_world py
- Resolução de problemas
- Executando programas Python em um terminal
- No Windows
- No macOS e no Linux
- Recapitulando
- Capítulo 2 ■ Variáveis e tipos de dados simples
- O que realmente ocorre quando executamos o hello_world py
- Variáveis
- Nomeando e usando variáveis
- Evitando erros em nomes ao usar variáveis
- Variáveis são rótulos
- Strings
- Alterando letras maiúsculas e minúsculas em uma string com métodos
- Usando variáveis em strings
- Adicionando espaço em branco a strings com tabs ou quebras de linhas
- Removendo espaços em branco com o strip()
- Removendo prefixos
- Evitando erros de sintaxe com strings
- Números
- Inteiros
- Floats
- Inteiros e floats
- Underscores em números
- Atribuição múltipla
- Constantes
- Comentários
- Como escrever comentários?
- Quais tipos de comentários você deve escrever?
- Zen do Python
- Recapitulando
- Capítulo 3 ■ Introdução às listas
- O que é uma lista?
- Acessando os elementos em uma lista
- As posições do índice começam em 0, não em 1
- Usando valores individuais de uma lista
- Modificando, adicionando e removendo elementos
- Modificando elementos em uma lista
- Adicionando elementos a uma lista
- Removendo elementos de uma lista
- Organizando uma lista
- Ordenando uma lista permanentemente com o método sort()
- Ordenando uma lista temporariamente com a função sorted()
- Exibindo uma lista em ordem inversa
- Identificando o tamanho de uma lista
- Evitando erros de índice ao trabalhar com listas
- Recapitulando
- Capítulo 4 ■ Trabalhando com listas
- Loops: percorrendo uma lista inteira
- Análise minuciosa dos loops
- Fazendo mais tarefas dentro de um loop for
- Fazendo mais tarefas após usar um loop for
- Evitando erros de indentação
- Esquecendo da indentação
- Esquecendo de indentar linhas adicionais
- Indentando desnecessariamente
- Indentando desnecessariamente após o loop
- Esquecendo os dois-pontos
- Criando listas numéricas
- Usando a função range
- Usando o range() para criar uma lista de números
- Estatísticas simples com uma lista de números
- List comprehensions
- Trabalhando com parte de uma lista
- Fatiando uma lista
- Percorrendo uma fatia com um loop
- Copiando uma lista
- Tuplas
- Definindo uma tupla
- Percorrendo todos os valores em uma tupla com um loop
- Sobrescrevendo uma tupla
- Estilizando seu código
- Guia de estilo
- Indentação
- Comprimento da linha
- Linhas em branco
- Outros guias de estilo
- Recapitulando
- Capítulo 5 ■ Instruções if
- Um simples exemplo
- Testes condicionais
- Verificando a igualdade
- Ignorando letras maiúsculas e minúsculas ao verificar a igualdade
- Verificando a diferença
- Comparações numéricas
- Verificando múltiplas condições
- Verificando se um valor está em uma lista
- Verificando se um valor não está em uma lista
- Expressões booleanas
- Instruções if
- Instruções if simples
- Instruções if-else
- Sequência if-elif-else
- Usando múltiplos blocos elif
- Omitindo o bloco else
- Testando múltiplas condições
- Usando instruções if com listas
- Verificando elementos especiais
- Verificando se uma lista não está vazia
- Usando múltiplas listas
- Estilizando suas instruções if
- Recapitulando
- Capítulo 6 ■ Dicionários
- Um dicionário simples
- Trabalhando com dicionários
- Acessando valores em um dicionário
- Adicionando novos pares chave-valor
- Começando com um dicionário vazio
- Modificando valores em um dicionário
- Removendo pares chave-valor
- Um dicionário de objetos parecidos
- Usando get() para acessar valores
- Percorrendo um dicionário com um loop
- Percorrendo todos os pares chave-valor com um loop
- Percorrendo todas as chaves de um dicionário com um loop
- Percorrendo todos os valores de um dicionário com um loop
- Aninhamento
- Uma lista de dicionários
- Uma lista em um dicionário
- Um dicionário em um dicionário
- Recapitulando
- Capítulo 7 ■ Entrada do usuário e loops while
- Como a função input() funciona
- Escrevendo prompts limpos
- Usando int() para receber entradas numéricas
- Operador módulo
- Apresentando os loops while
- Usando o loop while
- Permitindo que o usuário encerre um programa
- Usando flags
- Usando o break para sair de um loop
- Usando continue em um loop
- Evitando loops infinitos
- Usando um loop while com listas e dicionários
- Transferindo elementos de uma lista para outra
- Removendo todas as instâncias de valores específicos de uma lista
- Preenchendo um dicionário com entrada do usuário
- Recapitulando
- Capítulo 8 ■ Funções
- Definindo uma função
- Passando informações para uma função
- Argumentos e parâmetros
- Passando argumentos
- Argumentos posicionais
- Argumentos nomeados
- Valores default
- Chamadas de função equivalentes
- Evitando erros de argumento
- Valores de retorno
- Retornando um valor simples
- Definindo um argumento como opcional
- Retornando um dicionário
- Usando uma função com um loop while
- Passando uma lista
- Modificando uma lista em uma função
- Evitando que uma função modifique uma lista
- Passando um número arbitrário de argumentos
- Misturando argumentos posicionais e arbitrários
- Usando argumentos nomeados arbitrários
- Armazenando suas funções em módulos
- Importando um módulo inteiro
- Importando funções específicas
- Usando as para atribuir um alias a uma função
- Usando as para atribuir um alias a um módulo
- Importando todas as funções em um módulo
- Estilizando funções
- Recapitulando
- Capítulo 9 ■ Classes
- Criando e usando uma classe
- Criando a classe Dog
- Método __init__()
- Como criar uma instância a partir de uma classe
- Trabalhando com classes e instâncias
- Classe Car
- Definindo um valor default para um atributo
- Modificando valores de atributos
- Herança
- Método __init__() para uma classe-filha
- Definindo atributos e métodos para a classe-filha
- Sobrescrevendo métodos a partir da classe-pai
- Instâncias como atributos
- Modelando objetos do cotidiano
- Importando classes
- Importando uma única classe
- Armazenando múltiplas classes em um módulo
- Importando múltiplas classes de um módulo
- Importando um módulo inteiro
- Importando todas as classes de um módulo
- Importando um módulo para um módulo
- Usando aliases
- Definindo o próprio fluxo de estudo e de trabalho
- Biblioteca padrão do Python
- Estilizando classes
- Recapitulando
- Capítulo 10 ■ Arquivos e exceções
- Lendo um arquivo
- Lendo o conteúdo de um arquivo
- Paths relativos e absolutos
- Acessando as linhas de um arquivo
- Trabalhando com o conteúdo de um arquivo
- Arquivos gigantes: um milhão de algarismos
- Seu aniversário está contido no número Pi?
- Escrevendo em um arquivo
- Escrevendo em uma única linha
- Escrevendo múltiplas linhas
- Exceções
- Lidando com a exceção ZeroDivisionError
- Usando blocos try-except
- Usando exceções para prevenir falhas
- Bloco else
- Lidando com a exceção FileNotFoundError
- Analisando textos
- Trabalhando com múltiplos arquivos
- Falhando sem acusar erros
- Decidindo quais erros reportar
- Armazenando dados
- Usando as funções json dumps() e json loads())
- Salvando e lendo dados gerados pelo usuário
- Refatoração
- Recapitulando
- Capítulo 11 ■ Testando seu código
- Instalando o pytest com pip
- Atualizando o pip
- Instalando o pytest
- Testando uma função
- Testes unitários e casos de teste
- Um teste que passa
- Executando um teste
- Um teste que falha
- Respondendo a um teste que falhou
- Adicionando testes novos
- Testando uma classe
- Variedade de asserções
- Uma classe para testar
- Testando a classe AnonymousSurvey
- Usando fixtures
- Recapitulando
- Projetos
- Capítulo 12 ■ Uma espaçonave que dispara balas
- Planejando seu projeto
- Instalando o Pygame
- Iniciando o projeto do jogo
- Criando uma janela Pygame e respondendo à entrada do usuário
- Controlando a taxa de frame
- Definindo a cor do background
- Criando uma classe Settings
- Adicionando a imagem da espaçonave
- Criando a classe Ship
- Desenhando a espaçonave na tela
- Refatoração: métodos _check_events() e _update_screen()
- Método _check_events()
- Método _update_screen()
- Pilotando a espaçonave
- Respondendo às teclas pressionadas
- Movimento contínuo
- Movimentos à esquerda e à direita
- Ajustando a velocidade da espaçonave
- Restringindo o alcance da espaçonave
- Refatorando o _check_events()
- Pressionando Q para encerrar o jogo
- Executando o jogo no modo de tela cheia
- Breve recapitulação
- alien_invasion py
- settings py
- ship py
- Disparando balas
- Adicionando os projéteis
- Criando a classe Bullet
- Armazenando projéteis em um grupo
- Disparando projéteis
- Deletando projéteis antigos
- Restringindo o número de projéteis
- Criando o método _update_bullets()
- Recapitulando
- Capítulo 13 ■ Alienígenas!
- Revisando o projeto
- Criando o primeiro alienígena
- Criando a classe Alien
- Criando uma instância do alienígena
- Criando a frota alienígena
- Criando uma fileira de alienígenas
- Refatorando _create_fleet()
- Adicionando fileiras
- Movendo a frota
- Movendo os alienígenas para a direita
- Criando configurações para a direção da frota
- Verificando se um alienígena alcançou a borda
- Fazendo a frota descer e mudar de direção
- Disparando contra os alienígenas
- Detectando colisões de projéteis
- Criando projéteis maiores para testes
- Repopulando a frota
- Criando projéteis mais rápidos
- Refatorando _update_bullets()
- Encerrando o jogo
- Detectando colisões entre espaçonaves e alienígenas
- Respondendo à colisões entre espaçonaves e alienígenas
- Alienígenas que alcançam a parte inferior da tela
- Game Over!
- Identificando quais partes do jogo devem ser executadas
- Recapitulando
- Capítulo 14 ■ Pontuação
- Adicionando o botão Play
- Criando uma classe Button
- Desenhando o botão na tela
- Iniciando o jogo
- Reiniciando o jogo
- Desativando o botão Play
- Ocultando o cursor do mouse
- Passando de nível
- Modificando as configurações de velocidade
- Redefinindo a velocidade
- Pontuação
- Exibindo a pontuação
- Criando um scoreboard
- Atualizando a pontuação conforme os alienígenas são abatidos
- Redefinindo a pontuação
- Assegurando que todos os ataques sejam pontuados
- Aumentando os valores dos pontos
- Arredondando a pontuação
- Pontuações máximas
- Exibindo o nível
- Exibindo a quantidade de espaçonaves
- Recapitulando
- Capítulo 15 ■ Gerando dados
- Instalando a Matplotlib
- Plotando um simples gráfico de linhas
- Mudando o tipo de rótulo e a espessura da linha
- Corrigindo o gráfico
- Usando estilos built-in
- Plotando e estilizando pontos individuais com o scatter()
- Plotando uma série de pontos com scatter()
- Calculando automaticamente os dados
- Personalizando a marcação de escala dos rótulos
- Definindo cores personalizadas
- Usando um colormap
- Salvando automaticamente seus gráficos
- Passeios aleatórios
- Criando a classe RandomWalk
- Escolhendo direções
- Plotando o passeio aleatório
- Gerando múltiplos passeios aleatórios
- Estilizando o passeio
- Lançando dados com o Plotly
- Instalando o Plotly
- Criando a classe Die
- Lançando o dado
- Analisando os resultados
- Criando um histograma
- Personalizando o o gráfico
- Lançando dois dados
- Mais personalizações
- Lançando dados com tamanhos diferentes
- Salvando os gráficos
- Recapitulando
- Capítulo 16 ■ Fazendo download dos dados
- Formato de arquivo CSV
- Parseamento dos cabeçalhos dos arquivos CSV
- Exibindo os cabeçalhos e suas posições
- Extraindo e lendo os dados
- Plotando dados em um gráfico de temperatura
- Módulo datetime
- Plotando datas
- Plotando um período de tempo maior
- Plotando uma segunda série de dados
- Sombreando uma área no gráfico
- Verificação de erros
- Fazendo o download de seus próprios dados
- Mapeando conjuntos de dados globais: Formato GeoJSON
- Fazendo o download dos dados de terremotos
- Examinando Dados GeoJSON
- Criando uma lista de todos os terremotos
- Extraindo magnitudes
- Extraindo os dados de localização
- Criando um mapa-múndi
- Representando magnitudes
- Personalizando as cores das marcações
- Outras escalas de cores
- Adicionando texto flutuante
- Recapitulando
- Capítulo 17 ■ Trabalhando com APIs
- Usando uma API
- Git e GitHub
- Requisitando dados com uma chamada de API
- Instalando o pacote Requests
- Processando uma resposta de API
- Trabalhando com o dicionário de resposta
- Resumindo os repositórios mais importantes
- Monitoramento os limites da taxa de requisições da API
- Visualizando repositórios com o Plotly
- Estilizando o gráfico
- Adicionando tooltips personalizadas
- Adicionando links clicáveis
- Personalizando as cores das marcações
- Mais sobre o Plotly e a API do GitHub
- API do Hacker News
- Recapitulando
- Capítulo 18 ■ Primeiros passos com o Django
- Criando um projeto
- Escrevendo uma especificação
- Criando um ambiente virtual
- Ativando o ambiente virtual
- Instalando o Django
- Criando um projeto no Django
- Criando o banco de dados
- Visualizando o projeto
- Iniciando uma aplicação
- Definindo modelos
- Ativando modelos
- Site admin do Django
- Definindo o modelo Entry
- Migrando o modelo Entry
- Registrando o modelo Entry no site admin
- Shell do Django
- Criando páginas: a página inicial do Registro de Aprendizagem
- Mapeando um URL
- Escrevendo uma view
- Escrevendo um template
- Criando páginas adicionais
- Herança de template
- Página de tópicos
- Páginas com tópicos individuais
- Recapitulando
- Capítulo 19 ■ Contas de usuário
- Permitindo que os usuários forneçam dados
- Adicionando novos tópicos
- Adicionando novas entradas
- Editando as entradas
- Configurando contas de usuário
- Aplicação accounts
- Página de login
- Fazendo logout
- Página de cadastro
- Permitindo que os usuários sejam proprietários de seus dados
- Restringindo acesso com @login_required
- Vinculando dados a determinados usuários
- Restringindo o acesso de tópicos a usuários adequados
- Protegendo os tópicos de um usuário
- Protegendo a página edit_entry
- Associando tópicos novos ao usuário atual
- Recapitulando
- Capítulo 20 ■ Estilizando e fazendo o deploy de uma aplicação
- Estilizando o Registro de Aprendizagem
- Aplicação django-bootstrap5
- Bootstrap para estilizar Registro de Aprendizagem
- Modificando base html
- Estilizando a página inicial com um Jumbotron
- Estilizando a página de login
- Estilizando a página de tópicos
- Estilizando as entradas na página de tópico
- Fazendo o deploy do projeto Registro de Aprendizagem
- Como criar uma conta no Platform sh
- Instalando a CLI do Platform sh
- Instalando platformshconfig
- Criando um arquivo requirements txt
- Requisitos adicionais de deploy
- Adicionando arquivos de configuração
- Modificando settings py para Platform sh
- Usando o Git para rastrear os arquivos do projeto
- Criando um projeto no Platform sh
- Fazendo o push para o Platform sh
- Visualizando o projeto ativo
- Refinando a implantação do Platform sh
- Criando páginas de erro personalizadas
- Desenvolvimento contínuo
- Excluindo um projeto no Platform sh
- Recapitulando
- Apêndice A ■ Instalação e solução de problemas
- Python no Windows
- Usando py em vez de python
- Executando novamente o instalador
- Python no macOS
- Instalando sem querer a versão da Apple do Python
- Python 2 em versões mais antigas do macOS
- Python no Linux
- Usando a instalação padrão do Python
- Instalando a versão mais recente do Python
- Verificando qual versão do Python você está usando
- Palavras reservadas e funções built-in do Python
- Palavras reservadas do Python
- Funções built-on do Python
- Apêndice B ■ Editores de texto e IDEs
- Programando de maneira eficiente com o VS Code
- Configurando o VS Code
- Atalhos do VS Code
- Outros editores de texto e IDEs
- IDLE
- Geany
- Sublime Text
- Emacs and Vim
- PyCharm
- Jupyter Notebooks
- Apêndice C ■ Obtendo ajuda
- Primeiros passos
- Tente outra vez
- Faça uma pausa
- Consulte os recursos deste livro
- Pesquisando online
- Stack Overflow
- Documentação oficial do Python
- Documentação oficial da biblioteca
- r/learnpython
- Postagens em blogs
- Discord
- Slack
- Apêndice D ■ Usando o Git para controle de versões
- Instalando o Git
- Configurando o Git
- Criando um projeto
- Ignorando arquivos
- Inicializando um repositório
- Verificando o status
- Adicionando arquivos ao repositório
- Fazendo um commit
- Verificando o log
- Segundo commit
- Revertendo alterações
- Check out de commits anteriores
- Excluindo o repositório
- Apêndice E ■ Solução de problemas para deploy
- Entendendo os deploys
- Solução de problemas básicos
- Siga as sugestões na tela
- Leia a saída do log
- Solução de problemas específicos de sistema operacional
- Deploy a partir do Windows
- Deploy a partir do macOS
- Deploy a partir do Linux
- Outras abordagens de deploy
- Índice remissivo
Livros relacionados
Opinião dos leitores
ROGERIO S C R
Excelente livro.
Adan D
Livro excelente!! Boa didática.
Angel A G M
Livro introdutório, porém, abrange um leque bem grande. Excelente para iniciantes.
Gunter C K
O livro é ótimo! EU Já havia comprado a segunda edição e agora comprei a terceira edição.






