2. Utilizando o Interpretador Python

2.1. Chamando o interpretador

The Python interpreter is usually installed as /usr/local/bin/python3.5 on those machines where it is available; putting /usr/local/bin in your Unix shell’s search path makes it possible to start it by typing the command:

python3.5

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, the Python installation is usually placed in C:\Python35, though you can change this when you’re running the installer. To add this directory to your path, you can type the following command into the command prompt in a DOS box:

set path=%path%;C:\python35

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 readline. Talvez a verificação mais rápida, para ver se a edição de linha de comando é suportada, é digitando Control-P para obter o primeiro prompt do Python. Se for emitido um bip, 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 é ecoado, 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 (dispositivo tty), ele lê e executa comandos interativamente; quando chamado com um nome de arquivo como parâmetro, ou com redirecionamento da entrada padrão para ler um arquivo, o interpretador irá ler e executar o script contido no arquivo.

Uma segunda forma de rodar o interpretador é python -c *comando* [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 *módulo* [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, que é uma lista de strings. 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 (tty), 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.5
Python 3.5 (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.

It is also possible to specify a different encoding for source files. In order to do this, put one more special comment line right after the #! line to define the source file encoding:

# -*- coding: encoding -*-

With that declaration, everything in the source file will be treated as having the encoding encoding instead of UTF-8. The list of possible encodings can be found in the Python Library Reference, in the section on codecs.

For example, if your editor of choice does not support UTF-8 encoded files and insists on using some other encoding, say Windows-1252, you can write:

# -*- coding: cp-1252 -*-

and still use all characters in the Windows-1252 character set in the source files. The special encoding comment must be in the first or second line within the file.

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.