Como realçar a sintaxe do seu código Python na shell

bpython syntax highlight

Quando você está com o terminal aberto e rodando a shell do Python, é possível realizar muitos procedimentos com interpretação imediata do seu código.
bpython python 3 shell interface
Infelizmente, a shell padrão não tem o recurso de realce da sintaxe, encontrado nas IDEs ou nos editores de texto voltados para desenvolvedores.
A shell utiliza o mesmo esquema de cores padrão do seu terminal — seja no Mac ou no Linux.

Que tal usar uma shell diferente, então?

Neste artigo, vou apresentar o bpython, um software de interface para o interpretador interativo do Python, presente no seu sistema.
O aplicativo está disponível para sistemas operacionais, como o MacOS, Windows e Linux.

Os recursos do bpython

A ideia, de acordo com a documentação do programa, é dar ao usuário todos os recursos presentes na shell do Python e mais alguns benefícios encontrados nas IDEs ou editores para programação mais modernos.
Tudo isso sem abrir mão da leveza.

Veja alguns recursos do aplicativo:

  1. Realce de sintaxe, à medida em que você digita seus comandos. Igual ao seu editor de textos preferido.
  2. Auto complementação de comandos, funções e variáveis, com exibição de uma caixa de sugestões à medida em que você digita. Você pode usar a tecla Tab para aceitar uma sugestão que corresponda ao que você deseja digitar.
  3. Lista de parâmetros sensível ao contexto da função chamada na linha de comando.
    Ele faz uso do módulo inspect e da documentação do pydoc.
  4. Função Rewind ou rebobinamento. Tende a exibir sugestão de código que já foi usado.
    Em geral, é mais útil para definir classes e funções.

Como instalar o bpython

O método “universal” para instalar o aplicativo é através do PIP:


pip install bpython

Usuários Debian ou Ubuntu (GNU/Linux), podem fazer a instalação dos repositórios oficiais:


sudo apt install bpython

Se a sua distro Linux é baseada no Fedora, use o yum:


yum install bpython

Depois de instalado, é só executar:


bpython

Referẽncias

https://www.bpython-interpreter.org/downloads.html.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Junte-se a 48 outros assinantes

Como criar scripts Python

Usuários Linux podem criar scripts em, praticamente, qualquer linguagem de programação, para executar diretamente na shell, sem a necessidade de compilar previamente qualquer coisa.
Claro que há algumas regras ou requisitos a serem preenchidos — e vamos falar disso aqui.

Não é complicado.
Vou usar, como exemplo, um código bem simples (abaixo).
Use o seu editor de textos favorito para escrever:


nome = input("Qual é o seu nome? ")
print("Você se chama "+nome+"? Hah! Que nome engraçado!")

Grave o arquivo com qualquer nome.
No meu exemplo, gravei como “nome.py”.
A função da extensão, no Linux, é ajudar você a identificar visualmente os tipos de arquivos.
O Linux não precisa de extensões para isto. Portanto, ela é opcional.
Na linha de comando (CLI), rode o interpretador Python (versão 3 ou superior, neste caso) acompanhado do arquivo de código.


python3 nome.py

Qual é o seu nome? elias
Você se chama elias? Hah! Que nome engraçado!

Infelizmente, você não pode simplesmente executar o arquivo de script diretamente, do jeito que ele está.
Se o fizer, o sistema irá informar que você não tem permissão para executar este código:


./nome.py

bash: ./nome.py: Permissão negada

Para resolver o problema da permissão, use o comando chmod:


chmod +x nome.py 

Mas isto ainda não é o suficiente!
Agora, já é possível rodar o código… mas a shell do seu sistema não irá entender nada:


./nome.py 
./nome.py: linha 1: erro de sintaxe próximo ao token inesperado `('
./nome.py: linha 1: `nome = input("Qual é o seu nome? ")'

Ainda é necessário indicar, dentro do script, qual interpretador deve ser usado para executá-lo.
Na primeira linha insira o seguinte código:

#!/bin/python3

Esta linha se chama “shebang“.
Agora, já será possível rodar o programa, direto na CLI, sem precisar indicar mais nada:

./nome.py 
Qual é o seu nome? elias
Você se chama elias? Hah! Que nome engraçado!

Simples, não é?
Você gostaria de saber por que é necessário usar ‘ ./ ‘ antes do nome do programa?! Então leia este artigo.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Junte-se a 48 outros assinantes

