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


J'ai un problème pour coder Python dans le terminal. Je ne fais qu'apprendre les bases, donc je n'ai pas besoin de créer de fichiers .py.

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

Évidemment, si je tape sur Entrée, il entre la commande et ne descend pas sur une ligne.

Je veux juste tester la suite dans le terminal:

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

20
2018-01-24 08:58


origine


Je soupçonne que vous rencontrez des problèmes avec «indentation». A. tapez 'python'. B. >>> se lève C. Pour exécuter un script, le script doit être correctement mis en retrait avec des "tabulations". - r4.
Je n'ai pas demandé si mon chemin si l'apprentissage est correct ou non ... J'ai posé une question spécifique, si vous connaissez la réponse s'il vous plaît ... sinon ...


Réponses:


Ajouter une barre oblique inverse (\)

Le truc est - semblable à ce que vous feriez dans bash, par exemple - pour ajouter une barre oblique inverse. 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) pour entrer le code dans la ligne suivante, pour ainsi dire.

Note: c'est ce qui se produit automatiquement lorsque vous créez une fonction ou une définition de classe, c’est-à-dire les moments où vous avoir besoin une nouvelle ligne, donc il n'y a jamais vraiment de bonne utilisation pour cela, ou du moins aucune à ma connaissance. En d'autres termes, Python est suffisamment intelligent pour être conscient que vous avez besoin de lignes de continuation lorsque vous entrez une nouvelle définition de fonction ou d'autres constructions similaires (par ex. if:). Dans ces cas automatiques, notez que vous devez entrer une ligne vide en utilisant \ dire à Python que vous avez terminé.

Pour tout le reste, vous devez écrire une ligne après l'autre. Le fonctionnement d'un interprète est qu'il interprète chaque ligne que vous lui donnez. Pas plus, pas moins. Il ne fera "qu'agir" quand il verra une nouvelle ligne, et demandera donc à l'interprète d'exécuter ce que vous lui avez donné. La barre oblique inverse unique 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 Entrer), mais il en recevra éventuellement un.

L'interpréteur de Python a capacités avancées lorsque vous utilisez GNU readline, comme Emacs ou des raccourcis clavier de style vi pour naviguer dans une ligne (par ex. Ctrl-A). Ceux-ci ne fonctionnent cependant que dans la ligne actuelle. L'histoire est là aussi, essayez et appuyez sur .

Et si je veux exécuter des lignes compliquées encore et encore?

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

Ou utiliser Cahiers Jupyter, qui offre une excellente façon interactive 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 les lignes interprétées ensemble. Vous pouvez ensuite exécuter uniquement des parties du code de manière sélective. Le meilleur moyen est d'essayer de voir si cela correspond à votre flux de travail.


22
2018-01-24 09:37



:) de bons travaux pour la première ligne, mais que faire si je veux plus de lignes? la deuxième barre oblique inverse indique une erreur de syntaxe.
Alors qu'est ce que c'est exactement ne pas travail? Il suffit de sélectionner et de copier ces lignes, puis de les coller dans le terminal. Ils s'exécuteront de haut en bas comme dans un script, car la nouvelle ligne est analysée par l'interpréteur. Quelle est la solution? - slhck
Je voudrais les taper directement dans le terminal, plutôt que de les écrire dans l'éditeur et les coller là-bas ... semble être une perte de temps :)
Ensuite, il suffit de taper une ligne après l'autre. Il n'y a pas d'autre chemin. C'est un interprète. Il vous demandera des lignes de continuation uniquement lorsque vous en avez vraiment besoin. - slhck


Que diriez-vous d'utiliser ;\? Le point-virgule signale 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 entrer dans l'interpréteur Python, puis

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

devrait donner une sortie de

0
4

2
2017-07-01 22:22





Je viens de taper ce qui suit à l'invite de mon shell, et cela fonctionnait très bien:

$ 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 plus d'une ligne de code dans l'interpréteur Python interactif. Je pense que cela serait suffisant pour vos objectifs.

Il est vrai que vous obtiendrez une nouvelle invite 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 invites. Je suppose que c'est ce qui vous préoccupe, bien que l'exemple de votre question ne suggère 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 c’est un problème, vous pouvez joindre vos multiples déclarations dans un if déclaration:

$ 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 du code suffisamment complexe pour que cela ait de l’importance, vous devriez écrire des scripts. Peut-être avez-vous commencé à le faire dans un an et demi. depuis que vous avez posté la question.)


2
2017-07-01 22:44





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

La méthode de la barre oblique inverse finale est utile lorsque vous voulez exécuter rapidement une série de commandes, mais cela n’aide pas lorsque vous apprenez.

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


1
2018-01-24 09:54



Oui je suis d'accord. Mais je suis à un niveau élémentaire. Je n'écris rien d'utile, juste des tests de variables stupides et des calculs mathématiques, etc. Rien n'est digne de créer un fichier. Merci quand même pour le conseil.
Même les mathématiques simples valent la peine d'être placées dans un fichier - si c'est 3 lignes ou plus, je le ferais moi-même en vi. Même si c'est là que je me demande ce que j'ai fait plus tard. - Rory Alsop


Essayez cette vidéo sur youtube qui couvre les déclarations de cas et l'importance de l'indentation: https://www.youtube.com/watch?v=JkXPxMOSJTY


1
2018-01-17 05:50



Bienvenue sur Super User. Les liens externes peuvent se briser ou être indisponibles, auquel cas votre réponse ne serait pas utile. Veuillez inclure les informations essentielles dans votre réponse et utiliser le lien pour l'attribution et la lecture ultérieure. Merci. - fixer1234


Je viens de passer par la réponse que vous avez reçu.J'ai continué à expérimenter en mettant différents symboles.J'ai finalement obtenu la syntaxe correcte pour écrire it.try 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 peut vous aider


0
2018-05-01 18:28





Sur les trois points, assurez-vous d'appuyer sur la touche "tab" avant d'entrer la prochaine commande. Vous pouvez continuer à écrire autant de commandes de cette façon. Donc, lorsque vous appuyez sur 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 (du tutoriel):

a, b = 0,1       alors que b <10:       ... print (b) # Si vous entrez une commande d'impression immédiatement après les points et que vous appuyez sur la touche Entrée à la fin, vous obtenez une erreur d'indentation.       Au lieu de cela, appuyez sur l'onglet 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 (du tutoriel):

a, b = 0,1 # Suivi de la touche enter       tandis que b <10: # Suivi de la touche entrée       ... print (b) # Suivi de la touche entrée. notez l'onglet après les trois points       ... a, b = b, a + b # Suivi de la touche enter       ... entrer la clé # Plus de commandes à saisir

vous verrez le résultat du prog ci-dessus


-1
2018-05-25 12:12