Python na UFSCar - Araras

Ontem fui conhecer o grupo de estudo de Python dos alunos da Universidade de São Carlos - Araras graças ao convite do amigo Renato que ajudou a montar o grupo de estudo no início desse ano.

Alunos fazendo exercício envolvendo I/O em Python.

Alunos fazendo exercício envolvendo I/O em Python.

Durante a volta para Campinas, compartilhei com o Renato meu primeiro contato com Python e as coisas que eu gostaria de ter encontrado naquela época. Resolvi escrever este post para compartilhar essa lista.

Universo Python

Python é o nome de uma linguagem de programação e também da implementações mantida pela The Python Software Foundation cujo nome oficial é CPython. Existem outras implementações de Python, como o PyPy, mas a grande maioria dos usuários usa o CPython.

Programadores Python trocam no PyPI, the Python Package Index, pacotes que escreveram para alguma tarefa pois acreditam que tais pacotes possam resolver o problema de outras pessoas.

Mas o que é um pacote? Pacotes são como apps, eles estendem as funcionalidades original do Python da mesma forma como apps estendem as funcionalidades do seu smartphone. E o PyPI é o equivalente à Google Play para Android e à App Store para iOS mas para Python.

Alguns pacotes famosos na área de computação científica são

Como que instalo?

Instale Anaconda, que é Python com vários pacotes científicos, pois isso vai facilitar muito a sua vida.

Escolha a versão 3.X de Python que é a mais recente e possui coisas bem bacanas não presentes na versão 2.X.

Onde vou programar?

Python é apenas uma linguagem de programação (e um interpretador) de forma que você também precisará de um editor de texto plano com

para programar.

Dependendo do editor de texto que você utilizar ele pode não ter

  • syntax highlighting, i.e. colorir seu código de forma especial para facilitar a leitura;
  • brace matching, i.e. identificar o par de um parênteses, colchete ou chaves;
  • auto indentation, i.e. o espaço em branco no início da linha que em Python é muito importante;
  • auto completion, i.e. sugerir a palavra que você quer digitar;
  • compiler/run integration, i.e. executar seu código a um click.

Um editor de texto que possui todas essas funcionalidades e mais algumas é chamado de ambiente de desenvolvimento integrado ou IDE. Existem várias IDEs para Python mas se você for trabalhar com programação científica você deve testar o Spyder.

Imagem da tela do Spyder.

Imagem da tela do Spyder.

Misturando texto e códigos

Se você quer misturar texto e código, por exemplo para fazer um tutorial ou como notas de estudo, você deve utilizar o Jupyter Notebook (antigo IPython Notebook).

Imagem da tela do Jupyter Notebook

Imagem da tela do Jupyter Notebook.

Se você desejar compartilhar seus Jupyter Notebook você pode utilizar o nbviewer que também é uma ótima fonte para você descobrir coisas bacanas que você pode fazer com Python.

Preciso de uma apostila

A internet é um prato cheio de tutoriais, apostilas, cursos, ... de programação com Python. Se seu maior interesse for com programação científica com Python e você nunca tiver programado minha sugestão é você começar com Data analysis and visualization in Python da Data Carpentry pois com ele você estará pronto para programar o que você deseja em pouco tempo.

Se você já tiver um pouco de prática com programação minha sugestão é começar com Programming with Python da Software Carpentry.

Preciso de um manual para meu grupo de estudo

Depois de anos à frente do The Hacker Within, Kathryn D. Huff e Anthony M. Scopatz reuniram em Effective Computation in Physics todas as coisas que alguém que vai trabalhar com programação científica deveria saber.

O livro é um ótimo guia para um grupo de estudos de programação em Python. E Kathryn e Anthony ficaram extremamente felizes se você inaugurar um grupo do The Hacker Within na sua universidade tendo como primeira atividade estudar o livro que escreveram.

E tenho uma pergunta!

Existe vários canais que você pode utilizar para tirar dúvidas de programação. Sempre comece procurando no StackOverflow e caso não encontre tente o GitHub ou uma lista de email.

Além disso, fique a vontade para me contactar via email.