Primeiros passos na shell do Python

É na shell do Python que você pode começar a explorar a sintaxe dos comandos da linguagem.
Também é possível obter ajuda sobre os comandos e depurar programinhas curtinhos.
Existe uma shell gráfica (GUI), chamada IDLE, que tem editor de textos, suporte a realce da sintaxe etc. — que será abordada melhor em outro post…
Abra a sua shell e faça algumas experiências:

python3

Como você pode ver, no exemplo abaixo, meu interpretador Python está na versão 3.x e roda em uma máquina Linux:

Python 3.5.3 (default, Jan 19 2017, 14:11:04) 
[GCC 6.3.0 20170118] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

Não se preocupe com o fato de eu usar Linux nos meus exemplos.
O interpretador Python é universal e funciona do mesmo jeito em qualquer plataforma.

Os caracteres “>>>” indicam o prompt da shell.
É nesta linha que podemos dar comandos para serem interpretados.
Veja alguns exemplos:

>>> 15 + 3
18

Experimente pedir ao Python para escrever alguma coisa:

>>> print("olá, mundo!")
olá, mundo!

O modo ajuda do Python

Obtenha ajuda sobre Python dentro da shell, com a função help():

help()

Note que o prompt, no modo de ajuda muda para “help>”, para ajudar a lembrar que você não está dentro do interpretador Python — mas dentro do modo de ajuda dele.
A partir deste prompt é possível digitar comandos ou outros elementos da linguagem, para obter mais informações sobre eles.

help> print

No exemplo acima pedi ajuda sobre a função print().
Como resposta, o módulo exibe um texto assim:

Help on built-in function print in module builtins:

print(...)
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
    
    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file:  a file-like object (stream); defaults to the current sys.stdout.
    sep:   string inserted between values, default a space.
    end:   string appended after the last value, default a newline.
    flush: whether to forcibly flush the stream.
(END)

Para sair, tecle “q”.
E, para sair do módulo de ajuda, rode o comando “quit”.
Você também pode obter ajuda rápida, com a função help, sobre comandos, funções, objetos, classes etc.
Por exemplo, para obter ajuda sobre a classe “list”, use o help assim:

help(list)

Neste caso, o assistente exibe o texto na tela.
Para sair do “modo help”, tecle “q” — para voltar ao prompt do Python.
Se você já usou um terminal Bash (no Linux), vai perceber que o “modo help” do Python funciona semelhante a uma man page.

Rode um script Python com o interpretador

Você pode rodar qualquer script a partir do interpretador, direto no terminal:

python meuscript.py

No Windows, é mais parecido com isto aqui:

c:\python31\python.exe meuscript.py

Desta forma, não é necessário abrir uma shell para executar varias linhas de comandos — uma vez que podem ser agrupadas em um arquivo de script.
Aí é que começa a “programação de verdade”.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Junte-se a 48 outros assinantes

Interpretadores online para Python

Estudantes de programação nem sempre têm à sua disposição todas as ferramentas necessárias para praticar seu aprendizado.

Por sorte, com uma conexão à Internet, é possível continuar as lições, mesmo usando o computador dos outros.

No site oficial da fundação Python Software Foundation é possível usar uma shell online, com uma versão atual do Python.

Para chegar lá, clique no link: https://www.python.org/shell/.
Há vários outros interpretadores e compiladores Python online.
Leia este artigo para conhecer outros:
https://elias.praciano.com/2016/12/6-compiladores-online-para-estudantes-de-programacao/.

Python Anywhere

O site Python Anywhere, que provê o console Python da PSF, também tem um: https://www.pythonanywhere.com/try-ipython/.

A shell online do SymPy também vale a tentativa: http://live.sympy.org/. Neste caso, a última vez em que visitei o site, eles usavam o interpretador da versão 2.7 da linguagem, sem opção para a série 3.x.

Code Skulptor

O site CodeSkulptor provê uma interface web simples, porém bem funcional.

Nele, você pode escrever seu código e conta com bibliotecas avançadas, como a pygame.

A ferramenta pode ser encontrada aqui: http://www.codeskulptor.org/

Um servidor virtual online também pode ser útil

Uma experiência mais completa, pode ser obtida com o https://termbox.io, que permite simular uma máquina com Linux (com várias opções de distribuições) e dentro desta máquina virtual, rodar o seu interpretador Python.

Infelizmente, o site estava fora do ar em algumas de minhas tentativas de acessar.

