Friday, May 20, 2016

Comandos do Python

Comandos

Neste notebook introduzimos os comandos básicos do Python.

O notebook pode ser baixado aqui.

Além de apresentar os comandos if for while break ilustramos resolvendo alguns dos exemplos da lista de exercícios 1.

A versão HTML do notebook está anexada em Recursos.

 

 

Thursday, May 19, 2016

Conjuntos, dicionários e mapeamentos

Ainda tipos de dados nativos

Coloquei no Dropbox mais um notebook Jupyter com texto sobre conjuntos (set), dicionários (dict) e um tópico mais avançado sobre "comprehensions" que é o equivalente em Python 3 do map, lambda em Python 2.

Este notebook pode ser baixado aqui.

Tambem coloquei aqui no blog uma página HTML cópia deste notebook, que pode ser vista nos Recursos na barra direita do blog.

Em Python o tipo de dados set modela a noção de conjunto, ou seja uma coleção de elementos quaisquer onde não existe ordem entre eles e todos são únicos (sem repetição de elementos).

O tipo de dados dict é extremamente útil. Dicionários são pares compostos por chave e valor. Encontrar um valor dada uma chave é uma operação muito rápida e eficiente. A operação reversa (e não unívoca) pode ser bem mais lenta.

Na prática usaremos dicionários frequentemente.





Comprehensions são uma forma de mapear listas, dicionários ou conjuntos em outros similares, aplicando alguma função em cada elemento.

Por exemplo, dada uma lista de números queremos um modo rápido de extrair todos os pares. Isto pode ser feito com um comando, um "list comprehension", da seguinte forma:

 L = [ 1, 2, 3, 4]
 Lpar = [x for x in L if x % 2 == 0]
Num certo sentido isto lembra SQL, não é mesmo?




Com isto cobrimos o básico de tipos de dados e passaremos adiante para comandos do Python.

Breve estaremos em condição de codificar e executar nossos algoritmos em Python.



Wednesday, May 18, 2016

Atraso no incio do curso

Atrasos no início do curso

Devido a fatores diversos o início do curso tem sido postergado. Para aqueles que mostram interesse maior sugiro que tentem começar em casa mesmo, usem este blog como guia e sintam-se a vontade para me consultar por email ou até comentários aqui no blog mesmo.

Tipos de dados

Tipos de dados do Python

Python é uma linguagem orientada a objetos e todos termos num programa representam objetos. Objetos são instâncias do que se chama tipos de dados.

Os tipos de dados mais elementares na linguagem incluem caracteres, números e variáveis.

Outros tipos de dados são pré definidos no interpretador Python e utilíssimos, usamos todo dia. Estes são:
  • strings
  • list
  • tuple
  • set
  • dict (dicionário)
Vamos examinar os três primeiros agora e os dois restantes em post futuro. Coloquei um notebook aqui para vocês baixarem e estudarem. 

Como de hábito anexei a versão HTML na lista de Recursos.




Monday, May 16, 2016

Conceitos básicos do Python

Python: caracteres, números e variáveis

Coloquei no Dropbox um primeiro Jupyter notebook introduzindo caracteres, variáveis e alguns outros conceitos básicos do Python. 

A página pode ser baixada aqui.  

Releia as instruções sobre como baixar os notebooks e como usá-los dadas em posts anteriores. 

Claro está que você já deve ter baixado e instalado com sucesso o Anaconda 3 na sua máquina.

Para as pessoas com dificuldade para baixar este notebook ou executá-lo vou colocar nos Recursos uma versão HTML do notebook. Infelizmente ela é só isto, uma página HTML estática.

Wednesday, May 11, 2016

Jupyter notebook

Jupyter notebook


Jupyter notebooks são páginas visíveis num browser (Firefox, etc) que permitem misturar texto, código executável em Python, imagens, figuras etc.

Este tipo de página é um recurso que permite estudo interativo, onde o leitor pode executar e modificar código e ver os resultados sem sair da página que está lendo.

Neste curso faremos a experiência de usar estes notebooks para nossos textos sobre Python.

À propósito, o nome da aplicação que ativa estes notebooks vem das três linguagens de programação suportadas pelo engine:

Jupyter = Julia + Python + R

Vejamos se o Jupyter esta instalado em seu notebook. Se você baixou Anaconda 3 com sucesso então o Jupyter deve estar instalado. Em todo caso o teste é simples:
  • abra uma janela de comando (Power Shell ou cmd.exe) e digite:
  •  >>jupyter notebook
  • após algum tempo deveriam aparecer uma série de mensagens do systema:
Microsoft Windows [Version 10.0.10586]
(c) 2015 Microsoft Corporation. All rights reserved.

