Envio ao correio dia 24/02, devido ao Carnaval.

Python Escreva seus primeiros programas

Felipe Cruz

*Você terá acesso às futuras atualizações do livro.

Capa

Python: Escreva seus primeiros programas

Prefácio

Python é uma linguagem de programação que vem sendo empregada na construção de soluções para os mais diversos fins ─ educacionais, comerciais e científicos ─ e plataformas ─ web, desktop e, mais recentemente, móvel. É uma linguagem de fácil aprendizado, expressiva, concisa e muito produtiva; por isso, sua adoção tem crescido bastante nos últimos anos pelos mais variados perfis de profissionais no meio científico e acadêmico, tanto para desenvolvimento de ferramentas quanto para ensino de algoritmos e introdução à programação.

É uma linguagem de uso gratuito e de código-fonte aberto, compatível com os principais sistemas operacionais, como: Linux, OSX, Windows, BSDs etc. Ela conta com uma vasta biblioteca padrão e documentação que possibilitam que muitas coisas sejam feitas sem dependências adicionais.

Apesar de ser simples de aprender, Python é uma linguagem bastante poderosa e flexível. Essa combinação resulta em um rico ecossistema que melhora a produtividade dos desenvolvedores. Isso tudo torna a decisão de aprender Python importantíssima, pois muitos horizontes abrem-se quando se domina uma linguagem com ecossistema tão poderoso quanto o dela.

Se você está lendo este livro, possivelmente se interessou por Python em algum momento. Então, espero que ele possa contribuir, de alguma forma, com o seu aprendizado. O livro apresenta a linguagem de uma forma contextualizada e, por isso, ao longo dele, vamos criar um aplicativo para analisar dados públicos do Governo Federal. A ideia é apresentar motivações práticas, para depois demonstrar os recursos da linguagem que nos permitem tratar a motivação inicial.

Este livro está dividido em duas partes. A primeira foca nos aspectos fundamentais de Python, muitos dos quais já são conhecidos por quem já tem experiência com outras linguagens de programação. Já na segunda, passaremos a olhar características mais específicas da linguagem que, embora possam não ser exclusivas, são marcantes e devem ser tratadas com mais cuidado.

 

Por que Python 3?

O ano de 2014 foi um ano chave na adoção de Python3, por grande parte da comunidade. Muitos projetos relevantes foram portados ou lançaram versões compatíveis nesse ano. A família 3.4 tem maior aceitação que as anteriores da versão 3 e, inclusive, foi adotada como versão padrão em alguns sistemas operacionais. Python 3 nunca chamou tanta atenção como agora, então nada mais justo que um livro o tenha como assunto base. 

Nosso objetivo é apresentar os recursos básicos da linguagem, ideias e conceitos centrais construindo um aplicativo simples de leitura e manipulação de dados.

O livro é conceitual e prático ao mesmo tempo, para que o aprendizado seja mais profundo sem ser chato e difícil de entender. Livros extremamente práticos podem, muitas vezes, pular conceitos e ideias centrais do assunto abordado, ao ponto que textos apenas conceituais podem ficar cansativos e teóricos demais. 

Assim, o propósito é fazer com que você entenda melhor o universo Python, ao mesmo tempo em que aprende a usar na prática os principais recursos da linguagem.

 

Público-alvo

Este é um livro para iniciantes em programação ou desenvolvedores avançados com pouca experiência em Python. Se você for um iniciante, leia-o com calma para não acumular dúvidas ao longo do aprendizado. Em termos de complexidade, a maioria dos exemplos é bem simples e foca em passar para o leitor como usar os recursos disponíveis da melhor forma. Em termos conceituais, todas as explicações buscam ser completas para não exigir consulta a fontes externas. 

Caso você já tenha alguma experiência em programação, mas não conheça Python, o livro contribui para que você rapidamente descubra como implementar nessa linguagem coisas que são comuns em outras. Além disso, os capítulos abordam aspectos bem específicos, com explicações conceituais e exemplos práticos.

Aqui explico como as coisas funcionam no universo Python e apresento um pouco da visão pythônica para o leitor. Até mesmo as partes mais triviais podem conter insights importantes sobre o comportamento da linguagem ou decisões de design adotadas.