Você tem outra sugestão de interpretador ou shell online para Python?! Então, deixe sua sugestão nos comentários!

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Junte-se a 48 outros assinantes

Como usar o Python Shell

É na(o) shell do Python que você pode experimentar a linguagem como interpretada.
Na shell, você obtém a resposta imediata a cada um de seus comandos.
É o lugar perfeito para explorar a sintaxe da linguagem e obter ajuda interativa sobre cada comando e, ainda, “debugar” programas curtos.
Para quem está aprendendo, este é o playground ideal para testar novos conceitos, novas fórmulas e comandos — desde que você esteja se divertindo com o aprendizado, claro! 😉
A shell pode ser executada a partir de um terminal, com o comando ‘python’:

python

É comum as distribuições GNU/Linux incluírem a série 2.x e 3.x do Python. Neste caso, se quiser trabalhar com o Python 3, é necessário indicar isto explicitamente:

python3

Assim que ela começa a funcionar, exibe algumas informações bem básicas sobre si mesma (versão do interpretador Python, data atual do sistema, versão do compilador GNU C etc.):

Python 2.7.12 (default, Nov 19 2016, 06:48:10) 
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

Se você propuser um cálculo, na shell, ela irá retornar o resultado. Experimente:

>>> 3 + 12
15

Toda shell tem um prompt. No caso do interpretador do Python, são aqueles 3 sinais “>>>”.
Quando vocẽ cansar de brincar, pode sair da shell com a execução da função quit():

quit()

Meu sistema tem mais de uma versão do Python instalada. O que eu faço?

Nos sistemas operacionais Linux, é comum vir mais de uma versão do Python instalada:
No meu sistema, há 3 opções: python2.7, python3.5 e python3.5m. Veja:

ls -l /usr/bin/python*
lrwxrwxrwx 1 root root       9 Set 20 17:27 /usr/bin/python -> python2.7
lrwxrwxrwx 1 root root       9 Set 20 17:27 /usr/bin/python2 -> python2.7
-rwxr-xr-x 1 root root 3546104 Nov 19 06:35 /usr/bin/python2.7
lrwxrwxrwx 1 root root       9 Set 20 17:27 /usr/bin/python3 -> python3.5
-rwxr-xr-x 2 root root 4460336 Nov 17 16:23 /usr/bin/python3.5
-rwxr-xr-x 2 root root 4460336 Nov 17 16:23 /usr/bin/python3.5m
lrwxrwxrwx 1 root root      10 Set 20 17:27 /usr/bin/python3m -> python3.5m

Os arquivos “python” e “python2” são apenas links para “python2.7” — que é a versão padrão do meu sistema.
Da mesma forma, “python3” é um link para “python 3.5” e “python3m” para “python3.5m”.
No Linux, é comum ter utilitários do sistema que ainda dependem da versão 2.x do Python, o que explica a presença desta versão do interpretador.
Você não precisa se preocupar com isso.
Se quiser entender como lidar com mais de uma versão do Python instalada no seu sistema, leia este artigo.

Como tornar a versão 3 do Python padrão no meu sistema

Se preferir, posso mostrar 2 métodos para obter acesso mais rápido a uma determinada versão do interpretador, da linha de comando, no Linux.
O primeiro método consiste em criar um link ou atalho para ele:

ln -s /usr/bin/python3 py

Você provavelmente terá que invocar o comando, acima, como superusuário.
Depois de criado, basta executar o atalho:

./py

… e o interpretador da versão 3.x será acionado:

Python 3.5.2 (default, Nov 17 2016, 17:05:23) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

O segundo método (meu preferido) consiste em usar o comando alias para criar um “apelido” para a minha versão predileta do Python.
O resultado é o mesmo, só que dispensa privilégios administrativos. Veja como:

alias py="/usr/bin/python3"

O resultado, contudo, tende a esvanecer com o fim da sessão.
Para torná-lo persistente, inclua a linha, acima, no seu arquivo ~/.bashrc (para usuários Linux).
Qual é o seu método preferido?

Note que nenhum dos métodos torna o Python 3, verdadeiramente, padrão no seu sistema — ele apenas cria uma ligação para a versão que você deseja executar.

Alterar o padrão da versão 2 para a 3, infelizmente, pode causar problemas de compatibilidade em vários utilitários do sistema, que dependem da versão legada para funcionar.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Junte-se a 48 outros assinantes