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 :

probleme avec pythonwin


Sujet :

Python

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 206
    Par défaut probleme avec pythonwin
    bonjour a tous

    comme l'indique le titre du sujet,j'ai un probleme avec pythonwin,et j'aimerais que vous m'aidiez

    ce probleme est montré dans la screen que voici:

    http://pix.nofrag.com/cc/95/be20a626...7d7c1a185.html

    quand je met la fonction input, ou une liste avec des des crochets comme,au hasard nn=[o], il colore les crochets en bleu ciel et quand j'execute le probleme il plante

    j'aimerais donc savoir comment y remedier avec ce programme,ou sinon peut-etre pourriez vous m'en conseiller un autre (celui ci étant un peu trop austere a mon gout) ?

    merci d'avance

  2. #2
    Membre émérite
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Par défaut
    Salut. Pour ma part je programme avec IDLE fournit avec python.

    Quelque petite astuce.

    Ouvre IDLE(dans ton menu demarrer pythonxx python GUI idle)

    Tu a un prompt qui arrive avec >>>

    tu fais fichier new file.

    Une nouvelle fenetre vierge s'ouvre, tu fais aussitot file Save as.

    Et tu sauves tonnomdefichier.py et tape bien le ".py" meme si le filefilter te dis que c'est un pyhon.

    Et la fait un malheureux import, et ce mot clé devrait apparaitre en orange.

    Pour lancer ton script .. fais F5. N'oublies pas si tu a defenie que des fonctions ou procedure, lors du run de ton script si tu veux voire le resultat n'oublie pas de les appelées.

    N'esite pas si tu as des soucis;-)
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 206
    Par défaut
    je ne pense pas avoir idle regarde

    http://pix.nofrag.com/1e/53/a1fa1e60...8df0507eb.html

    c'est tout ce que j'ai en rapport avec python,je vais essayer de voir ou telecharger idle,si tu pouvais m'indiquer en lien ce serait plus rapide

    merci pour ta préponse

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 52
    Par défaut
    Salut,

    tu télécharges python sur http://www.python.org
    là, tu auras l'idle, ce qui est déjà mieux pour commencer...

    See++

  5. #5
    Membre émérite
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Par défaut
    OUais parcque tu a prix ca sur activeware apparement.

    Il font aussi ActiveTCL... prends ca comme See pluuuus pluuus te dis.
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 206
    Par défaut
    merci a tous les deux

    edit:j'ai un probleme avec idle^^

    je n'arrive pas a executer ce code:

    http://pix.nofrag.com/46/25/c015ef32...8f6045caf.html

    en fait,il ne s'execute pas quand on appuie 2 fois sur entree,et quand je clique sur run ça affiche "invalid syntax" et ça colore en rouge le 1er "3" de la version.

    en fait je pense que c'est lié a l'indentation,en effet idle l'effectue automatiquement,mais quand on ne veut pas indenter (comme c'est le cas pour la derniere ligne du code),j'ai l'impression qu'il bugue,c'est d'ailleurs moi qui est du manuellement rajouter les ">>>"

    je ne sais pas si j'ai été tres clair,faut dire qu'il est tard/tot et j'ai les idées un peu embrouillées^^

    auriez vous une solution? si vous l'avez ou que vous n'avez pas compris ce que j'ai écrit,n'hésitez pas

    merci d'avance

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 52
    Par défaut
    Salut,

    Le plus simple dans l'idle, c'est de faire Fichier->Nouveau

    Ca va t'ouvrir une fenetre dans laquelle tu pourras rentrer ton script et le sauvegarder.

    Ensuite tu fais F5 (raccourci pour exécuter) et là tu devrais exécuter ton script.

    C'est beaucoup plus facile pour la gestion des indentations et surtout pour ne pas perdre tout le joli travail que tu auras fait

    A+

    See++

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 206
    Par défaut test
    ah oui effectivement merci beaucoup encore une fois

    un nouveau probleme se dessine a l'horizon

    quand j'ai fini de taper mon code je fais f5 mais la le programme plante et je suis obligé de le fermer avec ctr alt suppr,ensuite je ne peux meme plus le réouvrir,il va falloir que je le réinstalle

    Il m'affiche rien..

  9. #9
    Membre émérite
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Par défaut
    Sous le SHELL pour dire que tu as terminé une indentation normalement tu a ... qui apparaisse pour indenté.

    Tu as terminé ton indentation? Et bien tu as juste a appuyer sur ENTER pour passe a la ligne suivante et la tu sors de ta boucle.

    Voiloa.
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 206
    Par défaut
    quand j'ouvre une nouvelle fenetre,je n'ai plus les différents marqueurs tles que >>> et ...

    mais merci quand meme

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 52
    Par défaut
    Salut,

    Il ne faut pas confondre les fenêtres de scripts (Fichier->Nouveau dans l'idle)
    et la fenetre de shell.

    Le shell python, c'est là ou tu as les >>>
    Il interprète directement les commandes que tu mets
    Par exemple si tu tapes print "Coucou" puis Entrée, il te renverra Coucou

    Par contre les scripts te permettent de mettre tout un ensemble de commandes. Par contre quand tu les lances via la commandes F5, en fait tu envoies ton ensemble de commandes au shell python.

    A+

    See++

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 206
    Par défaut
    effectivement,merci beaucoup

    comment définiriez-vous une fonction ligneCar(n, ca) qui renvoie une chaine de n caractères ca ?

  13. #13
    Membre émérite

    Profil pro
    Inscrit en
    Août 2004
    Messages
    723
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 723
    Par défaut
    Tu peux utiliser l'opérateur de multiplication entre une chaîne de caractères et un entier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    def ligneCar(n, ca):
        return ca * n

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 206
    Par défaut test
    effectivement merci beaucoup

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    # -*- coding:cp437 -*-
     
    from Tkinter import *
    from random import randrange
     
    # --- definition des fonctions gestionnaires d' événements : ---
    def drawline():
        "tracé d'une ligne dans le cavenas can1"
        global x1, y1, x2, y2, width=2, fill=coul)
     
        # modification des coordonées pour la ligne suivante :
        y2, y1= y2+10, y1- 1
     
    def changecolor():
        "changement aléatoire de la couleur du travé"
        global coul
        pa1 = ['purple','cyan','maroon','green','red','blue','orange','yellow']
        c = randrange(8)            # => génère un nombre aléatoire de0 à 7
        coul = pal[c]
     
        #--------- programme principal --------
     
        # les variables suivantes seront utilisées de manière globale :
        x1, y1, x2, y2= 10, 190, 190, 10       # coordonnées de la ligne
        coul = 'dark green'                     # couleur de la ligne
     
        # création du widget principal ("maître") :
        fen1 = Tk()
        # création des widgets "esclaves" :
        can1 = Canvas(fen1,bg = 'dark grey',height=200,width=200)
        can1.pack(side=LEFT)
        bou1 = Button(fen1,text='Quitter', command=fen1.quit)
        bou1.pack()
        bou3 = Button(fen1,text='Autre couleur', command=changecolor)
        bou3.pack()
     
        fen1.mainloop()         # démarrage du réceptionnaire d'événements
     
        fen1.destroy()          # destruction (fermeture) de la fenêtre
    visiblement, il y a un problème à partir de , le égal pose problème selon vous ?

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 206
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
     
    # -*- coding:cp437 -*-
     
    from Tkinter import *
    from random import randrange
     
    # --- definition des fonctions gestionnaires d' événements : ---
    def drawline():
        "tracé d'une ligne dans le cavenas can1"
        global x1, y1, x2, y2, coul
        can1.create_line(x1,y1,x2,y2,width=2,fill=coul)
     
        # modification des coordonées pour la ligne suivante :
        y2, y1= y2+10, y1- 1
     
    def changecolor():
        "changement aléatoire de la couleur du travé"
        global coul
        pa1 = ['purple','cyan','maroon','green','red','blue','orange','yellow']
        c = randrange(8)            # => génère un nombre aléatoire de0 à 7
        coul = pal[c]
     
        #--------- programme principal --------
     
        # les variables suivantes seront utilisées de manière globale :
        x1, y1, x2, y2= 10, 190, 190, 10       # coordonnées de la ligne
        coul = 'dark green'                     # couleur de la ligne
     
        # création du widget principal ("maître") :
        fen1 = Tk()
        # création des widgets "esclaves" :
        can1 = Canvas(fen1,bg = 'dark grey',height=200,width=200)
        can1.pack(side=LEFT)
        bou1 = Button(fen1,text='Quitter', command=fen1.quit)
        bou1.pack()
        bou3 = Button(fen1,text='Autre couleur', command=changecolor)
        bou3.pack()
     
        fen1.mainloop()         # démarrage du réceptionnaire d'événements
     
        fen1.destroy()          # destruction (fermeture) de la fenêtre
    pourquoi quand je l'execute ça ne m'affiche absolument rien ?

  16. #16
    Membre émérite

    Profil pro
    Inscrit en
    Août 2004
    Messages
    723
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 723
    Par défaut
    Vu comment c'est indenté, c'est normal, ton programme principal est considéré par l'interpréteur comme contenu dans le corps de la fonction changecolor

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 206
    Par défaut
    effectivement l'indentation pose probleme,je viens de la modifier à l'instant, la fenetre s'ouvre mais il y a encore des erreurs,je vais essayer de les arranger

    pour l'instant le message d'erreur est le suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Exception in Tkinter callback
    Traceback (most recent call last):
      File "C:\Python23\lib\lib-tk\Tkinter.py", line 1345, in __call__
        return self.func(*args)
      File "C:\Python23\defaut.py", line 20, in changecolor
        coul = pal[c]
    NameError: global name 'pal' is not defined

  18. #18
    Expert confirmé
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Par défaut
    le message d'erreur est pourtant clair
    1 != l

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 206
    Par défaut
    ah bon tu vois ça comment dans le message d'erreur toi ?

    effectivement c'est ça,le problème avec la police utilisé par gerard swinnen c'est qu'on confond les l et les 1

    edit: et voila le code qui marche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    # -*- coding:cp437 -*-
     
    from Tkinter import *
    from random import randrange
     
    # --- définition des fonctions gestionnaires d' événements : ---
    def drawline():
        "tracé d'une ligne dans le cavenas can1"
        global x1, y1, x2, y2, coul
        can1.create_line(x1,y1,x2,y2,width=2,fill=coul)
     
        # modification des coordonnées pour la ligne suivante :
        y2, y1= y2+10, y1- 10
     
    def changecolor():
        "changement aléatoire de la couleur du tracé"
        global coul
        pal = ['purple','cyan','maroon','green','red','blue','orange','yellow']
        c = randrange(8)            # => génère un nombre aléatoire de 0 à 8
        coul = pal[c]
     
    #--------- programme principal --------
     
    # les variables suivantes seront utilisées de manière globale :
    x1, y1, x2, y2= 10, 190, 190, 10       # coordonnées de la ligne
    coul = 'red'                     # couleur de la ligne
     
    # création du widget principal ("maître") :
    fen1 = Tk()
    # création des widgets "esclaves" :
    can1 = Canvas(fen1,bg = 'black',height=200,width=200)
    can1.pack(side=LEFT)
    bou1 = Button(fen1,text='Quitter', command = fen1.quit)
    bou1.pack(side=BOTTOM)
    bou2 = Button(fen1,text='Tracer une ligne', command=drawline)
    bou2.pack()
    bou3 = Button(fen1,text='Autre couleur', command=changecolor)
    bou3.pack()
     
    fen1.mainloop()         # démarrage du réceptionnaire d'événements
     
    fen1.destroy()          # destruction (fermeture) de la fenêtre

  20. #20
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 206
    Par défaut
    salut à tous

    j'ai encore une question^^

    comment effacer le canevas ?

    je vous vois deja venir,j'ai cherché et j'ai trouvé ça:

    mais quand je l'inclue dans mon code le message d'ereeur est le suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Exception in Tkinter callback
    Traceback (most recent call last):
      File "C:\Python23\lib\lib-tk\Tkinter.py", line 1345, in __call__
        return self.func(*args)
      File "C:/Python23/defaut2.py", line 23, in effacer
        Canvas.delete(Tk.all)
    AttributeError: class Tk has no attribute 'ALL'
    le code est celui dessus mais j'ai rajouté une fonction définie par et un bouton qui pour commande utilise cette fonction

    avez-vous une idée ?

Discussions similaires

  1. Probleme pour exécuter les scripts avec PythonWin
    Par cicelle dans le forum EDI/RAD
    Réponses: 0
    Dernier message: 24/03/2009, 20h08
  2. Probleme avec la copie des surfaces
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/01/2003, 10h33
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

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