# 2. Utilizando o Interpretador Python

## 2.1. Chamando o interpretador

The Python interpreter is usually installed as `/usr/local/bin/python3.6` 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.6

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:\Python36`, 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:\python36

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.6
    Python 3.6 (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.