Os pedaços de código apresentados serão autocontidos e permitirão ao leitor modificar e obter resultados diferentes. Todos os códigos são explicados, muitas vezes linha a linha, para que você entenda claramente o objetivo e a função de cada parte.

 

Sumário

  • Parte 1 – Seus primeiros passos com o Python
  • 1 Iniciando com Python
    • 1.1 A linguagem Python
    • 1.2 De Python 2 para Python 3
    • 1.3 Diversos interpretadores e mesma linguagem
    • 1.4 Preparando o ambiente
    • 1.5 Primeiro passo: abra o interpretador
    • 1.6 Primeiras explorações
    • 1.7 Próximos passos
  • 2 Aprendendo Python na prática: números e strings
    • 2.1 Números
    • 2.2 Como manipular texto em Python
    • 2.3 Criando e manipulando texto: strings
    • 2.4 Como Python representa strings internamente?
    • 2.5 Conclusão
  • 3 Manipulações básicas
    • 3.1 Uma calculadora: o exemplo revisado mais comum
    • 3.2 Pegando dados no terminal
    • 3.3 Comparações: maior, menor, igual e outras
    • 3.4 Condicionais: if, elif & else
    • 3.5 Operadores lógicos
    • 3.6 Loops com while
    • 3.7 Primeira estrutura de dados: lista
    • 3.8 Loop pythônico com for e listas
    • 3.9 Percorrendo intervalos de zero até n com range()
    • 3.10 Enumerando coleções com for e função enumerate
    • 3.11 Declarando funções: comando def
    • 3.12 Valores padronizados de argumentos
    • 3.13 Parâmetros nomeados
    • 3.14 Recebendo um número arbitrário de argumentos: packing & unpacking
    • 3.15 Usando código já pronto: importando módulos
    • 3.16 Conclusão
  • 4 Primeiro programa: download de dados da Copa 2014
    • 4.1 Criando uma função para download na web
    • 4.2 Primeiro programa completo
    • 4.3 Definindo funções main
    • 4.4 Realizando o download
    • 4.5 Mais do básico: extraindo arquivos de dados e metadados
    • 4.6 Conclusão
  • 5 Estruturas de dados
    • 5.1 Montando um modelo conceitual usando estruturas de dados
    • 5.2 Dicionários: fundação da linguagem
    • 5.3 Montando o dicionário de metadados
    • 5.4 Adicionando e removendo elementos em uma lista
    • 5.5 Iterando dicionários: vendo valores e chaves
    • 5.6 Tuplas: sequências imutáveis
    • 5.7 Explorando os dados que coletamos
    • 5.8 Exemplo final usando estruturas de dados para explorar os metadados
    • 5.9 Estruturas de dados são importantes?
    • 5.10 Conclusão
  • 6 Classes e objetos pythônicos
    • 6.1 Expressando o domínio em classes
    • 6.2 Definindo classes: primeiro passo
    • 6.3 Criando objetos: métodos construtores
    • 6.4 Classes documentadas: docstrings
    • 6.5 Métodos: adicionando comportamentos ao objeto
    • 6.6 Herança simples em Python
    • 6.7 Atributos de classes: compartilhados entre todas instâncias
    • 6.8 Métodos estáticos e de classe: usando mais as classes
    • 6.9 Encapsulamento pythônico com a função property
    • 6.10 Herança múltipla: herdando de várias classes
    • 6.11 O que é DuckTyping?
    • 6.12 Conclusão
  • 7 Tratando erros e exceções: tornando o código mais robusto
    • 7.1 Escreveu errado? Erros de sintaxe
    • 7.2 Como tornar o código mais robusto?
    • 7.3 Tratando várias possíveis exceções em um mesmo bloco
    • 7.4 Exceções e Python 3.3+
    • 7.5 Executando código se nenhuma exceção for levantada
    • 7.6 Ações de limpeza
    • 7.7 Comando raise: levantando exceções
    • 7.8 Exemplo de um tratamento de erros mais robusto em Python
    • 7.9 Conclusão
  • 8 Testes em Python: uma prática saudável
    • 8.1 Criando o primeiro TestCase
    • 8.2 Rodando um arquivo com testes
    • 8.3 API de linha de comando para testes
    • 8.4 API da biblioteca unittest
    • 8.5 Customizando saída para HTML
    • 8.6 Implementando um TestRunner customizado
    • 8.7 Testando erros: quando o código joga exceções
    • 8.8 Inicialização e finalização: setUp e tearDown
    • 8.9 Ações de limpeza nos testes unitários: cleanup actions
    • 8.10 Mocks/Stubs: outra abordagem de testes unitários
    • 8.11 Conclusão
  • 9 Módulos e pacotes: organizando e distribuindo código
    • 9.1 Módulos em Python: primeiro passo
    • 9.2 O que acontece quando importamos um módulo?
    • 9.3 Pacotes: agrupando módulos
    • 9.4 Definindo nomes para exportação e escopo de exportação
    • 9.5 Conclusão
  • Parte 2 – Mundo Python – Além dos recursos fundamentais
  • 10 Trabalhando com arquivos
    • 10.1 Importando dados para as tabelas
    • 10.2 Lendo arquivos
    • 10.3 Fechando arquivos
    • 10.4 Abrindo arquivos com o comando with
    • 10.5 Escrevendo em arquivos
    • 10.6 Navegação avançada com seek()
    • 10.7 Conclusão
  • 11 Um passeio por alguns tipos definidos na biblioteca padrão
    • 11.1 Dinheiro e decimais com precisão arbitrária
    • 11.2 Datas e tempo: módulo datetime
    • 11.3 Conjuntos sem repetição: set()
    • 11.4 Tuplas nomeadas: tuplas que parecem objetos com atributos
    • 11.5 Conclusão
  • 12 Conceitos e padrões da linguagem
    • 12.1 Iteráveis e por que o comando for funciona?
    • 12.2 Objetos chamáveis: callables()
    • 12.3 Protocolos abstratos: como comportamentos padronizados funcionam
    • 12.4 Closures em Python
    • 12.5 Conclusão
  • 13 Elementos com sintaxe específica
    • 13.1 List comprehensions
    • 13.2 Dicts comprehensions
    • 13.3 Decoradores de função: @decorators
    • 13.4 Funções anônimas: lambdas
    • 13.5 Funções geradoras
    • 13.6 Palavra reservada nonlocal
    • 13.7 Conclusão
  • 14 Explorando a flexibilidade do modelo de objetos
    • 14.1 Construtures: criando objetos
    • 14.2 Representação textual de objetos: função print(), str() e repr()
    • 14.3 Comparando igualdade de objetos
    • 14.4 Outros tipos de comparações binárias
    • 14.5 Dicionário interno de atributos
    • 14.6 Interceptando o acesso a atributos
    • 14.7 Protocolos e métodos especiais
    • 14.8 Protocolo de container
    • 14.9 Protocolo de containers com tamanho definido
    • 14.10 Protocolo de iteráveis e iteradores
    • 14.11 Protocolo de sequências
    • 14.12 Protocolo de mapas
    • 14.13 Protocolos numéricos
    • 14.14 O que mais ver sobre classes e modelo de objetos?
    • 14.15 Conclusão
  • 15 Desenvolvimento profissional
    • 15.1 Pacotes instaláveis e seu repositório central
    • 15.2 Dependências e gerenciador de pacotes
    • 15.3 Descrevendo um pacote instalável com setuptools
    • 15.4 Instalando pacotes com pip
    • 15.5 Ambientes virtuais com venv
    • 15.6 Resumo
  • 16 Considerações finais
    • 16.1 Nunca pare!
    • 16.2 Aprendi tudo?
    • 16.3 Comunidade Python
    • 16.4 Para onde ir?
  • 17 Referências bibliográficas

Dados do produto

Número de páginas:
269
ISBN:
978-85-5519-091-9
Data publicação:
09/2015

Compartilhe!

Compartilhe no Facebook Compartilhe no Twitter

*Você terá acesso às futuras atualizações do livro.