2. Utilizando o Interpretador Python¶
2.1. Chamando o interpretador¶
O interpretador Python geralmente está instalado como /usr/local/bin/python3.7
nas máquinas onde está disponível; colocando /usr/local/bin
no caminho de busca do seu shell Unix torna possível iniciá-lo digitando o comando:
python3.7
para o shell. 1 Como a escolha do diretório onde o interpretador está é uma opção de instalação, outros locais são possíveis; verifique com seu guru Python ou administrador do sistema local. (Por exemplo, /usr/local/python
é um local alternativo popular.)
On Windows machines where you have installed Python from the Microsoft Store, the python3.7
command will be available. If you have
the py.exe launcher installed, you can use the py
command. See Excursus: Configurando variáveis de ambiente for other ways to launch Python.
Digitando um caractere fim-de-arquivo (Control-D no Unix, Control-Z no Windows) diretamente no prompt força o interpretador a sair com status de saída zero. Se isso não funcionar, você pode sair do interpretador digitando o seguinte comando: quit()
.
Os recursos de edição de linha do interpretador incluem edição interativa, substituição de histórico e complemento de código, em sistemas que suportam a biblioteca GNU Readline. Talvez a verificação mais rápida, para ver se a edição de linha de comando é suportada, é digitando Control-P no primeiro prompt oferecido pelo Python. Se for emitido um bipe, você terá a edição da linha de comando; veja Apêndice Edição de entrada interativa e substituição de histórico para uma introdução às combinações. Se nada acontecer, ou se ^P
aparecer na tela, a edição da linha de comando não está disponível; você só poderá usar backspace para remover caracteres da linha atual.
O interpretador trabalha de forma semelhante a uma shell de UNIX: quando chamado com a saída padrão conectada a um console de terminal, ele lê e executa comandos interativamente; quando chamado com um nome de arquivo como argumento, ou com redirecionamento da entrada padrão para ler um arquivo, o interpretador lê e executa o script contido no arquivo.
Uma segunda forma de rodar o interpretador é python -c command [arg] ...
, que executa um ou mais comandos especificados na posição comando, analogamente à opção de shell -c
. Considerando que comandos Python frequentemente têm espaços em branco (ou outros caracteres que são especiais para a shell) é aconselhável que o comando esteja dentro de aspas duplas.
Alguns módulos Python são também úteis como scripts. Estes podem ser chamados usando python -m module [arg] ...
, que executa o arquivo fonte do módulo como se você tivesse digitado seu caminho completo na linha de comando.
Quando um arquivo de script é utilizado, as vezes é útil executá-lo e logo em seguida entrar em modo interativo. Isto pode ser feito acrescentando o argumento -i
antes do nome do script.
Todas as opções de linha de comando são descritas em Linha de comando e ambiente.
2.1.1. Passagem de argumentos¶
Quando são de conhecimento do interpretador, o nome do script e demais argumentos da linha de comando da shell são acessíveis ao próprio script através da variável argv
do módulo sys
. Pode-se acessar essa lista executando import sys
. Essa lista tem sempre ao menos um elemento; quando nenhum script ou argumento for passado para o interpretador, sys.argv[0]
será uma string vazia. Quando o nome do script for '-'
(significando entrada padrão), o conteúdo de sys.argv[0]
será '-'
. Quando for utilizado -c
comando, sys.argv[0]
conterá '-c'
. Quando for utilizado -m
módulo, sys.argv[0]
conterá o caminho completo do módulo localizado. Opções especificadas após -c
comando ou -m
módulo não serão consumidas pelo interpretador mas deixadas em sys.argv
para serem tratadas pelo comando ou módulo.
2.1.2. Modo interativo¶
Quando os comandos são lidos a partir do console, diz-se que o interpretador está em modo interativo. Nesse modo ele solicita um próximo comando através do prompt primário, tipicamente três sinais de maior (>>>
); para linhas de continuação do comando atual, o prompt secundário padrão é formado por três pontos (...
). O interpretador exibe uma mensagem de boas vindas, informando seu número de versão e um aviso de copyright antes de exibir o primeiro prompt:
$ python3.7
Python 3.7 (default, Sep 16 2015, 09:25:04)
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
Linhas de continuação são necessárias em construções multi-linha. Como exemplo, dê uma olhada nesse comando if
:
>>> the_world_is_flat = True
>>> if the_world_is_flat:
... print("Be careful not to fall off!")
...
Be careful not to fall off!
Para mais informações sobre o modo interativo, veja Modo interativo.
2.2. O interpretador e seu ambiente¶
2.2.1. Edição de Código Fonte¶
Por padrão, arquivos fonte de Python são tratados com codificação UTF-8. Nessa codificação, caracteres de muitos idiomas no mundo podem ser usados simultaneamente em literais string, identificadores e comentários — embora a biblioteca padrão use apenas caracteres ASCII para identificadores, uma convenção que qualquer código portável deve seguir. Para exibir todos esses caracteres corretamente, seu editor deve reconhecer que o arquivo é UTF-8 e deve usar uma fonte que suporte todos os caracteres no arquivo.
Para declarar uma codificação diferente da padrão, uma linha de comentário especial deve ser adicionada como primeira linha do arquivo. A sintaxe é essa:
# -*- coding: encoding -*-
onde encoding é uma das codecs
válidas suportada pelo Python.
Por exemplo, para declarar que a codificação Windows-1252 deve ser usada, a primeira linha do seu arquivo fonte deve ser:
# -*- coding: cp1252 -*-
Uma exceção para a regra da primeira linha é quando o código fonte inicia com uma UNIX “shebang” line. Nesse caso, a declaração de codificação deve ser adicionada como a segunda linha do arquivo. Por exemplo:
#!/usr/bin/env python3
# -*- coding: cp1252 -*-
Notas de rodapé
- 1
No Unix, o interpretador Python 3.x não é instalado por padrão com o executável nomeado
python
, então não vai conflitar com um executável Python 2.x instalado simultaneamente.