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

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
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

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
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]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
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])


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
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]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
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]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
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