IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Comment récupérer une ligne précédente sur python


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2022
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2022
    Messages : 3
    Par défaut Comment récupérer une ligne précédente sur python
    Bonjour,

    Je vient de commencer ma formation sur python3 et je voulais savoir si il existe une commande qui permet (comme sur un terminal avec les flèches haut et bas) de récupérer les ligne écrite précédemment.
    un peu comme un copier/coller met qui permet sur notre ligne de code actuelle de reprendre l'une des lignes écrite précédemment pour la modifier en cas d'erreur au lieu de tout retaper directement.
    Dsl si je n'est pas était très clair je débute dans le milieu du développement.
    En espérant que quelqu'un est compris ma question et a une réponse.

    Cordialement
    un étudiant débutant

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 688
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 688
    Par défaut
    Salut,

    Avec Python, vous écrivez des scripts. Ils sont composés de lignes certes mais pour revenir en arrière, il faut modifier le fichier et le relancer.
    => vous ne retapez pas tout.
    Après vous avez des IDE comme IDLE (qui est inclus dans la distribution standard) ou même la console Python interactive qui permettent un minimum de retour arrière.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 300
    Par défaut
    bonjour, pas forcément bien compris la question...

    Dans l'interpréteur python, pour naviguer dans l'historique
    ctrl+p retour arrière "prev"
    ctrl+n ligne suivante (après ctrl+p) "next"

    ---------

    Dans tous les éditeurs, nous avons normalement ctrl+z pour "annuler dernier changement"

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 813
    Billets dans le blog
    1
    Par défaut
    Bonjour

    Vu ta question je pense que tu travailles soit dans idle, soit dans le terminal Python (le truc avec ">>>" devant chaque instruction et "..." devant chaque suite d'instruction)
    Ce sont des interfaces simplistes permettant de tester une ou deux (allez, allons jusqu'à une fonction contenant 5 instructions). On peut aussi écrire un code complet de 300 lignes, rien ne l'interdit, mais si on se plante faut tout retaper.

    Toutefois en Python c'est inutile. Car quand tu arrives à un code complexe, alors tu écris ce code dans un fichier texte que tu nommes en ce que tu veux mais d'extension ".py" (exemple "toto.py") puis depuis ton terminal de commande (si t'es sous Windows on obtient ce terminal en ouvrant le menu "exécuter" et en demandant la commande "cmd") tu tapes alors "python toto.py" et là, tout ton script Python s'exécutera dans ledit terminal. Et si quelque chose ne va pas tu peux réouvrir le fichier et modifier la (les) ligne(s) à rectifier.
    Bien entendu il faut que ton Windows soit paramétré pour afficher les extensions des fichiers (ce qui d'ailleurs est recommandé pour la sécurité de son OS car masquer les extensions, option placée par défaut, peut t'amener à exécuter des fichiers potentiellement dangereux mais dont tu ne vois pas le danger à cause du fait que tu ne vois pas son extension). Tape "masquer extensions fichiers windows" dans un moteur de recherche et tu arriveras à différentes pages donnant la manip pour masquer (et donc aussi afficher) ce paramètre.

    Ca semble un peu rébarbatif sous Windows car Python a à la base été créé sous Linux, OS dans lequel déjà les extensions sont toujours affichées (je me suis d'ailleurs toujours demandé pourquoi ce n'était pas aussi le cas dans zindow) et dans lequel travailler dans un "terminal" (on dit aussi "en lignes de commandes") est quasiment une habitude pour ceux qui utilisent cet OS.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Invité
    Invité(e)
    Par défaut
    Salut !

    Tout dépend du logiciel que tu utilises pour ça =)

    J'utilise par exemple IDLE (Que tu pourras trouver ici : C:\Python39\Lib\idlelib\idle.bat)

    Sous IDLE tu peux recopier la ou les lignes en les surlignant et appuyant sur Entrée.

    Sinon tu verras à l'avenir que programmé en Python c'est un peu plus compliqué que de taper une ligne de commande dans un interpréteur et donc on ne passe pas notre temps à recopier les lignes précédentes mais plutôt à débugger/améliorer ce qu'on a écrit. En règle générale on évite de recopier plusieurs fois la même "ligne", on préfèrera d'autres formes d'appels à la commande.
    Exemple :
    Pour dire 5 fois "Bonjour !", on ne fera pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    print("Bonjour !")
    print("Bonjour !")
    print("Bonjour !")
    print("Bonjour !")
    print("Bonjour !")
    Mais plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print("\n".join("Bonjour !" for i in range(5)))
    Ou encore :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for i in range(5):
    	print("Bonjour !")
    Ou encore :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    i = 0
    while i < 5:
    	print('Bonjour !')
    	i+=1
    Tout cela tu le verras bientôt si ce n'est déjà fait !

    PS : @Sve@r On peut tout de même afficher les extensions sur Windows, mais j'avoue que c'est assez perturbant de voir que c'est une option... L'une des rares extensions non-affichées c'est lnk.
    PS : @papajoker Ah ah effectivement ! J'avais pas pensé à ce truc si simple.

  6. #6
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 300
    Par défaut
    ou print("Bonjour !\n"*5)ps: en fait, le codeur est un énorme fainéant : il ne se répète jamais (dans son code)

  7. #7
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 813
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par LeNarvalo Voir le message
    PS : @Sve@r On peut tout de même afficher les extensions sur Windows
    Oui, comme je l'ai dit faut désactiver l'option qui va bien et les extensions s'affichent avec le nom du fichier. Ou alors on fait "clic droit" sur le fichier et on demande ses propriétés mais à force ça peut devenir vraiment lourd.

    Citation Envoyé par LeNarvalo Voir le message
    mais j'avoue que c'est assez perturbant de voir que c'est une option
    L'option à la limite on s'en fiche (une option c'est censé être "facultatif" donc au pire on la met pas et c'est bon). Moi ce qui me perturbe c'est que l'options soit calée à "masquer" par défaut dans tout zindow installé from scratch.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  8. #8
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2022
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2022
    Messages : 3
    Par défaut
    Merci pour toutes vos réponses je vais continuer mon auto formation et essayer les manipulations que vous m’avez conseillé.

  9. #9
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2022
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2022
    Messages : 3
    Par défaut
    Rebonjour,
    Après avoir lu toute vos réponse j'ai compris mes erreurs dans ma question je vais essayer d'être un peu plus précis :

    dans Git bash si je tape "pwd" on est d'accord la commande s'effectue et me dit ou je me situe.
    Ensuite si je fait flèche du haut "pwd" S'affiche a nouveau, je récupère ma ligne (ou script je ne sais pas exactement le bon terme) précédente et toutes les autres précèdent. Mais dés que j'ouvre un terminal python donc quand j'ai les >>> qui s'affichent, cette manip avec la flèche du haut ne marche plus ma question est : Existe -t -il une manip équivalente qui a la même utilité sur un terminal python ?

    PS : je ne parle pas pour un IDE je demande uniquement pour un terminal (dans mon cas j'utilise Git bash pour ouvrir un terminal python)

    Merci d'avance

  10. #10
    Membre Expert
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 914
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par Dragon_ Voir le message
    Rebonjour,
    Après avoir lu toute vos réponse j'ai compris mes erreurs dans ma question je vais essayer d'être un peu plus précis :

    dans Git bash si je tape "pwd" on est d'accord la commande s'effectue et me dit ou je me situe.
    Ensuite si je fait flèche du haut "pwd" S'affiche a nouveau, je récupère ma ligne (ou script je ne sais pas exactement le bon terme) précédente et toutes les autres précèdent. Mais dés que j'ouvre un terminal python donc quand j'ai les >>> qui s'affichent, cette manip avec la flèche du haut ne marche plus ma question est : Existe -t -il une manip équivalente qui a la même utilité sur un terminal python ?

    PS : je ne parle pas pour un IDE je demande uniquement pour un terminal (dans mon cas j'utilise Git bash pour ouvrir un terminal python)

    Merci d'avance
    Chez moi (je n'utilise pas windows/git bash mais linux) , je peux naviguer dans l'historique des commandes autant depuis mon terminal bash que depuis mon terminal python...

  11. #11
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 813
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Dragon_ Voir le message
    Mais dés que j'ouvre un terminal python donc quand j'ai les >>> qui s'affichent, cette manip avec la flèche du haut ne marche plus ma question est : Existe -t -il une manip équivalente qui a la même utilité sur un terminal python ?
    Ben chez-moi cette manip fonctionne. Sous le terminal Python, que ce soit sous Linux ou Windows, les flèches font défiler mes anciennes instructions. Et ça fonctionne aussi chez Hominidé. Et la manip de papajoker (à base de ctrl-p/ctrl-n) aussi.
    As-tu installé un vrai Python (et pas un de ces clones à base de VisualTruc comme on a vu parfois)?
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  12. #12
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 602
    Par défaut
    Citation Envoyé par Dragon_ Voir le message
    Rebonjour,
    Après avoir lu toute vos réponse j'ai compris mes erreurs dans ma question je vais essayer d'être un peu plus précis :

    dans Git bash si je tape "pwd" on est d'accord la commande s'effectue et me dit ou je me situe.
    Ensuite si je fait flèche du haut "pwd" S'affiche a nouveau, je récupère ma ligne (ou script je ne sais pas exactement le bon terme) précédente et toutes les autres précèdent. Mais dés que j'ouvre un terminal python donc quand j'ai les >>> qui s'affichent, cette manip avec la flèche du haut ne marche plus ma question est : Existe -t -il une manip équivalente qui a la même utilité sur un terminal python ?

    PS : je ne parle pas pour un IDE je demande uniquement pour un terminal (dans mon cas j'utilise Git bash pour ouvrir un terminal python)

    Merci d'avance
    Bonjour.

    Dans mes projets professionnels comme personnels, j'ai l'habitude d'utiliser la lib ipython. Elle n'a pas besoin d'être importée dans un script Python puisqu'il s'agit d'une interface en console dont l'avantage est de mémoriser les lignes de commande précédemment tapées, avec autocompletion en prime.

    A installer avec pip et utilisable comme ceci via une console :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    (venv) PS C:\Users\cemoi\Downloads\Nouveau dossier (2)> ipython
    Python 3.10.3 (tags/v3.10.3:a342a49, Mar 16 2022, 13:07:40) [MSC v.1929 64 bit (AMD64)]
    Type 'copyright', 'credits' or 'license' for more information
    IPython 8.3.0 -- An enhanced Interactive Python. Type '?' for help.
     
    In [1]: toto = True
     
    In [2]: toto
    Out[2]: True
     
    In [3]:
    A essayer pour se faire une idée.

    Et si couplé avec django, ça marche aussi pour tester les custom commands et autres joyeusetés ambulantes en python/django :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    python manage.py shell -i ipython

  13. #13
    Membre Expert
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 914
    Billets dans le blog
    7
    Par défaut
    Bonjour,
    Ensuite si je fait flèche du haut
    Depuis le terminal, on peut aussi faire une recherche récursive (reverse-i-search) d'un terme avec ctlr+r...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>>
    (reverse-i-search):

Discussions similaires

  1. [Débutant] Comment récupérer une ligne d'un DataSet
    Par Loic4891 dans le forum VB.NET
    Réponses: 4
    Dernier message: 11/06/2014, 10h01
  2. Réponses: 2
    Dernier message: 14/04/2009, 19h04
  3. [HTML] comment récupérer une ligne d'un tableau avec HTML?
    Par jaafarerraji dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 01/10/2007, 00h21
  4. Comment obtenir une adresse mac sur python
    Par Wael Maaoui dans le forum Réseau/Web
    Réponses: 4
    Dernier message: 19/02/2007, 13h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo