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.
