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

Come posso scrivere codice di più di 1 riga nell'interprete Python?

Ho un problema nel codificare Python in un terminale. Sto solo imparando le basi, quindi non ho bisogno di creare file .py.

In terminale posso eseguire una riga di codice nell'interprete Python, ma come faccio a scrivere più di una riga?

Ovviamente se premo invio, entra nel comando e non va avanti di una riga.

Voglio solo testare quanto segue nel terminale:

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

Risposte (7)

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

Aggiungi un backslash finale (`## Aggiungi un backslash finale ()

Il trucco è - simile a quello che faresti in bash, per esempio - di aggiungere un backslash finale. Per esempio, se voglio stampare un 1:

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

Se scrivete uno ## Aggiungi un backslash finale (## Aggiungi un backslash finale ()

Il trucco è - simile a quello che faresti in bash, per esempio - di aggiungere un backslash finale. Per esempio, se voglio stampare un 1:

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

Se scrivete uno , Python vi chiederà con ... (linee di continuazione) di inserire il codice nella riga successiva, per dire.

Nota a margine: questo è ciò che accade automaticamente quando si crea una funzione o una definizione di classe, cioè le volte in cui si ha davvero necessità di una nuova linea, quindi non c'è mai un uso veramente buono per questo, o almeno nessuno che io conosca. In altre parole, Python è abbastanza intelligente da essere consapevole che avete bisogno di linee di continuazione quando state inserendo una nuova definizione di funzione o altri costrutti simili (es. if:). In questi casi automatici, notate che avete bisogno di inserire una linea vuota usando ## Aggiungi un backslash finale (## Aggiungi un backslash finale ()

Il trucco è - simile a quello che faresti in bash, per esempio - di aggiungere un backslash finale. Per esempio, se voglio stampare un 1:

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

Se scrivete uno ## Aggiungi un backslash finale (## Aggiungi un backslash finale ()

Il trucco è - simile a quello che faresti in bash, per esempio - di aggiungere un backslash finale. Per esempio, se voglio stampare un 1:

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

Se scrivete uno , Python vi chiederà con ... (linee di continuazione) di inserire il codice nella riga successiva, per dire.

Nota a margine: questo è ciò che accade automaticamente quando si crea una funzione o una definizione di classe, cioè le volte in cui si ha davvero necessità di una nuova linea, quindi non c'è mai un uso veramente buono per questo, o almeno nessuno che io conosca. In altre parole, Python è abbastanza intelligente da essere consapevole che avete bisogno di linee di continuazione quando state inserendo una nuova definizione di funzione o altri costrutti simili (es. if:). In questi casi automatici, notate che avete bisogno di inserire una linea vuota usando per dire a Python che avete finito.

Per tutto il resto, dovete scrivere una linea dopo l'altra. Il modo in cui funziona un interprete è che, beh, interpreta ogni linea che gli date in pasto. Né più né meno. Si “agisce” solo quando vede una newline, dicendo quindi all'interprete di eseguire ciò che gli avete dato. Il singolo backslash impedirà all'interprete di ricevere mai un carattere newline (cioè non saprà che avete effettivamente premuto Invio), ma alla fine ne riceverà uno.

L'interprete di Python ha capacità avanzate quando si usa GNU readline, come Emacs o le associazioni di tasti in stile vi per navigare all'interno di una linea (ad esempio Ctrl-A). Questi però funzionano solo nella linea corrente. Anche la cronologia è lì, basta provare a premere ↑.

Cosa succede se voglio eseguire linee complicate più e più volte?

Probabilmente vuoi usare dei file sorgente appropriati se vuoi eseguire più di una linea di codice alla volta.

Oppure, usa Jupyter notebooks , che offre un ottimo modo interattivo per creare codice Python con un interprete integrato. Puoi scrivere codice come faresti in un editor di codice sorgente, ma puoi scegliere quali linee sono interpretate insieme. Potete quindi eseguire solo parti del codice in modo selettivo. Il modo migliore è provare e vedere se questo si adatta al vostro flusso di lavoro.

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

Che ne dite di usare ;Che ne dite di usare ? Il punto e virgola segnala la fine di un comando e il backslash segnala che stiamo continuando sulla linea successiva. Per esempio, digitatepython` sulla linea di comando per entrare nell'interprete Python, poi

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

dovrebbe dare un output di

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

In poche parole, se volete imparare e volete eseguire più di una linea, scrivete in un file .py.

Il metodo del backslash finale è buono quando si vuole eseguire rapidamente una serie di comandi, ma non aiuta quando si sta imparando.

Sarete in grado di sviluppare meglio il codice, modificare singoli comandi senza preoccuparvi degli errori di ortografia, e riutilizzare frammenti di codice che trovate utili se li scrivete in un piccolo file.

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

Ho continuato a sperimentare mettendo diversi simboli, alla fine ho trovato la sintassi corretta per scriverlo. Prova i seguenti

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

questo ti darà un risultato

more string

3

senza alcun errore

ho appena usato ‘;’ per farlo scrivere in un'altra linea

spero che la mia risposta possa aiutarti

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

Ho appena digitato quanto segue al prompt della mia shell, e ha funzionato bene:

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

Il modo per digitare più di una linea di codice nell'interprete Python interattivo è, beh, digitare più di una linea di codice nell'interprete Python interattivo. Penso che sia abbastanza buono per i vostri scopi.

È vero che avrete un nuovo prompt dopo ogni linea, il che significa che se due delle vostre linee di codice producono output, quell'output sarà separato da prompt. Immagino che sia questo che ti preoccupa, anche se l'esempio nella tua domanda non lo suggerisce:

$ 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 questo è un problema, puoi racchiudere le tue dichiarazioni multiple in una dichiarazione (correttamente indentata!) 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
>>>

(suggerirei, anche se non risponde alla tua domanda, che se stai scrivendo codice abbastanza complesso da essere importante, dovresti scrivere degli script. Forse avete iniziato a farlo nell'anno e mezzo da quando avete postato la domanda).

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

Basta lasciare la shell e aprire un nuovo file editor. Cioè vai a file e apri un nuovo file. Scrivete tutte le linee di codice che volete.

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

Ai tre punti assicuratevi di premere il tasto “tab” prima di inserire il comando successivo. Potete continuare a scrivere tanti comandi in questo modo. Così quando premete enter dopo aver scritto la seconda linea di codice, l'interprete vi permette di inserire la terza linea di codice… come nell'esempio di Fibonacci qui sotto (dal tutorial):

a,b=0,1 while b<10: … print(b) # Se inserite il comando print subito dopo i punti e premete enter alla fine, avrete un errore di indentazione. Invece premete il tasto tab dopo i tre punti, poi scrivete il vostro codice e premete il tasto enter, vi permetterà di inserire la terza linea di codice e così via. Guardate il seguente esempio (dal tutorial):

a,b=0,1 # Seguito dal tasto invio mentre b\10: # Seguito dal tasto invio … print(b) # Seguito dal tasto invio. notare il tab dopo i tre punti … a,b=b,a+b # Seguito dal tasto invio …tasto invio # Nessun altro comando da inserire

vedrete il risultato del prog sopra