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

Comment écrire du code de plus d'une ligne dans l'interpréteur Python ?

J'ai un problème de codage Python en terminal. J'apprends juste les bases, donc je n'ai pas besoin de créer des fichiers .py.

Dans le terminal, je peux exécuter une ligne de code dans l'interpréteur Python, mais comment puis-je écrire plus d'une ligne ?

Évidemment, si j'appuie sur la touche entrée, il entre dans la commande et ne descend pas d'une ligne.

Je veux juste tester le suivi dans le terminal :

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

Réponses (7)

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

Ajoutez une barre oblique inversée (`## Ajoutez une barre oblique inversée ()

Le truc est - similaire à ce que vous feriez dans bash, par exemple - pour ajouter une barre oblique inversée. Par exemple, si je veux imprimer un 1 :

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

Si vous écrivez un ## Ajoutez une barre oblique inversée (## Ajoutez une barre oblique inversée ()

Le truc est - similaire à ce que vous feriez dans bash, par exemple - pour ajouter une barre oblique inversée. Par exemple, si je veux imprimer un 1 :

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

Si vous écrivez un , Python vous demandera avec ... (lignes de continuation) d'entrer du code dans la ligne suivante, pour ainsi dire.

Note : C'est ce qui se passe automatiquement lorsque vous créez une définition de fonction ou de classe, c'est-à-dire les fois où vous avez vraiment besoin d'une nouvelle ligne, donc il n'y a jamais vraiment de bonne utilisation pour cela, ou du moins aucune que je connaisse. En d'autres termes, Python est assez intelligent pour savoir que vous avez besoin de lignes de continuation lorsque vous entrez une nouvelle définition de fonction ou d'autres constructions similaires (par exemple if:). Dans ces cas automatiques, notez que vous devez entrer une ligne vide en utilisant ## Ajoutez une barre oblique inversée (## Ajoutez une barre oblique inversée ()

Le truc est - similaire à ce que vous feriez dans bash, par exemple - pour ajouter une barre oblique inversée. Par exemple, si je veux imprimer un 1 :

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

Si vous écrivez un ## Ajoutez une barre oblique inversée (## Ajoutez une barre oblique inversée ()

Le truc est - similaire à ce que vous feriez dans bash, par exemple - pour ajouter une barre oblique inversée. Par exemple, si je veux imprimer un 1 :

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

Si vous écrivez un , Python vous demandera avec ... (lignes de continuation) d'entrer du code dans la ligne suivante, pour ainsi dire.

Note : C'est ce qui se passe automatiquement lorsque vous créez une définition de fonction ou de classe, c'est-à-dire les fois où vous avez vraiment besoin d'une nouvelle ligne, donc il n'y a jamais vraiment de bonne utilisation pour cela, ou du moins aucune que je connaisse. En d'autres termes, Python est assez intelligent pour savoir que vous avez besoin de lignes de continuation lorsque vous entrez une nouvelle définition de fonction ou d'autres constructions similaires (par exemple if:). Dans ces cas automatiques, notez que vous devez entrer une ligne vide en utilisant pour dire à Python que vous avez terminé.

Pour tout le reste, vous devez écrire une ligne après l'autre. La façon dont un interprète fonctionne est qu'il, eh bien, interprète chaque ligne que vous lui donnez. Ni plus, ni moins. Il n’“agira” que lorsqu'il verra une nouvelle ligne, disant donc à l'interprète d'exécuter ce que vous lui avez donné. La simple barre oblique inversée empêchera l'interprète de recevoir un caractère de retour à la ligne (c'est-à-dire qu'il ne saura pas que vous avez réellement appuyé sur la touche “Entrée”), mais il finira par en recevoir un.

L'interpréteur Python a des capacités avancées lorsque vous utilisez la readline GNU, comme Emacs ou les raccourcis clavier de style VI pour naviguer à l'intérieur d'une ligne (par exemple Ctrl-A). Ces derniers ne fonctionnent cependant que dans la ligne courante. L'histoire est là aussi, essayez d'appuyer sur ↑.

Et si je veux faire défiler des lignes compliquées encore et encore ?

Vous voulez probablement utiliser les bons fichiers sources si vous voulez exécuter plus d'une ligne de code à la fois.

Ou bien, utilisez les cahiers Jupyter, qui offrent une manière interactive et géniale de créer du code Python avec un interpréteur intégré. Vous pouvez écrire du code comme vous le feriez dans un éditeur de code source, mais vous pouvez choisir quelles lignes sont interprétées ensemble. Vous pouvez ensuite exécuter seulement certaines parties du code de manière sélective. Le mieux est d'essayer de voir si cela correspond à votre flux de travail.

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

Pourquoi ne pas utiliser ;Pourquoi ne pas utiliser ? Le point-virgule signale la fin d'une commande et la barre oblique inversée indique que nous continuons sur la ligne suivante. Par exemple, tapezpython` en ligne de commande pour entrer dans l'interpréteur Python, puis

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

devrait donner une sortie de

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

En d'autres termes, si vous voulez apprendre et exécuter plus d'une ligne, vous l'écrivez dans un fichier .py.

La méthode de la barre oblique inverse est bonne lorsque vous voulez exécuter rapidement une série de commandes, mais elle n'est pas utile lorsque vous apprenez.

Vous pourrez mieux développer le code, modifier les commandes individuelles sans vous soucier des fautes d'orthographe, et réutiliser les bribes de code que vous trouvez utiles si vous les écrivez dans un petit fichier.

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

J'ai continué à expérimenter en mettant différents symboles. J'ai finalement obtenu la syntaxe correcte pour l'écrire. Essayez la suivante

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

cela vous donnera un résultat

more string

3

sans aucune erreur

je viens d'utiliser “ ;” pour le faire écrire dans une autre ligne

j'espère que ma réponse pourra vous aider

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

J'ai juste tapé ce qui suit à l'invite de mon shell, et ça a très bien fonctionné :

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

La façon de taper plus d'une ligne de code dans l'interpréteur Python interactif est, eh bien, de taper plus d'une ligne de code dans l'interpréteur Python interactif. Je pense que ce serait suffisant pour vos besoins.

Il est vrai que vous aurez un nouveau prompt après chaque ligne, ce qui signifie que si deux de vos lignes de code produisent une sortie, cette sortie sera séparée par des prompts. Je suppose que c'est ce qui vous préoccupe, bien que l'exemple de votre question ne le suggère pas :

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

Si cela vous pose problème, vous pouvez inclure vos multiples déclarations dans une déclaration if (correctement indentée !):

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

(Je suggère, même si cela ne répond pas à votre question, que si vous écrivez un code suffisamment complexe pour que cela ait de l'importance, vous devriez écrire des scripts. Peut-être avez-vous commencé à le faire depuis un an et demi, depuis que vous avez posté la question).

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

Il suffit de quitter le shell et d'ouvrir un nouveau fichier d'édition. C'est-à-dire aller dans le fichier et ouvrir un nouveau fichier. Ecrivez autant de lignes de codes que vous le souhaitez.

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

Au niveau des trois points, veillez à appuyer sur la touche “tab” avant d'entrer la commande suivante. Vous pouvez continuer à écrire autant de commandes que vous le souhaitez de cette façon. Ainsi, lorsque vous appuyez sur la touche Entrée après avoir écrit votre deuxième ligne de code, l'interpréteur vous permet d'entrer la troisième ligne de code… comme dans l'exemple de Fibonacci ci-dessous (tiré du tutoriel) :

a,b=0,1 while b<10 : … print(b) # Si vous entrez la commande print immédiatement après les points et que vous appuyez sur la touche Entrée à la fin, vous obtiendrez une erreur d'indentation. Au lieu de cela, appuyez sur la tabulation après les trois points, puis écrivez votre code et appuyez sur la touche Entrée, cela vous permettra d'entrer la troisième ligne de code et ainsi de suite. Regardez l'exemple ci-dessous (tiré du tutoriel) :

a,b=0,1 # Suivi de la touche d'entrée alors que b<10 : # Suivi de la touche d'entrée … print(b) # Suivi de la touche d'entrée. Notez la tabulation après les trois points … a,b=b,a+b # Suivi de la touche d'entrée …enter key # Plus de commandes pour entrer

vous verrez le résultat de la procédure ci-dessus