Comment trouvez vous ce code ? [résolus] - Python - Programmation
Marsh Posté le 06-06-2004 à 20:48:17
l'algo me parait foireux
non il est pas très clair, et sans doute trop compliqué : déjà je comparerait pas plages plutot que par caractère. on s'y perds en plus avec tout ce que tu fais avec str QUI EST UN MOT RESERVE D'AILLEURS . et pas la peine d'utiliser le module string "minuscule".upper() et voilà et surtout, le ferait un "chaine".split('.') et pour chaque morceau sauf le premier, je mets l'espace et la majuscule, et après je ".".join(..)
Marsh Posté le 06-06-2004 à 22:05:13
mets ton code dans les balises de code du forum, splulisiblecommeca
Marsh Posté le 06-06-2004 à 22:08:05
Ouais c'est vrai qu'il est pas trés clair, je l'ai fait à l'arrache, mais ca marche.
Ceci dis, je vois pas ce qu'est une plage et comment faire pour programmer ça ?
Je vais modifié le "str" de suite bien que cela ne met pas posé de problème jusqu'à présent.
Bon le "sting".join() si j'ai bien compris c'est pour joindre deux listes??? Or je voulais éviter de travailler avec des listes et rester avec des chaines. Et le "chaine".split('.') c'est quoi je l'ai pas trouvé dans la doc que j'ai. Ca rajoute le "." ???
Bon d'accord j'ai pas trop chercher mais vus que je suis pas trop anglophone, le nombre de site est vite limité... Si vous en avez des bon avec une doc costaud. Merci
En fait je n'est pas compris la nuance, à par ne pas utiliser string.upper("..." ) mais seulement upper("..." ).
Je vous remercie d'avance de votre pascience .
Marsh Posté le 06-06-2004 à 22:09:24
Pour les balise de code c'est comment ? Elles n'y sont pas sur la boite à outil.
Marsh Posté le 06-06-2004 à 22:12:44
c'est à codé des balises de gras, italique et compagnie quand tu post
Marsh Posté le 06-06-2004 à 23:28:51
OK c'est rectifié. Merci
Marsh Posté le 07-06-2004 à 00:10:26
Voila j'ai rectifié ce que j'ai compris, pour le reste il faudra un peu plus d'explication ou de temp.
Code :
|
J'espere que vous parvenez à lire le code,si il est trop foireux je peux le commenter encore.
Marsh Posté le 07-06-2004 à 08:26:45
t'es commentaires sont foireux et flingue la lisibilité. et tu n'as pas applicuqé que ce que je t'ai dit
Marsh Posté le 07-06-2004 à 09:41:08
Ok rectification pour les commentaire (moi on m'avais dis d'en mettre...)
Mais pour le reste je n'est pas compris donc je peux pas faire de modification. C'est pas de la mauvaise volonté.
J'ai quand même commencé un autre algorytme, je le poste dés que possible.
Marsh Posté le 07-06-2004 à 12:47:49
lascapi a écrit : Ok rectification pour les commentaire (moi on m'avais dis d'en mettre...) |
"chaine".split('.'), ca permet de creer une liste de strings en creant un nouveau string a chaque fois que le caractere '.' est rencontre dans "chaine".
"#".join(liste), ca te rend la concatenation de tous les strings presents dans la liste, avec la chaine "#" entre chacun des objets (c'est l'inverse de split quoi)
Pour les docs, Python a un truc vachement bien fait, les docstrings.
Si tu veux vraiment te simplifier la vie, telecharges wxPython (s'facile a trouver), et lance pyCrust, ensuite pour voire les fonctions relatives aux chaines tu tapes
>>> "".
et ca va derouler un menu avec tous les membres des strings, ensuite tu en selectionne un, tu ajoutes une parentheses et tu lis le DOCSTRING
tu peux faire ca de maniere plus propre (la c'est un peu porc), mais ca ca te permet de tester la fonctionalite au passage
Marsh Posté le 07-06-2004 à 14:47:10
Super,merci Masklinn.
J'ai compris comment ca marche. J'ai même réecris le code , mais maintenant cela m'enleve les points et ne me mets pas de majuscule donc il faut que je le retravail.
Voici le code
Code :
|
C'est vrai que c'est plus clair.
edit : en fait j'ai trouvé comment remettre les points, trop simple, il ne me reste plus que les majuscules...
Marsh Posté le 07-06-2004 à 17:34:51
Je pensez faire une boucle du genre :
Code :
|
Mais une telle boucle ne change rien
Comment faire... telle est la question.
Marsh Posté le 07-06-2004 à 18:47:58
bonjour,
lascapi a écrit : Je pensez faire une boucle du genre :
|
premierement tu fais une boucle sur une copie des éléments de ta liste mais pas sur la liste elle-même, utilise par exemple :
Code :
|
il y a sans doute d'autres méthodes.
deuxiemement si ta chaine ne doit comporter qu'une capitale et des miniuscules ensuite tu peux utiliser la méthode capitalize des chaines.
Lionel
Marsh Posté le 07-06-2004 à 18:58:33
C'est bien ce que je pensais, il y avait un bug dans ma boucle, je l'ai donc completé :
Code :
|
La, ça marche, mais il y a un cas ou ça ne marche pas, c'est quand il y a deja un espace entre le point et la lettre suivante... C'est normal vus qu'il met l'espace en majuscule et pas la lettre. Il faut donc je pense faire une autre boucle mais je n'ai pas encore l'idée.
En tout cas merci le_Glu pour ton exemple clair et précis je vais le tester de ce pas, mais quand même, j'ai encore une petite question :
la "méthode capitallize des chaines" ce n'est pas upper() ?
Qu'apporte telle de plus ?
Mince ne répondez pas tous de suite il faut d'abord que j'aille voir sur la doc par moi même
edit : j'ai remplacé list par listech.
Sorry Taz
Marsh Posté le 07-06-2004 à 20:48:29
Ha mince encore.
Ou peut-on voir les mots reservés (et à quoi ça sert vus que même si je les utilise "autrement" ça marche)?
Je rectifie ça immédiatement.
Marsh Posté le 07-06-2004 à 20:53:43
Et en francais ?
Je suis peut-etre ch.;:,:t mais je m'excuse je ne suis pas encore anglophone, d'où incompréhension du site qui est en anglais.
Marsh Posté le 07-06-2004 à 20:55:58
ben t'achète un livre ou tu utilise un éditeur qui te mets les mots réservés d'une couleur spéciale
Marsh Posté le 07-06-2004 à 21:45:28
Ok bon conseil. Mais en attendant je n'est rien trouver, j'ai même chercher sur python.org... mais si je n'ai rien trouvé la c'est que je ne lis pas l'anglais...
Marsh Posté le 08-06-2004 à 10:39:27
ditto
Faire de la programmation sans comprendre l'anglais c'est du suicide, parce que 99.9% des docs, exemples et bases de connaissances sont en anglais et que la majorite des langages se basent sur l'anglais pour la creation de leurs commandes/items
Marsh Posté le 08-06-2004 à 18:58:11
bonjour,
lascapi a écrit : |
la méthode capitalize met la premiere lettre d'une chaine en majuscule et
toutes les autres en minuscules.
le_Glu
Marsh Posté le 10-06-2004 à 14:42:55
Ouah c'est super simple, Je vais essayé de le finir cet aprem, comme ca je pourrai me consacré entièrement au Bac...
En tout cas merci a tous, c'est à dire à :
Masklinn
Taz
le_GLu
Masklinn
Burgergold
Et je voulais félicité particulièrement le_Glu pour ses explications claire et aimable.
Bon pour le "Prog final" je le fait et .... et voila quoi : |
; )
edit : oups Masklinn y est deux fois....Alors je rajoute les autres ; Merci encore à Taz,le_Glu, et Burgergold
Marsh Posté le 10-06-2004 à 16:47:39
Voila, j'ai profité de la retouche pour rajouter deux boucles qui enlèvent les espaces de trop avant et après le point.
Code :
|
Voila...
Je suis contant , j'ai écris mon premier programme avec Python...
Maintenant il ne me reste qu'a faire l'interface graphique. Quel environement conseillez-vous pour programmé sous Mac OS X ???
Marsh Posté le 10-06-2004 à 16:59:54
Qu'est-ce qui a de drole????
edit : en tout cas j'aime trop ce smiley mortderire
Marsh Posté le 10-06-2004 à 17:25:34
Un peu complique ton prog quand meme, t'es sur qu'il fonctionne?
enfin bon.
commentaires
pas besoin d'importer la lib string si tu ne l'appelles pas, faire "".upper() ca marche sans rien importer.
str est un string, donc au lieu de faire string.upper(str) tu peux faire str.upper(). Code plus clair et moins de possibilites de conneries
Code :
|
Une chaine vide, comme tout objet python vide, est considere comme faux au niveau booleen, tu peux donc remplacer par
Code :
|
mais bon c'est pas tres important
Code :
|
remplace par
Code :
|
Ca fait la meme chose (1ere lettre en maj le reste en minuscules)
Ensuite on vire tous les espaces presents en plus d'1 exemplaire:
Code :
|
Marsh Posté le 10-06-2004 à 22:47:26
Encore des révélation, c'est trop bien, je retient surtout la dernière astuce qui me fera économiser 4 lignes de codes, pour la str.capitalize() je l'ai corrigé, pour l'astuce de la chaine vide, je retient mais pour plus tard quand je serai habitué à ce concept.
Marsh Posté le 10-06-2004 à 23:11:03
WaOUh, c'est trop bien la programmation, surtout quand on est aider par des boss
Bon j'espere que maintenant tout le monde sera contant :
Code :
|
Voila ce que je pense à l'heure actuel (il est 23h04) le plus "beau" code possible pour faire ce que je lui demande de faire.
C'est trop bien de programmer, ceci dis je repose ma question : Pour programmer l'interface... quel environement prendre (sous Mac Os X ; je ne sait pas si ca change quelque chose...) ???
Edit : Voici le résultat du programme
Code :
|
Marsh Posté le 11-06-2004 à 13:39:25
GUI: je te recommandes wxPython
C'est tres simple, facile a programmer meme sans RAD, et compatible Windows, Mac et *nix.
En plus, l'allure des programmes est parfaitement semblables aux programmes "natifs": lancer un programme wxPython sous windows donne l'impression de lancer un programme windows, mais le lancer sous MacOS donne l'impression de lancer un programme specialement fait pour Mac
(wxPython est un port sous Python de wxWindows/wxWidgest, GUI multiplateformes C/C++)
Marsh Posté le 11-06-2004 à 14:05:42
# ce programme test une chaine et met un espace et
# une majuscule apres un point ET VIRE LES AUTRES
c'est vrai que resoudre un pb en modifiant son énoncé est pratique
Marsh Posté le 12-06-2004 à 09:47:07
Salut lascapi, tu as bien progressé dans ton code, mais ...
Il peut peut etre encore plus "beau" et en une seule ligne ..
Code :
|
allez,
a+
Eric
Marsh Posté le 12-06-2004 à 17:16:16
RereWaouh Merci pour wxPython, je m'y met de suite.
Et merci pour LA ligne de code ; ça me rappel les fonctions Lambda ou quelque chose comme ca ??? En tout cas j'essaye de comprendre et je change ça : )
Marsh Posté le 02-07-2004 à 10:09:24
Et que pensez vous de Tkinter ?
Marsh Posté le 02-07-2004 à 11:17:09
lascapi a écrit : Et que pensez vous de Tkinter ? |
Pour faire un truc simple (une fenêtre, 2-3 boutons...), ça va. Mais si ton appli est plus conséquente, ça rame trop.
Je m'en suis servi pour des petites applis (en Tcl ou en Python). L'avantage c'est que Tkinter est très simple à utiliser donc pratique pour faire des prototypes...
Marsh Posté le 02-07-2004 à 12:08:32
Bon ptite question. Suite à ce topic je me suis dit utilisons les regex. J'ai trouvé la correspondance mais je n'arrive pas à effectuer le remplacement en utilisant les références arrières
Voici un truc qui tourne:
Code :
|
Lors du remplacement je remets ce que j'ai trouvé pour pas que ça plante.
Et moi je travaille sur ce code mais je bloque:
Code :
|
Mais j'ai des erreurs, il me dit que r'\1' est une string mais elle contient pas ce que j'attends bref je vois pas trop.
Marsh Posté le 06-06-2004 à 20:07:25
Bonjour je viens de finir mon premier micro programme en python et j'aimerais avoir l'avis de programmeurs expérimentés.
Voici le code :
Pensez-vous que j'ai utillisé les meilleures methodes, le code est-il clair?
Message édité par lascapi le 02-07-2004 à 12:21:22
---------------
Evoluons bien, mais surtout : trouvons la vérité ...