Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2325 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  problème à la compilation

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

problème à la compilation

n°1993415
crapette2
Posté le 16-05-2010 à 11:06:13  profilanswer
 

Bonjour,
 
lorsque je compile mon programme de tracé de trochoides, j'obtiens cette erreur:
  File "C:\Users\Chris\Desktop\spiro2.py", line 95, in fonction
    color = cb_color()
NameError: global name 'cb_color' is not defined
 
et je ne comprends pas du tout pourquoi cb_color n'est pas (ou mal) défini.  
c'est surement une erreur assez bête mais je n'arrive pas à la trouver, si vous pouviez m'aider ce serait très sympa.
Merci d'avance
 

Code :
  1. # ==============================================================================
  2. # Tracé de Trochoïdes
  3. # ==============================================================================
  4. """Tracé de trochoïdes"""
  5. __author__  = "Gaëlle Conte"
  6. __version__ = "1.0"
  7. __date__    = "mai 2010"
  8. # ------------------------------------------------------------------------------
  9. from Tkinter import *
  10. from tkFont import Font
  11. import math
  12. import tkColorChooser
  13. #-------------------------------------------------------------------------------
  14. class debut():
  15.   """crée l'affichage du jeu"""
  16.   def __init__(self):
  17.     self.root
  18.  
  19.   global root
  20.   root = {0: Tk()}
  21.   # ----------------------------------------------------------------------------
  22.   root[1] = Frame(root[0])
  23.   root[1].pack(side=TOP, fill=BOTH)
  24.   root[11] = Frame(root[1])
  25.   root[11].pack(side=LEFT, fill=BOTH)
  26.   root[12] = Canvas(root[1], bg='white',width=500, height=500, relief=SOLID, border=3)
  27.   root[12].pack(side=LEFT, fill=BOTH, expand=YES)
  28. # ------------------------------------------------------------------------------
  29. class choix_util(): 
  30.   def __init__(self,x,y):
  31.     self.x = x
  32.     self.y = y
  33.   root[111]= Frame(root[11])
  34.   root[111].pack(side=TOP, fill=BOTH,pady=5)
  35.   root[1111]=Frame(root[111])
  36.   root[1111].pack(side=LEFT,fill=BOTH,pady=5)
  37.   root[11111]=Label(root[1111],text='position de x')
  38.   root[11111].pack(side=TOP, fill=BOTH,pady=5)
  39.   root[11112] = Scale(root[1111], orient=HORIZONTAL, to=400)
  40.   root[11112].pack(side=TOP, fill=BOTH, expand=YES)
  41.   root[1112]=Frame(root[111])
  42.   root[1112].pack(side=LEFT,fill=BOTH,pady=5)
  43.   root[11121]=Label(root[1112],text='position de y')
  44.   root[11121].pack(side=TOP, fill=BOTH,pady=5)
  45.   root[11122] = Scale(root[1112], orient=HORIZONTAL, to=400)
  46.   root[11122].pack(side=TOP, fill=BOTH, expand=YES)
  47.   # ----------------------------------------------------------------------------
  48.   root[112] = Label(root[11], text='rayon de cercle fixe (1-100)')
  49.   root[112].pack(side=TOP, fill=BOTH,pady=5)
  50.   root[113] = Scale(root[11], orient=HORIZONTAL,from_=1, to=100)
  51.   root[113].pack(side=TOP, fill=BOTH, expand=YES)
  52.   root[114] = Label(root[11], text='deplacement du rayon du cercle (1-100)')
  53.   root[114].pack(side=TOP, fill=BOTH)
  54.   root[115] = Scale(root[11], orient=HORIZONTAL, from_=1, to=100)
  55.   root[115].pack(side=TOP, fill=BOTH, expand=YES)
  56.   root[116] = Label(root[11], text='deplacement de compensation du cercle (1-100)')
  57.   root[116].pack(side=TOP, fill=BOTH)
  58.   root[117] = Scale(root[11], orient=HORIZONTAL, from_=1, to=100)
  59.   root[117].pack(side=TOP, fill=BOTH, expand=YES)
  60.   x = root[11112].get()
  61.   y = root[11122].get()
  62. # ------------------------------------------------------------------------------
  63. class spiro():
  64.   """Zone de dessin"""
  65.   global color
  66.  
  67.   # ----------------------------------------------------------------------------
  68.   def __init__(self,x,y):
  69.     self.pos_x = choix_util(x)
  70.     self.pos_y = choix_util(y)
  71.   # ------------------------------------------------------------------------------
  72.   def cb_color(self, val=None):
  73.     """permet à l'utilisateur de choisir la couleur de la courbe"""
  74.     val=tkColorChooser.askcolor()
  75.     return val
  76.  
  77.   # ----------------------------------------------------------------------------
  78.   def fonction(self, pos=None):
  79.     """ """
  80.     #a = spiro(x)
  81.     #b = spiro(y)
  82.     x = root[11112].get()
  83.     y = root[11122].get()
  84.     color = cb_color()
  85.  
  86.     R, r, O = root[113].get(), root[115].get(), root[117].get()
  87.     if pos is None:
  88.       coords=[]
  89.       for t in range(500):
  90.         coords.append((R+r)*math.cos(t)-O*math.cos(((R+r)/r)*t)+x)
  91.         coords.append((R+r)*math.sin(t)-O*math.sin(((R+r)/r)*t)+y)
  92.       outside_curve=root[11].create_line(coords,fill=color,tag='line',activedash=(2,2))
  93.      
  94.     else:
  95.       coords=[]
  96.       for t in range(500):
  97.         coords.append((R-r)*math.cos(t)+O*math.cos(((R-r)/r)*t)+self.pos_x)
  98.         coords.append((R-r)*math.sin(t)-O*math.sin(((R-r)/r)*t)+self.pos_y)
  99.       inside_curve=root[11].create_line(coords,fill=color,tag='line',activedash=(2,2))
  100.      
  101.   # ------------------------------------------------------------------------------
  102.   def cb_delete():
  103.     """supprime tous les dessins dans la fenetre"""
  104.     root[11].delete(root[11],'line')
  105.   root[118] = Frame(root[11])
  106.   root[118].pack(side=TOP,fill=BOTH,expand=YES)
  107.   root[1181] = Button(root[118], text='déplacement intérieur',command = fonction(True))
  108.   root[1181].pack(side=LEFT, fill=BOTH, expand=YES,pady=5,padx=5)
  109.   root[1182] = Button(root[118], text='déplacement extérieur',command = fonction(False))
  110.   root[1182].pack(side=LEFT, fill=BOTH, expand=YES,pady=5,padx=5)
  111.   root[119] = Button(root[11], text= 'effacer', command=cb_delete)
  112.   root[119].pack(side=TOP, fill=BOTH,padx=5,pady=2)
  113.      
  114. # ==============================================================================
  115. if __name__ == '__main__': # testcode de la classe spiro
  116.   # ----------------------------------------------------------------------------
  117.   root=debut()
  118.   root.title('Trace de Trochoides')
  119.   root.protocol('WM_DELETE_WINDOW', root.quit)
  120.   root.minsize(root.winfo_width(), root.winfo_height())
  121.   root.resizable(1,1)
  122.   root.mainloop(); root.destroy()
  123. # ==============================================================================

