un probleme dans mon code ?

un probleme dans mon code ? - Python - Programmation

Marsh Posté le 11-03-2007 à 02:34:52    

bonjour,apparemment le code suivant est incorrect (3ème ligne).
mais je ne vois pas l'erreur,auriez vous une idée ?
 

Code :
  1. print "ce script recherche le plus grand de trois nombres"
  2. print "veuillez entrer trois nombres séparés par des virgules :"
  3. nn = list(input())
  4. max,index = nn[0], 'premier'
  5. if nn[1] > max:
  6.     max=nn[1]
  7.     index='second'
  8. if nn[2] > max:
  9.     max=nn[2]
  10.     index= 'troisieme'
  11. print "le plus grand nombre de ces nombres est", max
  12. print "ce nombre est le", index, "de votre liste."


 
merci d'avance :)

Reply

Marsh Posté le 11-03-2007 à 02:34:52   

Reply

Marsh Posté le 11-03-2007 à 02:58:08    

tant qu'on y est,sauriez -vous comment traduire la formule de gravitation en langage python,qui est la suivante:
 
http://pix.nofrag.com/be/7b/0ed7ae [...] d0c8d.html
 
sachant que m=a, m'=b et d²=c²
 
j'ai essayé
 

Code :
  1. 6.67**-11*(a*b)/(c**2)


 
mais visiblement c'est faux :(


Message édité par scheme le 11-03-2007 à 03:00:26
Reply

Marsh Posté le 11-03-2007 à 10:41:05    

scheme a écrit :

bonjour,apparemment le code suivant est incorrect (3ème ligne).
mais je ne vois pas l'erreur,auriez vous une idée ?
 

Code :
  1. print "ce script recherche le plus grand de trois nombres"
  2. print "veuillez entrer trois nombres séparés par des virgules :"
  3. nn = list(input())
  4. max,index = nn[0], 'premier'
  5. if nn[1] > max:
  6.     max=nn[1]
  7.     index='second'
  8. if nn[2] > max:
  9.     max=nn[2]
  10.     index= 'troisieme'
  11. print "le plus grand nombre de ces nombres est", max
  12. print "ce nombre est le", index, "de votre liste."


     
merci d'avance :)


1. Il ne faut pas utiliser input(), jamais, utiliser raw_input à la place et convertir manuellement
2. C'est bien compliqué pour ce que tu veux faire... Python a une fonction max :o

Code :
  1. print "Saisir 3 nombres séparés par des virgulles"
  2. str_numbers = raw_input(">> " ).split("," ) # on récupère une liste de chaînes de caractères
  3. numbers = map(int, str_numbers) # qu'on transforme en une liste d'entiers
  4. print "Le plus grand des nombres est %d à l'index %d de la liste"%(max(numbers), numbers.index(max(numbers))


 
Pour l'autre truc...

Code :
  1. def gravitational_force(mass1, mass2, distance):
  2.    G = 6.6742**-11
  3.    return G * (mass1 * mass2) / distance**2


Message édité par masklinn le 11-03-2007 à 10:53:09

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
Reply

Marsh Posté le 11-03-2007 à 13:23:10    

merci beaucoup de m'avoir répondu :)
 
pour le premier code,ce n'est pas le mien,c'est celui d'un tutorial qui me permet d'apprendre ce langage.L'auteur avait mis input,ça ne marchait pas ,avec raw_input ça ne marche pas non plus,et ton code encore moins^^
 
pourtant je pense qu'il est bon,c'est ptet jext qui plante je sais pas trop :s en tout cas il dit qu'il y a une erreur a la troisieme ligne
 
merci beaucoup pour le deuxieme code :)

Message cité 1 fois
Message édité par scheme le 11-03-2007 à 13:23:43
Reply

Marsh Posté le 11-03-2007 à 13:49:20    

scheme a écrit :

pour le premier code,ce n'est pas le mien,c'est celui d'un tutorial qui me permet d'apprendre ce langage.L'auteur avait mis input,ça ne marchait pas ,avec raw_input ça ne marche pas non plus,et ton code encore moins^^


[:petrus dei]

 

Le seul truc ne fonctionnant pas dans mon code est que j'ais oublié de fermer une parenthèse en recopiant le code depuis IDLE [:petrus75]

 

Et input() est à éviter pour des raisons de sécurité


Message édité par masklinn le 11-03-2007 à 13:49:50

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
Reply

Marsh Posté le 11-03-2007 à 13:51:05    

c'est ptet la parenthese qui fait planter qui sait^^
 
ok pour input :)


Message édité par scheme le 11-03-2007 à 13:51:35
Reply

Marsh Posté le 11-03-2007 à 22:51:11    

comment définiriez-vous une fonction ligneCar(n, ca) qui renvoie une chaine de n caractères ca ?
 
ma question peut paraitre idiote et me faire passer pour un newbie (ce que je suis) mais j'aimerais bien avoir la réponse quand meme^^

Reply

Marsh Posté le 11-03-2007 à 23:13:17    

J'ai pas compris la question [:petrus75]
 
Et accessoirement, on est pas censé faire les devoirs des gens [:petrus75]


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
Reply

Marsh Posté le 11-03-2007 à 23:18:27    

j'ai réécrit la question telle qu'elle est posée^^
 
en fait j'ai trouvé la réponse:
 

Code :
  1. def ligneCar(n, ca):
  2.     return n * ca


 
c'était pas trop dur en fait  :sol:


Message édité par scheme le 12-03-2007 à 00:15:45
Reply

Marsh Posté le 21-03-2007 à 20:39:11    

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


 
pourquoi quand je l'execute ça ne m'affiche absolument rien ? ^^


Message édité par scheme le 21-03-2007 à 22:10:08
Reply

Marsh Posté le 21-03-2007 à 20:39:11   

Reply

Marsh Posté le 21-03-2007 à 21:36:46    

Je sais pas, ptet parce que tu ne lui demandes jamais de se lancer [:pingouino]
 
(ah et accessoirement j'adore tes nommages, c'est tout de suite plus clair [:bien])


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
Reply

Marsh Posté le 21-03-2007 à 21:55:56    

ce code ne m'appartient pas, il fait partie du tutorial que j'apprends
 
bon alors question tres conne: comment faire pour lui demander de se lancer svp ?  :ange:

Reply

Marsh Posté le 21-03-2007 à 21:57:55    

Je sais pas, tu pourrais essayer d'appeler la fonction changecolor(), ou encore mieux tu pourrais essayer d'indenter correctement la partie marquée "programme principal" [:el g]


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
Reply

Marsh Posté le 21-03-2007 à 22:05:34    

ben je crois qu'il est correctement indenté lol^^
 
je vois pas ce qui pourrait amener à une indentation dans cette partie, toi si ?
 
je vais essayer pour changecolor()

Reply

Marsh Posté le 21-03-2007 à 22:11:52    

scheme a écrit :

ben je crois qu'il est correctement indenté lol^^


Pas vraiment non, l'indentation correcte est celle ci:

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


[:pingouino]


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
Reply

Marsh Posté le 21-03-2007 à 22:23:51    

ah oui effectivement  :p  
 
merci,la une fenetre s'ouvre  :D
 
ya d'autres problème dans mon code,je vais essayer de les arranger..
 
merci d'avoir répondu  aussi vite :)

Reply

Marsh Posté le 21-03-2007 à 22:55:20    

voila le code final qui marche :)
 

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


Message édité par scheme le 21-03-2007 à 23:14:44
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed