2012-01-24 08:58:00 +0000 2012-01-24 08:58:00 +0000
36
36
Advertisement

Como se escreve o código de mais de 1 linha no intérprete Python?

Advertisement

Tenho um problema de codificação Python em terminal. Estou apenas a aprender o básico, por isso não tenho necessidade de criar ficheiros .py.

No terminal posso executar uma linha de código no intérprete Python, mas como é que escrevo mais do que uma linha?

Obviamente, se eu bater enter, ele entra no comando e não desce uma linha.

Eu só quero testar os seguidores no terminal:

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

Respostas (7)

33
33
33
2012-01-24 09:37:07 +0000

Adicionar uma barra invertida móvel (`## Adicionar uma barra invertida móvel ()

O truque é - semelhante ao que se faria em bash, por exemplo - adicionar uma barra invertida móvel. Por exemplo, se eu quiser imprimir uma 1:

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

Se escrever um ## Adicionar uma barra invertida móvel (## Adicionar uma barra invertida móvel ()

O truque é - semelhante ao que se faria em bash, por exemplo - adicionar uma barra invertida móvel. Por exemplo, se eu quiser imprimir uma 1:

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

Se escrever um , Python pedir-lhe-á com ... (linhas de continuação) para introduzir o código na linha seguinte, por assim dizer.

Nota lateral: Isto é o que acontece automaticamente quando se cria uma função ou definição de classe, ou seja, as vezes em que realmente necessário uma nova linha, por isso nunca há uma utilização realmente boa para isso, ou pelo menos nenhuma que eu conheça. Por outras palavras, Python é suficientemente inteligente para estar ciente de que precisa de linhas de continuação quando está a entrar numa nova definição de função ou outras construções semelhantes (por exemplo, if:). Nestes casos automáticos, note que precisa de introduzir uma linha vazia usando ## Adicionar uma barra invertida móvel (## Adicionar uma barra invertida móvel ()

O truque é - semelhante ao que se faria em bash, por exemplo - adicionar uma barra invertida móvel. Por exemplo, se eu quiser imprimir uma 1:

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

Se escrever um ## Adicionar uma barra invertida móvel (## Adicionar uma barra invertida móvel ()

O truque é - semelhante ao que se faria em bash, por exemplo - adicionar uma barra invertida móvel. Por exemplo, se eu quiser imprimir uma 1:

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

Se escrever um , Python pedir-lhe-á com ... (linhas de continuação) para introduzir o código na linha seguinte, por assim dizer.

Nota lateral: Isto é o que acontece automaticamente quando se cria uma função ou definição de classe, ou seja, as vezes em que realmente necessário uma nova linha, por isso nunca há uma utilização realmente boa para isso, ou pelo menos nenhuma que eu conheça. Por outras palavras, Python é suficientemente inteligente para estar ciente de que precisa de linhas de continuação quando está a entrar numa nova definição de função ou outras construções semelhantes (por exemplo, if:). Nestes casos automáticos, note que precisa de introduzir uma linha vazia usando para dizer a Python que está feito.

Para tudo o resto, precisa de escrever uma linha após a outra. A forma como um intérprete funciona é que ele, bem, interpreta todas as linhas que lhe são dadas. Nem mais, nem menos. Só “actuará” quando vir uma nova linha, dizendo portanto ao intérprete para executar o que lhe deu. A única contrabarra impedirá o intérprete de alguma vez receber um novo carácter de linha (ou seja, não saberá que realmente pressionou Enter), mas acabará por receber um.

O intérprete Python tem capacidades avançadas quando utiliza a linha de leitura GNU, tais como Emacs ou ligações de teclas ao estilo vi-estilo para navegar dentro de uma linha (por exemplo, Ctrl-A). No entanto, estes funcionam apenas na linha actual. A história também está lá, basta tentar e pressionar ↑.

E se eu quiser percorrer linhas complicadas vezes sem conta?

& Provavelmente quer usar ficheiros-fonte apropriados se quiser executar mais do que uma linha de código de cada vez.

Ou, use Jupyter notebooks , que oferecem uma excelente forma interactiva de criar código Python com um intérprete incorporado. Pode escrever código como faria num editor de código fonte, mas pode escolher que linhas são interpretadas em conjunto. Pode então executar apenas partes do código de forma selectiva. A melhor maneira é apenas tentar e ver se isso se ajusta ao seu fluxo de trabalho.

8
8
8
2013-07-01 22:22:29 +0000

Que tal usar ;Que tal usar ? O ponto e vírgula sinaliza o fim de um comando e os sinais de retrocesso que continuamos na linha seguinte. Por exemplo, digitepython` na linha de comando para entrar em Python interpreter, depois

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

deverá dar uma saída de

0
4
2
Advertisement
2
2
2012-01-24 09:54:25 +0000
Advertisement

Simplificando, se quiser aprender e quiser executar mais do que uma linha, escreva-a num ficheiro .py.

O método de trailing backlash é bom quando se quer executar rapidamente uma série de comandos, mas não ajuda quando se está a aprender.

Será capaz de desenvolver melhor o código, editar comandos individuais sem se preocupar com erros ortográficos, e reutilizar trechos de código que considere úteis se os escrever num pequeno ficheiro.

1
1
1
2018-05-01 18:28:49 +0000

Estava apenas a passar pela resposta que obteve. Continuei a experimentar colocando símbolos diferentes. Finalmente obtive a sintaxe correcta para a escrever.tentei o seguinte

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

isto dar-lhe-á um resultado

more string

3

sem qualquer erro

acabei de usar ‘;’ para a fazer escrever noutra linha

espero que a minha resposta o possa ajudar

1
Advertisement
1
1
2013-07-01 22:44:47 +0000
Advertisement

Acabei de escrever o seguinte no meu prompt shell, e funcionou muito bem:

$ 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 forma de escrever mais do que uma linha de código no intérprete interactivo Python é, bem, escrever mais do que uma linha de código no intérprete interactivo Python. Penso que isso seria suficientemente bom para os seus propósitos.

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

$ 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
>>>

Se isso for um problema, pode incluir as suas múltiplas declarações numa (devidamente recuada!) declaração if:

$ 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 sugeriria, mesmo não respondendo à sua pergunta, que se está a escrever código suficientemente complexo para que isto seja importante, deveria estar a escrever scripts. Talvez tenha começado a fazê-lo no ano e meio desde que colocou a pergunta).

