Despedida
E assim chegamos ao fim deste curso introdutório de Python.
O percurso foi breve, bem mais curto que deveria ter sido, mas nada é perfeito. Peço desculpas por ter faltado algumas aulas, devido a graves problemas familiares. Espero que este blog compense, inda que parcialmente, estas ausências. Lutaremos á sombra, que mais fazer?
Nossa intenção original era que este curso fosse a parte introdutória, com fundamentos da linguagem.
A parte seguinte iria incluir tópicos mais interessantes mas que requerem já algum domínio da linguagem Python:
- Web scrapping (prá valer, não um mero download de arquivos!)
- Data analysis, data frames, Panda, gráficos
- Análise estatística, bayesiana ou não.
- Machine learning, rêdes neurais, support vector machines, kernels, PCA, K-means, knn, SOM, etc.
O futuro dirá se vai haver esta segunda parte, mas mesmo que não aconteça o que vocês aprenderam aqui já lhes será muito útil. Acreditem, eu ví.
Aos colegas que acompanharam fielmente até o final, meus cumprimentos. Por favor não parem de programar em Python. Como eu lhes disse, programação tem muito de prática e a falta desta "enferruja" a gente mais depressa que imaginamos.
Sua recompensa será o domínio de uma linguagem moderna, provavelmente a que mais cresce no mundo em número de usuários.
Python é muito usado com Big Data e seu domínio e fluência vão lhes fazer muita diferença no futuro.
Um ultimo pedido, antes de partirmos: escrevam comentários sobre o que acharam do curso presencial e o que acharam deste blog. Criticas e elogios serão igualmente bem vindos.
al Khwarismi>> exit()
Usando regex no Python
Expressões regulares são uma ferramenta muito útil para manipular textos e muitas outras coisas em programação e processamento de dados.
Quase todas linguagens de programação oferecem algum tipo de suporte ao uso de expressões regulares sob contrôle da execução de um programa.
O Python, é claro, não é exceção. Um módulo poderoso chamado re exporta funções e objetos que dão amplo suporte a qualquer aplicação de expressões regulares.
Em essência expressões regulares são strings de símbolos com significados específicos e bem definidos que representam padrões de textos.
Construir uma expressão regular (regex) implica em descrever precisamente um determinado padrão que se deseja identificar num texto, usando os símbolos e a sintaxe das expressões regulares.
Nesta lição vamos assumir que o leitor já teve uma exposição prévia ao assunto expressões regulares.
Um curso específico de expressões regulares foi dado no NECI no primeiro semestre de 2016 e seu material pode ser baixado, conforme explicado nesta lição.
A lição está em notebook Jupyter e pode ser baixada aqui.
Uma versão HTML encontra-se na barra de Recursos ao lado.
Arquivos especiais - PDF e CSV
Arquivos no formato PDF são usados universalmente para artigos científicos e outros mais.
Uma razão para tanto é que o formato PDF (Portable Document Format) permite apresentar o documento com a mesma aparência não importando o computador, sistema operacional ou impressora usados.
Infelizmente isto tem um preço: o formato PDF é bastante complicado e é difícil implementar software para manipulá-lo.
Nesta lição vamos ver módulos Python para extrair texto de arquivos PDF.
O notebook Jupyter desta lição pode ser baixado aqui
Na segunda parte da lição veremos como manipular arquivos do tipo CSV (Comma Separated Values), um formato muito simplificado de dados para planilha.
Arquivos CSV são arquivos simples de tipo texto. Assim mesmo há varias razões para usar o módulo csv do Python para manipulá-los.
Para os exercícios você precisa baixar alguns arquivos extras e colocá-los no mesmo diretório onde ficar o notebook Jupyter desta lição:
Como sempre uma versão HTML da lição está na barra de Recursos.
Arquivos especiais - ZIP e pickle
Nesta lição vamos ver como manipular arquivos do tipo .zip.
Arquivos ZIP são containers, isto é, em vez de textos seu conteúdo são outros arquivos e/ou pastas com seus respectivos arquivos. Por esta razão na literatura arquivos ZIP são as vezes chamados de folders (pastas)
Mas a principal característica de arquivos ZIP é que os arquivos contidos neles estão comprimidos.
Isto significa que ao inserir um arquivo X num arquivo ZIP, algoritmos sofisticados removem redundâncias no conteúdo de X, reduzindo o seu tamanho sem perder a informação original deste conteúdo. O arquivo original incluido dentro de um arquivo ZIP tem tamanho menor! (fora alguns casos especiais)
Com isto ganha-se tanto em espaço de memória poupado quanto em tempo de transmissão ou cópia do arquivo "zipado" (ZIP), comparado com transmitir seu conteúdo original.
Ao extrair os arquivos contidos num arquivo ZIP algoritmos são aplicados de modo a reconstituir perfeitamente seus conteúdos originais.
Outro tipo de arquivo especial do Python são os arquivos .pickle.
Arquivos pickle são arquivos binários usados para armazenar objetos que estejam na memória de um programa Python em execução.
Para nós basta saber usar este tipo de arquivo para guardar as estruturas de dados que já estudamos aqui: list, set, tuple e dict.
Durante a execução de um programa Python podemos abrir um arquivo pickle, recuperar o seu conteúdo e sair usando a estrutura de dados correspondente do jeito como ela foi recuperada,.
O notebook Jupyter correspondente a esta lição pode ser baixado aqui
Uma versão HTML encontra-se na barra de Recursos.
Arquivos especiais - Excel
A partir desta lição vamos ver como manipular diversos tipos de arquivos especiais, todos de grande importância na prática.
Os tipos de arquivos que iremos ver incluem:
Todos eles ocorrem bastante na prática donde o interesse em saber manipulá-los.
Nosso primeiro tipo de arquivo especial será o tipo xlsx do poderoso Excel.
O Jupyter notebook desta lição pode ser baixado aqui
Uma versão HTML da lição está nos Recursos, ao lado.
Nota: Decidimos deixar o estudo de arquivos XML para a segunda parte deste curso, juntamente com HTML e web scrapping.
Lendo, escrevendo e organizando seus arquivos
Ler e escrever em arquivos é uma daquelas tarefas chatas mas absolutamente essenciais. Dificilmente você programa alguma tarefa que não envolva arquivos e sua manipulação.
Nesta lição vamos aprender e exercitar estas tarefas, corriqueiras mas importantes.
A lição está como sempre num notebook Jupyter, que pode ser baixado aqui: Lendo, escrevendo e organizando arquivos
Para seguir a lição será preciso criar um pequeno diretório exemplo chamado "lixo" e contendo tres arquivos que podem ser baixados tambem:
Este diretório "lixo" deverá estar no mesmo diretório onde voce colocar seu Jupyter notebook baixado.
Quem não conseguir baixar o notebook pode tentar repetir a lição usando a página HTML na barra de recursos.
Aula 6 - usando dicionários para comparar planilhas Excel
Nesta aula vimos:
- revisão breve de lists, sets, strings usando IDLE
- revisão de dictionaires e list comprehensions (listcomp)
No laboratório estudamos um exemplo de download de arquivos do site da Câmara dos Deputados e manipulação de planilhas Excel. Depois estudamos
um algoritmo para detetar diferenças entre planilhas de listagem de deputados e seus partidos.
O laboratório apresentado em notebook Jupyter pode ser baixado daqui.
Como sempre anexo na barra de Recursos uma versão HTML deste notebook, intitulado "listas de deputados e seus partidos".