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 49 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 49 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 49 outros assinantes