0
0
0
2018-08-28 19:51:18 +0000

Basta deixar a concha e abrir um novo ficheiro editor. Isto é, vá para o ficheiro e abra um novo ficheiro. Escreva tantas linhas de códigos quantas quiser.

-2
Advertisement
-2
-2
2016-05-25 12:12:58 +0000
Advertisement

Nos três pontos, certifique-se de carregar na tecla “tab” antes de introduzir o próximo comando. Pode continuar a escrever tantos comandos quanto possível dessa forma. Assim, quando premir enter depois de escrever a segunda linha de código, o intérprete permite-lhe introduzir a terceira linha de código… como no exemplo Fibonacci abaixo (do tutorial):

a,b=0,1 enquanto b<10: … print(b) # Se introduzir o comando print imediatamente após os pontos e premir a tecla enter no final, receberá um erro de indentação. Em vez disso, carregue no separador depois dos três pontos, depois escreva o seu código e carregue na tecla enter, ele irá permitir que você introduza a terceira linha de código e assim por diante. Veja o exemplo abaixo (do tutorial):

a,b=0,1 # Seguido de enter key enquanto b<10: # Seguido de enter key … print(b) # Seguido de enter key. note o separador depois dos três pontos … a,b=b,a+b # Seguido de enter key …enter key # Acabaram-se os comandos para introduzir

verá o resultado do programa acima

Advertisement

Questões relacionadas

13
19
7
3
5
Advertisement
Advertisement