mood
Publicité
Posté le 16-05-2010 à 11:06:13  profilanswer
 

n°1993449
sircam
I Like Trains
Posté le 16-05-2010 à 17:07:38  profilanswer
 

Tu aimes bien les cross-posts avec developpez.net on dirait...
 
1. Comment fais-tu pour compiler?
2. File "C:\Users\Chris\Desktop\spiro2.py", line 95, in fonction : comment veux-tu qu'on voit la ligne 95?
3. Pourquoi ne commencer par réduire la portée du problème? Il n'est pas nécessaire de balancer 138 lignes qui polluent la lecture alors que seules 2 ou 3 lignes sont pertinentes! Ah oui, ça demande un peu d'effort de ta part.
 
Un indice : cb_color() sans paramètres n'est pas définie.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1993450
crapette2
Posté le 16-05-2010 à 17:14:16  profilanswer
 

Ce n'est pas que j'aime ça, c'est juste que c'est un projet que je dois rendre demain et que jusqu'à présent je n'ai pas réussi à trouver la solution. et si je n'ai pas réduit le code c'est justement pour que la personne qui voudrait bien m'aider puisse voir d'où vient le problème. je ne sais pas quelles lignes enlever puisque je ne sais pas d'où vient le problème.
pour compiler je ne sais pas trop, je me sers de idle donc j'ai juste à appuyer sur f5... (je suis débutante en programmation et je n'ai pas trop de connaissances dans ce domaine)
 
et c'est justement ton indice qui est mon problème. cb_color est censé être un nom de fonction donc je ne vois pas comment la définir autrement que comme une fonction.

n°1993451
crapette2
Posté le 16-05-2010 à 17:16:35  profilanswer
 

pour le File "C:\Users\Chris\Desktop\spiro2.py" c'est justement le code que j'ai donné. et la ligne 95 est
color=cb_color()

n°1993454
sircam
I Like Trains
Posté le 16-05-2010 à 17:24:04  profilanswer
 

crapette2 a écrit :

Ce n'est pas que j'aime ça, c'est juste que c'est un projet que je dois rendre demain et que jusqu'à présent je n'ai pas réussi à trouver la solution.


Mauvaise attitude, mais ce n'est de toute façon pas pertinent.
 

crapette2 a écrit :

et si je n'ai pas réduit le code c'est justement pour que la personne qui voudrait bien m'aider puisse voir d'où vient le problème. je ne sais pas quelles lignes enlever puisque je ne sais pas d'où vient le problème.


Justement, c'est ça le but de l'opération!
 

crapette2 a écrit :

pour compiler je ne sais pas trop, je me sers de idle donc j'ai juste à appuyer sur f5... (je suis débutante en programmation et je n'ai pas trop de connaissances dans ce domaine)


Tu n'as pas l'air de vraiment comprendre ce que tu fais. Et as-tu la volonté de comprendre si ton but n'est que de rendre ton projet pour demain?


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  problème à la compilation

 

Sujets relatifs
Probleme Compilation gccProblème de compilation gcc / Repertoires 'include' pas trouvés
[XML] probleme de compilation dans libxml2[Resolu]Problème de compilation API MYSQL
Problème de link étrangeProblème compilation serveur CORBA
[Py2exe] Problème de compilationProbleme de compilation avec les template
Problème de compilation avec kwriteproblème de compilation avec le main
Plus de sujets relatifs à : problème à la compilation


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR