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 :

Execution de script à une ligne précise


Sujet :

Python

  1. #1
    Futur Membre du Club
    Profil pro
    Collégien
    Inscrit en
    Août 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Août 2007
    Messages : 12
    Points : 9
    Points
    9
    Par défaut Execution de script à une ligne précise
    Bonjour.
    Apres des moi d'abbonnement à developpez.com j'aurai une question que je n'ai pas vue dans ce forum.
    Voila. Je suis un débutant en programmation python et je voudrai creer des petits programmes assez complet seulement j'aimerai que mon script soit executé de façon a pouvoir revenir au_ début ou a une ligne précise du programme et je ne sait même pas si c'est possible.
    Serait-il possible de m'aider?
    Musclor13
    PS désolé pour les fautes d'orthographes.

  2. #2
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Points : 1 257
    Points
    1 257
    Par défaut
    c'est un procedé qui existait dans le C/C++ (goto) et c'est une tres mauvaise façon de programmer (cela servait surtout pour traiter les erreur mais maintenant on a les exceptions).

    Explique nous ton probleme et on te trouvera une solution adequate.

  3. #3
    Membre averti Avatar de Pierre Maurette
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 283
    Points : 390
    Points
    390
    Par défaut
    Citation Envoyé par anthyme Voir le message
    c'est un procedé qui existait dans le C/C++ (goto) et c'est une tres mauvaise façon de programmer (cela servait surtout pour traiter les erreur mais maintenant on a les exceptions).
    Ça existe toujours, et c'est heureux, surtout en C. Le goto label est parfaitement fonctionnel, et n'est pas entâché de dangers particuliers. Ce qui est inquiétant, c'est quand on l'utilise dans plus que "quelques programmes" dans sa vie de programmeur C, et ce qui est très très inquiétant, c'est quand un débutant l'utilise immédiatement. Il fut un temps où venant de divers Basics, le programmeur évoluant vers quelque chose de plus structuré devait être violemment recadré, et alors on a diabolisé le bon vieux goto. Notons qu'il eut été préférabele de commencer le ménage au niveau du Basic, dont toutes les implémentations n'étaient pas si mauvaises.
    D'ailleurs, le goto label est toujours largement utilisé en C sous sa forme switch ... case. case et default son tout simplement des label. Et effectivement, cette structure est absente de Python, ce qui est sans doute plus significatif que l'absence du 'diabolique' goto.

    Edit: Tiens, y'a un gag, là:http://www.entrian.com/goto/

    Explique nous ton probleme et on te trouvera une solution adequate.
    On peut peut-être l'imaginer, et ce n'est pas à mon avis le goto. Personnellement j'utilise Python pour des trucs assez légers. Soit c'est un machin en ligne de commande (ou un plugin, c'est fréquent) one-shot, c'est à dire que ça effectue une action et se termine. Même si ce n'est pas très efficace, je lancerai souvent le programme deux fois, la première pour lister des choses, la seconde pour agir dessus. Donc en refaisant une partie du boulot, mais sans aucune influence sur l'efficacité vraie. L'alternative, c'est pour moi un petit clickodrome, en tkInter.
    Ce que veut peut-être faire Musclor13 (!!), c'est revenir à un menu après chaque action. Je ne l'ai jamais fait de façon violente, mais ce n'est qu'une question de structure. Sans Poo, il suffit de lancer une fonction init(), puis une fonction menu() qui va boucler en lançant des fonctions, qui fatalement retourneront - après d'autres appels, dont des sous-menus) à menu(). A ce niveau-là, dans le cas de la ligne de commande, mais le choix menu, c'est pareil, j'aime bien utiliser un dictionnaire de fonctions, mais c'est de la gourmandise. J'ajoute que si on structure bien les items des menus et les dictionnaires d'actions, on peut ajouter un traitement en 5 minutes.

  4. #4
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Points : 1 257
    Points
    1 257
    Par défaut
    Citation Envoyé par Pierre Maurette Voir le message
    Ça existe toujours, et c'est heureux, surtout en C. Le goto label est parfaitement fonctionnel, et n'est pas entâché de dangers particuliers. Ce qui est inquiétant, c'est quand on l'utilise dans plus que "quelques programmes" dans sa vie de programmeur C, et ce qui est très très inquiétant, c'est quand un débutant l'utilise immédiatement.
    Je ne sais pas si "heureux" est le terme a proprié mais c'est vrai que cela palie un certain manque mais bon etre trop permissif est souvent dangereux dans un langage

    [QUOTE=Pierre Maurette;2781955]Il fut un temps où venant de divers Basics, le programmeur évoluant vers quelque chose de plus structuré devait être
    Citation Envoyé par Pierre Maurette Voir le message
    violemment recadré, et alors on a diabolisé le bon vieux goto. Notons qu'il eut été préférabele de commencer le ménage au niveau du Basic, dont toutes les implémentations n'étaient pas si mauvaises.
    Bin faut bien le faire un jour mieux vaut tard que jamais...

    Citation Envoyé par Pierre Maurette Voir le message
    D'ailleurs, le goto label est toujours largement utilisé en C sous sa forme switch ... case. case et default son tout simplement des label. Et effectivement, cette structure est absente de Python, ce qui est sans doute plus significatif que l'absence du 'diabolique' goto.
    humm ca reste discutable... beaucoup plus de langage ont banni le goto mais pas le switch... a priori le switch n'est pas la en python car son enchainement de elif est bien assez conci


    Citation Envoyé par Pierre Maurette Voir le message
    Edit: Tiens, y'a un gag, là:http://www.entrian.com/goto/
    Ahhhhh mon dieu pas ça !!!!!


    Citation Envoyé par Pierre Maurette Voir le message
    A ce niveau-là, dans le cas de la ligne de commande, mais le choix menu, c'est pareil, j'aime bien utiliser un dictionnaire de fonctions, mais c'est de la gourmandise. J'ajoute que si on structure bien les items des menus et les dictionnaires d'actions, on peut ajouter un traitement en 5 minutes.
    Je ne comprend pas vraiment ce que tu as expliquer si tu pouvais detailler un peu

    Mais perso pour moi un systeme un minimum complexe doit etre POO (et pour moi ca inclu tous les script de plus de 30 ligne) surtout surtout surtout pour les interfaces

  5. #5
    Futur Membre du Club
    Profil pro
    Collégien
    Inscrit en
    Août 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Août 2007
    Messages : 12
    Points : 9
    Points
    9
    Par défaut + d'explications
    Bon voila. En fet comme je ne sait pas utiliser Tkinter j'utilise python pour creer des programmes en lignes de commendes.
    J'aimerai en fet creer des programmes qui par exemple execute tel ou tel scripte par exemple

    Une quinzaine de lignes:
    Texte=input("message du style voulez vous rejouer? 1=reccommencer 2=recommencer avec les mêmes configs 3quitter")
    if texte==1:
    Retourner a la ligne 3
    elif texte=2:
    aller a la ligne 6
    elif texte=3:
    Quitter (Je sait ca grace aux FAQ)

    Mon idée serai en fet de retourner a un menu principal programmé au début du programme mais sans afficher ou faire des trucs au tout début du scripte.
    J'éspère avoir été assez clair mais si des questions subsistes n'hésitez pas.
    Musclor13
    PS C'est quoi le GOTO dont vous parlez? Soyez indulgent car je fait de la prog que depuis environ 6 mois et en plus j'apprend tout seul grace aux tutos et aux docs francaises (suis nul en anglais en plus) donc soyez simpas.

  6. #6
    DEJ
    DEJ est déconnecté
    Membre à l'essai
    Inscrit en
    Septembre 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 14
    Points : 16
    Points
    16
    Par défaut
    Utilise des fonctions et si besoin une boucle while continue associée à un break ou alors une instruction faussant la condition de répétition du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    i = 1
    while (i==1):
        foo = raw_input('choix')
        if (foo == "quitter"):
            i = 0

  7. #7
    Futur Membre du Club
    Profil pro
    Collégien
    Inscrit en
    Août 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Août 2007
    Messages : 12
    Points : 9
    Points
    9
    Par défaut Oui mais...
    Ok mais prenons exemple d'un jeu style Les tours de Hanoï se trouvant sur ce site dans l'onglet Sources:
    Si quand j'affiche la solution ou que je terminais la partie au lieu de quitter j'avais un message me demandant si je veut rejouer ba j'ai juste à indiquer au programme de retourner au début?
    Maintenant si je veut avoir une fonction qui me permette de rejouer avec les paramètres il faudrai qu'il ne fasse pas les premières lignes et qu'il redémarre le jeu? Mais si j'inclus ces deux fonctions dans mon jeu (qui est un jeu ou on doit réécrire les chiffres affichés a l'écran et le tout de mémoire) ba je fait comment? Y a t-il une fonction qui me permette ça?
    Moi je cherche un truc pour exécuter tel fonction de mon programme se trouvant sur tel ligne (+ les lignes suivantes comme dans un scripte normal) et le tout sans trop avoir a bidouiller des machins et des trucs trop compliqué et surtout à partir d'une autre ligne loin avant ou loin après.
    Par contre le script qu'on m'a donné précédemment va m'aider pour pouvoir ecrir la fonction QUITTER et AIDE de mon programme.
    Sinon c'est bien que plains de personnes sympa explique aux débutants ou a ceux qui ont des questions comment faire car personnellement je ne connait personne qui sache faire de la programmation. Ce site m'a aidé pour tout depuis Apprendre à programmer avec python (que je lis toujours car je ne l'ai pas encore terminé) aux questions que je me pose pour faire tel ou tel chose.
    Donc continuez à remplir le site et a l'enrichir car ça aide toujours.
    Au revoir et bonnes vacances!!!
    Musclor13

  8. #8
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Points : 1 257
    Points
    1 257
    Par défaut
    Bin je pense que tu devrais t orienter vers la POO ... des que les problemes commence a etre compliqué faut pas hésiter...

    la tu peu faire une classe qui represente une partie et tu l'instancie sans parametre a la premiere partie et avec de nouveau parametre pour la 2eme

    apres tu peux lui mettre une methode run que te permet de lancer la partie

  9. #9
    Futur Membre du Club
    Profil pro
    Collégien
    Inscrit en
    Août 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Août 2007
    Messages : 12
    Points : 9
    Points
    9
    Par défaut Et en francais ça veux dire quoi?
    C'est quoi le pao dont tu me parle?
    Je suis débutent donc si tu me lance dans un truc pas possible ou je n'y comprend rien ça vas être dur.
    Au pire montre-moi un code comme cela a été fait plus haut.
    A bientôt.

  10. #10
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Points : 1 257
    Points
    1 257
    Par défaut
    Citation Envoyé par Musclor13 Voir le message
    C'est quoi le pao dont tu me parle?
    Je suis débutent donc si tu me lance dans un truc pas possible ou je n'y comprend rien ça vas être dur.
    Au pire montre-moi un code comme cela a été fait plus haut.
    A bientôt.
    Programation Orienté Objet.

    Je pense qu'avant de te lancer tete baisser dans un projet il faudrait ameliorer tes connaissances théoriques surtout que la POO cela ne s'explique pas dans un post sur un forum mais bon pour te donner une idée c'est : représenter un systeme informatique (programme) à l'aide d'objets comme dans ton cas un objet programme qui va créer et lancer un objet partie qui contiendra différents objets relatif a la partie etc, ...

    plutot que te jeter tete baisser tu devrais paufinner tes connaissances et connaitre "la bonne façon de faire"

    Il y a un tres bon livre gratuit sur python ici : http://python.developpez.com/cours/apprendre-python3/

  11. #11
    Futur Membre du Club
    Profil pro
    Collégien
    Inscrit en
    Août 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Août 2007
    Messages : 12
    Points : 9
    Points
    9
    Par défaut Je l'ai déjà telecharger
    Citation Envoyé par anthyme Voir le message
    Programation Orienté Objet.

    Je pense qu'avant de te lancer tete baisser dans un projet il faudrait ameliorer tes connaissances théoriques surtout que la POO cela ne s'explique pas dans un post sur un forum mais bon pour te donner une idée c'est : représenter un systeme informatique (programme) à l'aide d'objets comme dans ton cas un objet programme qui va créer et lancer un objet partie qui contiendra différents objets relatif a la partie etc, ...

    plutot que te jeter tete baisser tu devrais paufinner tes connaissances et connaitre "la bonne façon de faire"

    Il y a un tres bon livre gratuit sur python ici : http://python.developpez.com/cours/apprendre-python3/


    Je l'ai déjà télécharger et je doit en être au chapitre 8 ou 9 mais c'est sympa d'envoyer le lien.
    Donc si je comprend bien il suffirai que je crée un menu qui importerait le jeu avec la configuration sélectionnée pour que après le logiciel puisse revenir ensuite au menu et me reposer les questions?
    J'insiste sur le fait que quelqu'un que je connait en a besoin.
    Sinon frenchement je trouve que vous m'avez bien guidé dans ce petit projet et si je réussis et qu'il fonctionne bien je verrais pour publier le code source sur ce site (hé oui: Y a pas que les pros qui craient des programmes quoi qu'ils font des trucs étonnants)
    A bientôt
    Et bon réveillon.

  12. #12
    Futur Membre du Club
    Profil pro
    Collégien
    Inscrit en
    Août 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Août 2007
    Messages : 12
    Points : 9
    Points
    9
    Par défaut Pas de réponse = bonne réponse
    Ok.
    Donc vue qu'il n'y a plus rien à dire je marque comme résolut.
    Mais si vous revenez sur ce forum sachez que ce site m'a beaucoup aidé et comme je ne sait pas ou donner mes encouragements je le fait ici!!!
    BRAVO POUR CE SUPER SITE!!!

    Musclor13

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Executer un script à une date précise.
    Par bobchovit dans le forum VBScript
    Réponses: 2
    Dernier message: 12/11/2007, 09h56
  2. Réponses: 3
    Dernier message: 21/02/2007, 08h08
  3. [VBA Excel] Userform pour supprimer une ligne précise
    Par Viper7 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/06/2006, 14h32
  4. lire une ligne précise d'un fichier
    Par loic_86 dans le forum Langage
    Réponses: 1
    Dernier message: 06/01/2006, 13h37
  5. [HTML] Se placer à une ligne précise dans un tableau
    Par seb55555 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 28/10/2004, 15h06

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