web-dev-qa-db-fra.com

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 simplement les bases, je n'ai donc pas besoin de créer de fichiers .py.

Dans 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 je tape sur Entrée, il entre dans la commande et ne descend pas dans une ligne.

Je veux juste tester ce qui suit dans le terminal:

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

Ajouter une barre oblique arrière (\)

L'astuce est la même chose - comme ce que vous feriez dans bashname__, par exemple - pour ajouter une barre oblique inverse à la fin. Par exemple, si je veux imprimer un 1:

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

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

Note latérale: C’est ce qui se produit automatiquement lorsque vous créez une définition de fonction ou de classe, c’est-à-dire les moments où vous avez réellement besoin d’une nouvelle ligne. vraiment bon usage pour cela, ou du moins aucun que je sache. En d'autres termes, Python est suffisamment 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 indiquer à Python que vous avez terminé.

Pour tout le reste, vous devez écrire une ligne après l'autre. La façon dont fonctionne un interprète est qu’elle interprète chaque ligne que vous lui donnez. Pas plus, pas moins. Il "agira" seulement quand il verra un retour à la ligne, donc il demandera à 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 nouvelle ligne (c’est-à-dire qu’il ne saura pas que vous avez appuyé sur Enter), mais il finira par en recevoir un.

L'interpréteur de Python a fonctionnalités avancées lorsque vous utilisez GNU readline, tels que les associations de touches Emacs ou vi, pour naviguer dans une ligne (par exemple, Ctrl-A). Celles-ci ne fonctionnent toutefois que dans la ligne courante. L’histoire est là aussi, essayez et appuyez sur .

Et si je veux exécuter des lignes compliquées à plusieurs reprises?

Vous souhaiterez probablement utiliser les fichiers source appropriés si vous souhaitez exécuter plusieurs lignes de code à la fois.

Ou bien, utilisez blocs-notes Jupyter , qui offre un excellent moyen interactif 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 seront interprétées ensemble. Vous ne pouvez alors exécuter que certaines parties du code de manière sélective. Le meilleur moyen est simplement d'essayer de voir si cela correspond à votre flux de travail.

30
slhck

Que diriez-vous d'utiliser ;\? Le point-virgule marque la fin d'une commande et la barre oblique inverse indique que nous continuons sur la ligne suivante. Par exemple, tapez python en ligne de commande pour accéder à l’interpréteur Python, puis

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

devrait donner une sortie de

0
4
6
Garrett

En termes simples, si vous souhaitez apprendre et exécuter plusieurs lignes, écrivez-le dans un fichier .py.

La méthode de barre oblique inverse de fin est utile lorsque vous souhaitez exécuter rapidement une série de commandes, mais elle n’aide en rien lorsque vous apprenez.

Vous serez en mesure de mieux développer le code, d’éditer des commandes individuelles sans vous soucier des fautes d’orthographe et de réutiliser les extraits de code que vous trouverez utiles si vous les écrivez dans un petit fichier.

2
Rory Alsop

Je viens de taper le texte suivant à l’invite de Shell et tout a 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 manière de taper plus d'une ligne de code dans l'interpréteur Python interactif consiste à taper plusieurs lignes de code dans l'interpréteur Python interactif. Je pense que cela suffirait à vos besoins.

Il est vrai que vous obtiendrez une nouvelle invite après chaque ligne, ce qui signifie que si deux de vos lignes de code génèrent une sortie, cette sortie sera séparée par des invites. Je suppose que c'est ce qui vous préoccupe, bien que l'exemple de votre question n'indique pas que:

$ 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 pose un problème, vous pouvez inclure vos déclarations multiples dans une instruction if (correctement mise en retrait!):

$ 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érerais, même si cela ne répond pas à votre question, que si vous écrivez du code assez complexe pour que cela ait de l'importance, vous devriez écrire des scripts. Vous l'avez peut-être commencé dans un an et demi depuis que vous avez posté la question.)

1
Keith Thompson

Je passais juste à travers la réponse que vous avez obtenue.J'ai continué à expérimenter en mettant différents symboles.J'ai enfin eu la syntaxe correcte pour l'écrire.try ce qui suit

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

0
Curious Blade

Il suffit de quitter le shell et d’ouvrir un nouveau fichier d’éditeur. C'est à dire. aller au fichier et ouvrir un nouveau fichier. Écrivez autant de lignes de codes que vous voulez.

0
Hemant Gautam