Como escrevo código com mais de 1 linha no interpretador Python?

Como escrevo código com mais de 1 linha no interpretador Python?

Tenho um problema ao codificar Python no terminal. Estou apenas aprendendo o básico, então não preciso criar arquivos .py.

No terminal posso executar uma linha de código no interpretador Python, mas como escrevo mais de uma linha?

Obviamente, se eu apertar enter, ele insere o comando e não desce uma linha.

Eu só quero testar o seguinte no terminal:

my_age = 35
my_eyes = 'Blue'
print "my age is %d and my eye color is %s" % (my_age, my_eyes)

Responder1

Adicione uma barra invertida final ( \)

O truque é – semelhante ao que você faria em bash, por exemplo – adicionar uma barra invertida no final. Por exemplo, se eu quiser imprimir um 1:

charon:~ werner$ python
>>> print 1
1
>>> print \
... 1
1
>>> 

Se você escrever um \, o Python solicitará ...(linhas de continuação) para inserir o código na próxima linha, por assim dizer.

Nota lateral: Isto é o que acontece automaticamente quando você cria uma definição de função ou classe, ou seja, os momentos em que você realmenteprecisaruma nova linha, então nunca há um uso realmente bom para isso, ou pelo menos nenhum que eu conheça. Em outras palavras, Python é inteligente o suficiente para estar ciente de que você precisa de linhas de continuação ao inserir uma nova definição de função ou outras construções semelhantes (por exemplo, if:). Nesses casos automáticos, observe que você precisa inserir uma linha vazia usando \para informar ao Python que você terminou.

Para todo o resto, você precisa escrever uma linha após a outra. A maneira como um intérprete funciona é que ele interpreta cada linha que você alimenta. Nem mais, nem menos. Ele só irá "agir" quando vir uma nova linha, dizendo ao intérprete para executar o que você deu. A única barra invertida impedirá que o intérprete receba um caractere de nova linha (ou seja, ele não saberá que você realmente pressionou Enter), mas eventualmente receberá um.

O interpretador do Python temcapacidades avançadasquando você usa readline GNU, como Emacs ou atalhos de teclado no estilo vi para navegar dentro de uma linha (por exemplo Ctrl-A, ). No entanto, eles funcionam apenas na linha atual. A história também está lá, basta tentar pressionar .

E se eu quiser repetir linhas complicadas repetidamente?

Você provavelmente desejará usar arquivos de origem adequados se quiser executar mais de uma linha de código por vez.

Ou useCadernos Jupyter, que oferece uma maneira excelente e interativa de criar código Python com um interpretador integrado. Você pode escrever código como faria em um editor de código-fonte, mas pode escolher quais linhas serão interpretadas juntas. Você pode então executar apenas partes do código seletivamente. A melhor maneira é apenas tentar ver se isso se adapta ao seu fluxo de trabalho.

Responder2

Que tal usar ;\? O ponto e vírgula sinaliza o fim de um comando e a barra invertida sinaliza que continuamos na próxima linha. Por exemplo, digite pythonna linha de comando para entrar no interpretador Python, então

>>> x=0 ;\
... print(x) ;\
... x=4 ;\
... print(x)

deve dar uma saída de

0
4

Responder3

Eu estava analisando a resposta que você obteve. Continuei experimentando colocando símbolos diferentes. Finalmente consegui a sintaxe correta para escrevê-la.

print("more string") ; print(3)

isso lhe dará um resultado

more string

3

sem nenhum erro

acabei de usar ';' para fazê-lo escrever em outra linha

espero que minha resposta possa te ajudar

Responder4

Acabei de digitar o seguinte no prompt do shell e funcionou perfeitamente:

$ python
Python 2.7.3 (default, Aug  1 2012, 05:16:07) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> my_age = 35
>>> my_eyes = 'Blue'
>>> print "my age is %d and my eye color is %s" % (my_age, my_eyes)
my age is 35 and my eye color is Blue
>>> 

A maneira de digitar mais de uma linha de código no interpretador Python interativo é, bem, digitar mais de uma linha de código no interpretador Python interativo. Eu acho que isso seria bom o suficiente para seus propósitos.

É verdade que você receberá um novo prompt após cada linha, o que significa que se duas de suas linhas de código produzirem uma saída, essa saída será separada por prompts. Acho que é com isso que você está preocupado, embora o exemplo da sua pergunta não sugira isso:

$ python
Python 2.7.3 (default, Aug  1 2012, 05:16:07) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print "first line"
first line
>>> print "second line"
second line
>>> 

ifSe isso for um problema, você pode colocar suas múltiplas instruções em uma instrução (corretamente recuada!) :

$ python
Python 2.7.3 (default, Aug  1 2012, 05:16:07) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> if 1:
...     print "first line"
...     print "second line"
... 
first line
second line
>>> 

(Eu sugiro, mesmo que isso não responda à sua pergunta, que se você estiver escrevendo um código complexo o suficiente para que isso seja importante, você deveria escrever scripts. Talvez você tenha começado a fazer isso no ano e meio desde que você postou a pergunta.)

informação relacionada