Python Escreva seus primeiros programas
Felipe CruzPython: 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