C:\Users\ps>jupyter notebook
[I 20:36:12.075 NotebookApp] Serving notebooks from local directory: C:\Users\ps
[I 20:36:12.079 NotebookApp] 0 active kernels
[I 20:36:12.080 NotebookApp] The IPython Notebook is running at: http://localhost:8888/
[I 20:36:12.083 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[I 20:38:26.353 NotebookApp] Kernel started: 1cd69f62-8ce4-42e4-b51a-0306813efc3f
 Em seguida o seu browser é ativado e nele aparece um tab intitulado Desktop/jupyter, com uma página tendo este logo no cabeçalho:

 
 Se tudo isto ocorrer então parabens, você tem o Jupyter instalado e ativo. Em todo caso voce pode obter mais informação aqui.

Explicaremos no laboratório como usar um notebook destes (é simples). Se você não presenciar existem montes de referências na internet. Aqui tem breve ajuda no site oficial do projeto Jupyter. Existem videos tutoriais no YouTube, como este aqui. Uma referência bem completa que vale a pena ver está aqui.





Vejamos como usar o Jupyter em nossos estudos de Python. Preparei uma página jupyter notebook com mini-aula de web scraping. Faça de conta que é página do curso e treine como usá-la. 

  1. O primeiro passo é baixar o notebook usando o link dado aqui.
  2.  Note que é baixada uma página cheia de códigos e html. Isto é normal.
  3. Use o menu em seu browser para salvar esta página. No Firefox é preciso ativar a barra de menu (botão direito, clique no topo, selecione Menu Bar).
  4. Clicar File\Save Page As...\text files, um nome para a página e o sufixo ".ipynb" (quer dizer "interactive python notebook")
  5. No diretório onde seu browser salvou a página deve haver um arquivo "nome.ipynb".
  6.  Ligue o jupyter como explicado acima e na página que é aberta você pode navegar até o diretório onde salvou o arquivo "nome.ipynb". Clique no arquivo e o notebook jupyter deverá ser aberto no browser.
  7.  Dai em diante estude o conteúdo, execute os códigos e script Python e divirta-se.
  8. À propósito a página que você baixou tem o título

    Reverse engineering a dynamic web page



Uma vez tendo aberto um notebook em seu browser observe o layout do mesmo. No topo você tem um toolbar com menus genéricos para salvar o notebook, editar, help, etc. O menu Cell tem um submenu All Output que por sua vez tem um submenu Clear. Este é útil para limpar e resetar outputs de todas execuções de scripts e comandos Python armazenados no notebook. Recomendo que use-o sempre que abrir um notebook pela primeira vez.

Um notebook é composto essencialmente de dois tipos de células (cells): code cells e markdown cells.

Markdown cells contém texto. O nome markdown vem do tipo de formatação usada para escrever estes textos. Markdown é uma espécie de HTML super simplificado que permite humanos escreverem textos padrão html naturalmente e sem dor. Você pode encontrar mais informação sobre Mardown aqui.

Code cells contém código Python que pode se r executado. Para executar o código em uma célula code clique na mesma e digite "shift + enter".Isto é assim porque o código na célula pode ter muitas linhas e o "enter" simples é reservado para dar uma nova linha no código.

As células de código tem sempre um prefixo In[d] onde d é um número sequencial. Isto simboliza "input", ou seja código que você alimenta no interpretador Python. Assim que o código executar, aparece abaixo a saida do interpretador numa célula texto markdown, prefixada com Out[d] 

Tuesday, May 10, 2016

Inicio da trilha

A trilha começa aqui

Interpretador Python

Você deve ter lido o post sobre Material recomendado. Portanto faça o que lá é sugerido e instale já o pacote Anaconda 3 em seu notebook ou desktop.

É conveniente ter um atalho no desktop para a interface de comando do Windows, "cmd.exe". Melhor ainda é um atalho para a interface de comando avançada, Windows Power Shell.

Sugiro que instale o anaconda diretamente em C:\Anaconda3 Após instalar verifique a documentação para verificar se foi tudo instalado corretamente.

Um teste simples é abrir a interface de comando e digitar:

>Python

Deve aparecer algo como:

PS C:\WINDOWS\system32> python
Python 3.5.1 |Anaconda 2.4.1 (64-bit)| (default, Feb 16 2016, 09:49:46) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>


Digite o seguinte comando e observe a resposta:

>>> print('hello world')
hello world
>>>


Isto demonstra que o interpretador Python foi instalado corretamente e está vivo.

Atalhos no desktop

Uma das primeiras coisas a fazer à seguir é colocar no seu desktop um atalho para o IDLE. O IDLE é uma interface simples para o interpretador Python que você vai usar muito. 

Para criar este atalho navegue para C:\Anaconda3\libs\idlelib e procure um arquivo idle.bat Crie um atalho (botão direito do mouse, criar atalho), mova o atalho para o desktop e renomeie como IDLE (ou como preferir).

OK. 


Precisaremos ainda deixar atalho para o jupyter notebook, mas isto fica para outro post.

Outros programas e pacotes do Python

Outros programas que serão úteis no futuro  incluem o Notepad++ e o XmlNotepad. Se possivel baixe-os e deixe-os instalados. 

O Python conquistou sua popularidade graças às muitas bibliotecas de programas ("modulos", modules) open source escritos por programadores voluntários da academia e da industria. Este repositórios permitem o download gratuito de  ferramentas de software para uso da comunidade.

Vamos precisar de diversos pacotes de módulos, conforme listados na referência Automate the Boring Stuff With Python.

Para baixar tais pacotes e fazer sua instalação existe um programa chamado "pip" que já foi instalado com o Anaconda. Existem outros programas de função similar mas usaremos o pip de preferência.

A utilização é simples: abra a janela de comandos do Power Shell e digite

>pip install nome_do_pacote_desejado

Faça já o teste com estes pacotes, todos usados em exemplos do livro acima:


  • pip install requests
  • pip install beautifulsoup4
  • pip install selenium
  • pip install pprint
  • pip install csv
  • pip install re

Muitos outros pacotes de módulos serão baixados mais adiante.