Affiche Cette Lire De Essayer Meaning

Sur cette page, vous pouvez

  1. débattre des outils à ajouter
  2. rapporter un problème avec un outil donné (voir aussi Projet:JavaScript)

Pour le mode d'emploi des gadgets voir les pages

Résumé Deluxe[modifier le code]

Bonjour! Tout d'abord bravo pour cette initiative, c'est franchement convivial et dans le pire des cas, "dummy proof"! Bravo LeKorrigan pour cette initiative. Comme première discussion, je me demandais s'il était possible d'ajouter le non moins pratique script de Dake (d · c · b), MediaWiki:JSScripts/ResumeDeluxe... En même temps, peut-être ajouter quelques commentaire prédéfinis comme "homonymie" et "ajout du bandeau", etc... Merci et félicitation encore pour innovation! Au plaisir, Antaya   15px 19 novembre 2007 à 12:16 (CET)

C'est Dusentrieb qu'il faut remercier, c'est lui l'auteur de l'extension. Pour ResumeDeluxe, par de soucis, mais comme je ne l'utilise pas je ne sais quels commentaires sont les plus utiles par défaut. Note qu'un inconvénient des gadgets est qu'il impossible de les personnaliser actuellement. le Korrigan→bla 19 novembre 2007 à 12:21 (CET)
Ajouté, avec les commentaires par défaut. le Korrigan→bla 20 novembre 2007 à 16:18 (CET)
Merci ! Ce serait bien éventuellement pouvoir ajouter des commentaires de résumé personnalisés, soit par le monobook, soit par un champ pour ajouter des mots, séparés par une virgule... ce qui est entre les virgules pourrait s'insérer à la suite des commentaires prédéfinis.
Aussi, je me demandais si l'on pourrait mettre des liens à côté des fonctions [Capture d'écran] pour voir l'effet de chacune des fonctions. Sur Commons, on pourrait créer dans Category:Screenshots, une sous-section Commons:Category:Gadget-fr? Ce que j'aimais bien dans le Projet:Javascript, c'était les captures d'écran qui montraient à quoi s'attendre! Au plaisir, Antaya   15px 21 novembre 2007 à 14:46 (CET)
Pour la personnalisation, voir la discussion plus bas avec Sanao : Duesentrieb (l'auteur de l'extension Gadgets) dit que ce n'est pas possible, Sanao essaie quand même.
Pour les captures d'écran, mieux vaut ne pas les inclure dans la page des préférences (trop lourd et je doute que ça marche). Par contre, si tu es motivé, une page d'aide Aide:Gadgets serait assez chouette : pour présenter chaque gadget, avec capture d'écran, expliquer que pour aller plus loin il faut utiliser le monobook, etc. Perso je n'aurai pas le temps de le faire, désolé. le Korrigan→bla 21 novembre 2007 à 15:04 (CET)
  • Je m'en charge sans problème; maintenant pour les captures d'écran, je ne voulais pas dire des images dans la page de préférences, mais uniquement un lien du type : [exemple] où l'on montre ce que le gadget fait dans la page... Et j'ai confiance en Sanao pour essayer fort la personnalisation. Au plaisir, Antaya   15px 21 novembre 2007 à 16:15 (CET)
Ach so ! Dans ce cas pas de problème... le Korrigan→bla 21 novembre 2007 à 17:07 (CET)
Pour les captures d'écran, tu serais motivé pour les faire et les mettre sur Commons ? :-) le Korrigan→bla 22 novembre 2007 à 01:19 (CET)

Question[modifier le code]

Je sais, j'ai qu'à expérimenter, mais je voudrais poser la question quand même. Que se passe-t-il lorsque le monobook et le gadget correspondant sont activés en même temps ? Merci, Moezm'écrire 19 novembre 2007 à 14:33 (CET)

Rien de bon Au mieux il ne se passe rien. Sinon tu risques de voir ton gadget en double, de plus le voir du tout, ou pire que tous tes gadgets soient KO. Le mieux est vraiment de supprimer de ton monobook les gadgets que tu actives. --Zelda 19 novembre 2007 à 15:04 (CET)
M'en doutais -_- merci de ta réponse Moezm'écrire 19 novembre 2007 à 17:07 (CET)

Flèche pour retour en haut de page[modifier le code]

Plusieurs fois sur la guilde et une fois sur le bistro, j'ai vu des utilisateurs voulant ajouter une flèche vers le haut de la page à chaque section. Ce serait peut-être utile donc de l'insérer Ix₪ayYo 19 novembre 2007 à 18:13 (CET)

OK. Si tu me donnes un code JavaScript ou CSS pour ça, je veux bien, car moi je n'ai aucune compétence pour le programmer :-) le Korrigan→bla 19 novembre 2007 à 18:20 (CET) (P.S. à ces utilisateurs, on répondait systématiquement "appuyez sur le touche "Début" de votre clavier...)
Merci , voilà le codeIx₪ayYo 19 novembre 2007 à 18:44 (CET)
C'est ajouté. le Korrigan→bla 20 novembre 2007 à 16:12 (CET)

Barre d'outils[modifier le code]

Bonjour Le Korrigan, est-il possible d'ouvrir une nouvelle section dans les gadgets pour les boutons-pression tels que MediaWiki:JSScripts/DeluxeBar et d'autres barres de boutons-pression qui viendront sûrement... J'ai fait une demande aux administrateurs pour réduire le nombre de boutons (comme mediawiki par exemple) afin qu'on puisse paramétrer la ou les boutons que nous voulons. J'arrive aussi avec une barre de boutons-pression pour les discussions (voir la capture d'écran ci-contre). Merci à l'avance et au plaisir, Antaya   15px 20 novembre 2007 à 11:46 (CET)

J'ai ajouté la DeluxeBar. le Korrigan→bla 20 novembre 2007 à 16:27 (CET)
Merci , c'est très fantasmagorique! Et puis parce que j'ai de la suite dans les idées, pourrais-tu créer MediaWiki:JSScripts/BoutonsContribution.js et y mettre le script des boutons qui sont actuellement par défaut dedans? Et ce gadget, peut-il être coché par défaut pour les nouveaux inscrits? Car éventuellement, ce serait bien de pouvoir réduire les boutons par défaut à la plus simple expression! Parce que j'ai 44 boutons avec les deux gadgets (sourçage et vandales) + mes persos... Dis-moi ce que tu en penses. Au plaisir, Antaya   15px 20 novembre 2007 à 16:51 (CET)
Je peux ajouter ces boutons (plus tard ce soir), mais on ne peut activer par défaut un script ; ou plutôt si, on peut le mettre dans MediaWiki:Common.js. Pour réduire le nombre de boutons, tu peux désactiver la barre d'outils (je l'ai fait car mon écran est assez petit, et je tourne aux raccourcis-clavier) :-) Plus sérieusement, n'actives pas les outils supplémentaires, c'est plus simple. le Korrigan→bla 20 novembre 2007 à 22:13 (CET)

Non prise en compte d'un gadget[modifier le code]

Salut à tous,

Je viens d'ajouter un gadget (MediaWiki:Gadget-AjoutBoutonSource et MediaWiki:Gadget-AjoutBoutonSource.js) permettant d'ajouter cinq boutons facilitant le sourçage d'un article. Mais le gadget n'a pas l'air d'être pris en compte. J'ai pourtant modifié la page MediaWiki:Gadgets-definition en conséquence.

Quelqu'un a une idée du problème? Sanao 20 novembre 2007 à 13:45 (CET)

Chez moi ça fonctionne bien, je vois 5 nouveaux boutons! Mais j'hallucine à quel point ces gadget faciliterons la vie de plusieurs utilisateurs, c'est super. Est-ce possible d'ajouter une nouvelle section "Bouttons-pression" pour ajouter quelques scripts de bouttons? Au plaisir, Antaya   15px 20 novembre 2007 à 13:55 (CET)
Maintenant je les vois dans mes préférences. Il doit y avoir un temps d'attente avant de voir les gadgets apparaître dans ses préférences.
Contant que cela te plaise. Moi en tout cas, je les utilise depuis plusieurs mois et il me font gagner un temps fou!
Je vais faire une annonce sur le Bistro. Sanao 20 novembre 2007 à 14:01 (CET)
Une fois que tu as modifié MediaWiki:Gadgets-definition, il faut faire un dummy edit (une sauvegarde supplémentaire, sans rien modifier) pour que les changements apparaissent dans Special:Gadgets. Un truc de cache, j'imagine. le Korrigan→bla 20 novembre 2007 à 14:34 (CET)

Super, merci pour la section! Vous allez me trouver pointilleux, mais la section se nomme "<gadget-section-Boutons>", mais je la nommerais plutôt "Boutons-pression de la barre d'outils", "Boutons d'édition" (avec majuscules et sans <>), ou quelque chose comme ça. C'est grammaticalement plus correcte et le mot gadget ne reviendrait pas aussi souvent. Est-ce possible aussi d'ajouter le script de Dake : MediaWiki:JSScripts/DeluxeBar. Merci beaucoup! --Antaya   15px 20 novembre 2007 à 15:49 (CET)

Corrigé. Sanao, il faut toujours consulter Special:Gadgets pour vérifier qu'il ne reste pas des liens rouges, en l'occurrence MediaWiki:Gadget-section-Boutons :-) le Korrigan→bla 20 novembre 2007 à 16:00 (CET)
Super, tout fonctionne! Les deux scripts de boutons, les messages prédéfinis, les flèches #top... c'est super convivial tout ça, je trippe ben raide! Merci Koko! --Antaya   15px 20 novembre 2007 à 16:38 (CET)

[modifier le code]

Bravo l'ajout aux préférence démocratise considérablement l'adoption de ces améliorations est-il possible d'ajouter dans les gadgets ,

  • wikiEd est très au point et utilisée par plus d'un millier de wikipediens. Pour l'instant elle est maintenue et traduite par Leag. l'extension est vraiment puissante : wikification automatique, prévisualisation sans charger le serveur
  • autre gadget très fort popups permet notamment de voir les diff de sa liste de suivi rien qu'en laissant un instant sa souris dessus. Là aussi outre l'ergonomie incontestable on réduit une charge serveur qui pose parfois bien des problèmes !
  • enfin les Bouton-pression Deluxe pour discussions par Antaya dès qu'ils seront stabilisés.

--Ofol(moi . ) 20 novembre 2007 à 21:43 (CET)

Pour les "boutons pressions" (que j'ai appellé "boutons de vote"), voilà une fonction qui reprend les boutons de Antaya. Comme je viens juste de la faire, c'est à tester. Il suffit juste de recopier le code ci-dessous dans son monobook JS :

code

 

functioncreerBoutonsVote(){varmessages_debut=newArray();varmessages_fin=newArray();varimages=newArray();varcommentaires=newArray();with(messages_debut){push("");push("");push("");push("");push("");push("");push("");push("");push("");push("");}with(messages_fin){push("#{{conserver}} ~~~~");push("#{{supprimer}} ~~~~");push("#{{neutre}} ~~~~");push("#{{réticence}} ~~~~");push("#{{rediriger}} ~~~~");push("#{{VoteFusionner}} ~~~~");push("#{{pourBA}} ~~~~");push("#{{attendre}} ~~~~");push("*{{fait}} ~~~~");push("*{{non}} ~~~~");}with(images){push("http://upload.wikimedia.org/wikipedia/commons/c/c8/Button_conserver2.png");push("http://upload.wikimedia.org/wikipedia/commons/0/00/Button_supprimer.png");push("http://upload.wikimedia.org/wikipedia/commons/1/1d/Button_neutre2.png");push("http://upload.wikimedia.org/wikipedia/commons/4/4d/Button_reticence.png");push("http://upload.wikimedia.org/wikipedia/commons/5/5f/Button_rediriger.png");push("http://upload.wikimedia.org/wikipedia/commons/4/4a/Button_fusionner.png");push("http://upload.wikimedia.org/wikipedia/commons/d/de/Button_bon_article.png");push("http://upload.wikimedia.org/wikipedia/commons/3/3f/Button_attendre.png");push("http://upload.wikimedia.org/wikipedia/commons/4/4e/Button_fait2.png");push("http://upload.wikimedia.org/wikipedia/commons/5/5e/Button_non.png");}with(commentaires){push("Conserver");push("Supprimer");push("Neutre");push("Réticence");push("Rediriger");push("Fusionner");push("Bon article");push("Attendre");push("Fait");push("Non");}if(document.createTextNode){if(document.getElementById("toolbar")){for(varcpt=0;cpt<messages_fin.length;cpt++){addButton(images[cpt],commentaires[cpt],messages_debut[cpt],messages_fin[cpt],"","");}}}}addOnloadHook(creerBoutonsVote);
Si vous avez des suggestions avant de passer le tout en gadget, n'hésitez pas. Sanao 20 novembre 2007 à 21:56 (CET)
Pour éviter de surcharger l'écran de boutons inutiles, j'ai dans l'idée de n'afficher ces boutons que pour les pages où ils sont pertinents :
Vous en pensez quoi?
On pourrait faire la même chose pour les boutons de sourçage qui sont actuellement en gadgets. Sanao 20 novembre 2007 à 22:04 (CET)

Article détaillé : Discussion Wikipédia:Pages à supprimer#Bouton-pression Deluxe pour discussions.

Pour WikEd et les popups, j'y réfléchis, c'est en cours. Mais pour la barre d'outils, il faudrait que vous essayiez de mettre toutes les discussions sur une seule page, parce que là c'est un peu le bordel. Personnellement je ne vais pas y toucher étant donné la multitude d'avis là-dessus. Demandez l'avis à la communauté (de préférence par sur cette page, merci), et ensuite on verra. le Korrigan→bla 20 novembre 2007 à 22:15 (CET)
Si je peux me rendre utile pour les 2 « gadgets » que j'ai traduit, faites-moi signe. Leag⠇⠑⠁⠛ 20 novembre 2007 à 22:41 (CET)
Oui, tu peux nous dire si les paramètres par défaut conviennent pour les utilisateurs "de base". Le problème des gadgets est qu'on ne peut pas du tout les personnaliser actuellement ; il faut utiliser la bonne vieille méthode avec le monobook pour ça (mais on ne peut pas cocher le gadget dans les préférences et le personnaliser ensuite dans le monbook, ça ne marche pas). Il faut donc paramétrer les gadgets pour que leur fonctionnement par défaut soit acceptable pour la majorité. le Korrigan→bla 20 novembre 2007 à 23:31 (CET)
@ Korrigan : oui les paramètres de base du popup et de wikEd sont suffisant pour la majorité des utilisateurs. Si je comprend bien, si on veut paramétrer le popup pour corriger les homonymies, on ne peut pas le cocher dans les gadgets et rajouter le paramètre dans son monobook? C'est assez contraignant en effet (peut-être un jour ). Pour ces 2 extensions qui viennent de :en comment procéder? Copier le code source sur mediawiki:Gadgets ou peut-on l'importer pour toujours bénéficier des mises à jour? mediawiki:Gadgets doit être commun à tous les wikis je pense. Comment procèdent les autres wikis étrangers qui ont activé les gadgets? Voilà, pleins de question et peu de réponses Leag⠇⠑⠁⠛ 21 novembre 2007 à 07:45 (CET)
Comme le code des gadgets est inclus après celui du monobook JS (voir ceci), il devrait être possible de paramétrer les gadgets. Pour cela il suffirait de déclarer en globale des variables dans le monobook JS et de les initialiser, puis de les utiliser dans le code JS des gadgets.
Je n'ai pas essayé, mais cela devrait fonctionner si je n'ai pas oublié un aspect du problème. Sanao (d) 21 novembre 2007 à 01:28 (CET)
Ben non justement, c'est l'inverse. Enfin, si j'ai bien compris aussi (n'étant pas programmeur) ! Si l'auteur de l'extension dit que ce n'est pas possible, personnellement je le crois... le Korrigan→bla 21 novembre 2007 à 01:49 (CET)
Il est possible de paramétrer les gadgets. Je viens de faire un test (qui est totalement inutile pour l'instant) sur les boutons des sources en initialisant une variable globale dans son monobook pour afficher en double les boutons.
Il suffit de copier cela dans son monobook :
Ainsi on devrait pouvoir paramétrer les gadgets relativement facilement. Sanao (d) 21 novembre 2007 à 13:51 (CET)
Petit problème, si la variable n'existe pas, cela déclenche une erreur. J'ai donc supprimer le test. Je vais tâcher de voir ce soir comment on pourrait contourner ce problème de manière élégante. Sanao (d) 21 novembre 2007 à 14:01 (CET)
Et si on ajoute dans MediaWiki:Gadget-AjoutBoutonSource.js, ca ne marche pas non plus ? Ix₪ayYo 21 novembre 2007 à 15:48 (CET)
J'ai ajouté des illustrations pour wikEd et popups. Leag⠇⠑⠁⠛ 22 novembre 2007 à 22:17 (CET)

Résumé[modifier le code]

Désolé de m'épivarder dans plusieurs discussions, je vais contenir ma pensée dans cette section. Premièrement, bravo Sanao (d · c · b) pour refaire le script des "Boutons de discussion", il me semble plus propre ainsi. Je l'ai testé, mais ça ne fonctionne pas, probablement à cause des ~~~~ qui s'exécutent dans mon monobook. J'ai fait quelques ajouts dans le script, alors voici un tableau pour ratifier tout ça!

Tableau comparatif des barres d'outils

 

Éventuellement, je crois qu'il serait EXCELLENT d'avoir un script pour activer/désactiver les barres lors d'une édition. La méthode peut varier, mais l'idée est de faciliter les ajouts pour les néophytes qui n'iront peu ou pas dans leurs préférences. Alors voilà l'essentiel de mes idées, dites-moi ce que vous en pensez! Merci d'avoir pris le temps de me lire! Au plaisir, Antaya   15px 21 novembre 2007 à 09:33 (CET)

Je suis d'accord avec Antaya pour l'activation des scripts par des boutons. wikEd s'active par ce genre de bouton placé en haut de page à droite de « Déconnexion ». Si quelqu'un sait comment reproduire ce système, ça pourrait être ajouté sur d'autres scripts. Leag⠇⠑⠁⠛ 21 novembre 2007 à 10:59 (CET)

Paramétrage des gadgets[modifier le code]

C'est maintenant possible et utilisé sur le gadget des boutons de "sourçage".

Sur ce gadget, par défaut les cinq boutons sont affichés, mais il possible d'en occulter certains. Pour cela il suffit d'ajouter une ou plusieurs des variables suivantes en global dans son monobook et de l'initialiser avec la chaîne de caractères "hide" :

    Par exemple le code suivant va occulter le bouton d'ajout du bandeau {{à sourcer}} et du modèle {{Périodique}} :

    vara_sourcer="hide";varperiodique="hide";

    J'ai pu tester sous Konqueror et Mozilla Firefox. Comme je n'ai pas Windows, il faudrait tester sur Internet Explorer.

    Si les tests sont concluant, j'ajouterais cette fonctionnalité sur le gadget DeluxeBar.

    Bon tests! Sanao (d) 21 novembre 2007 à 21:19 (CET)

    Copyscape[modifier le code]

    Pardon si ce n'est pas la bonne page : Copyscape laisse ce message lorsqu'on veut vérifier une page « The maximum of 10 searches per month has been reached for this site. For more searches, please sign up for a Premium account. ». Est-on sensé payer les 5 cents par recherche ? Sinon, je ne comprend pas très bien l'intérêt de ce gadget s'il faut payer. Moezm'écrire 22 novembre 2007 à 03:56 (CET)

     Réticence - Peu utile pour être diffusé en masse via un gadget. Et on va vive le même problème qu'avec les boutons : trop de gadgets tuent les gadgets! Aussi, je pense qu'il faut garder une certaine éthique : je pense à "Arrondir les coins de l'interface" ou "Enlever les info-bulles des onglets" qui relèvent de l'esthétisme. Maintenant rien n'empêche d'avoir une phrase dans l'entête qui dirige vers les scripts du Projet:Modèle. En revanche j'ajouterais "Bistro du jour", script très utilisé... Au plaisir, Antaya   15px 22 novembre 2007 à 07:47 (CET)
    Désolé pour Copyscape, je n'avais pas vu... je le vire. Les règles du site ont apparemment changé, maintenant faut payer après 10 recherches par site et par mois. Autant dire qu'on a vite atteint ça pour WP !
    Pour les coins de l'interface, c'est un truc qui avait beaucoup fait râler quand on l'avait enlevé du Monobook global, d'où le fait que je l'aie remis ici. Pour le BistroDuJour, il marche comme il faut ? J'ai cru comprendre sur Discussion Projet:JavaScript qu'il buggait. le Korrigan→bla 22 novembre 2007 à 10:45 (CET)
    Pour le Bistro du Jour et l'Oracle sur une même ligne, j'ai une version qui ne pose pas de problème avec la virgule.
    Il faudrait quelqu'un teste de son côté pour confirmer cela. Si il y en a qui sont intéressé... Sanao (d) 22 novembre 2007 à 13:04 (CET)

    Demande de gagdets[modifier le code]

    Bonsoir, est-ce qu'il serait possible de rajouter ces trucs?

    C'est tout ce que je vois pour l'instant. Merci d'avance! --Guil2027 (d) 22 novembre 2007 à 22:09 (CET)

     Fait.
    Pour la citation étrangère, il est possible de changer la valeur de la langue par défaut (qui est l'anglais), en ajoutant dans son monobook :
    J'ai ajouter les deux modèles à MediaWiki:Gadget-AjoutBoutonSource.js, car toute citation devrait être sourcé. Sanao (d) 22 novembre 2007 à 22:36 (CET)
    Merci!! Je préfère que ce soit dans les gadgets parce que je ne sais absolument pas ce qu'est un monobook  ! --Guil2027 (d) 23 novembre 2007 à 10:09 (CET)
    Je ne trouve pas dans mes préférences les nouveaux gadgets, c'est sous quel nom?--Guil2027 (d) 23 novembre 2007 à 10:15 (CET)
    Dans les gagdets généraux, tu as « Ajouter des boutons prédéfinis pour remplir la boîte de résumé », pour ta troisième demande ; dans les Boutons de la barre d'outils, tu as « Ajouter cinq boutons facilitant l'ajout ou la demande de sources lors de l'édition d'un article ». le Korrigan→bla 23 novembre 2007 à 10:59 (CET)
    Maintenant l'intitulé de ce gadget est « Ajouter sept boutons facilitant l'ajout et la demande de sources lors de l'édition d'un article ».
    Je vais tâcher de faire une explication pour la personnalisation des gadgets. Sanao (d) 23 novembre 2007 à 13:22 (CET)
    Bon ben je suis vraiment nulle, je n'arrive pas à les faire apparaître dans ma barre d'outils. J'ai cliqué sur "ajouter sept boutons..", mais je n'ai que ces modèles: "section ou article à sourcer", "référence nécessaire", "lien web", "périodique" et "livre". Qu'est-ce que je dois faire pour qu'ils apparaissent? Ils sont en bas? Sinon, ça ne risque pas d'induire les gens en erreur de mettre les modèles citation avec le sourçage? Enfin, du moment que je les trouve, ça me va! Pour les messages prédéfinis, j'ai vu que je l'avais déjà sélectionné, mais après quelle est la démarche pour rajouter un nouveau? J'ai cliqué sur aide mais je n'ai pas trouvé.--Guil2027 (d) 23 novembre 2007 à 13:34 (CET)
    Tu a bien activé les boutons de sourçage (contenant les deux modèles citation que tu as demandé). Mais tu dois avoir un problème de cache avec ton navigateur, ce qui fait que tu as l'ancienne version. Vide la cache de ton navigateur et clic sur le bouton pour recharger la page. Ainsi le nouveau code sera récupéré. Sanao (d) 23 novembre 2007 à 14:08 (CET)
    Alors là tu vas hurler mais je ne sais pas ce qu'est un cache! Où est-ce qu'il faut aller? --Guil2027 (d) 23 novembre 2007 à 16:06 (CET) (je sais j'ai honte)
    Attention, le cache pour les nuls  :
    En informatique, la mise en cache est une technique qui consiste à stocker de manière temporaire et locale des informations. Cela évite ainsi de redemander les informations, faisant ainsi gagner du temps.
    Dans le cas d'un navigateur Internet, ce dernier met en cache certaines informations qui sont suceptibles de ne pas changer souvent. C'est le cas notamment des feuilles de style (servant à la présentation visuelle de la page) et du code javascript (rendant un peu plus dynamique une page Web).
    Les gadgets de Wikipédia sont justement codés en Javascript et la version du code que tu as est peut-être l'ancienne, avant que je fasse des modification. Cela expliquerait le fait que tu ne vois pas le boutons des citations.
    Maintenant pour vider le cache, la méthode est légèrement différente d'un navigateur à un autre. Je te laisse te reporter sur cette page qui décrit la méthode à suivre pour les navigateurs les plus courants : http://www.commentcamarche.net/faq/sujet-3037-internet-vider-le-cache-internetSanao (d) 23 novembre 2007 à 16:38 (CET)
    Sanao, à ce genre de questions, j'ai pris l'habitude de répondre par un laconique : « Ctrl-Maj-R ou Ctrl-F5 ». Ca marche pour à peu près tout le monde :-) le Korrigan→bla 23 novembre 2007 à 16:44 (CET)
    Ça marche!!!! Merci à vous deux!! --Guil2027 (d) 23 novembre 2007 à 17:24 (CET)
    Un peu de culture générale (je ne sais pas vraiment si le terme est exact) ne fait pas de mal. Et puis c'est une petite introduction à un hypothétique article Mise en cacheSanao (d) 23 novembre 2007 à 17:32 (CET)

    correcteur orthographe[modifier le code]

    Révons un peu ... un correcteur d'orthographe serait un autre ajout remarquable. La solution que j'utilise actuellement est "hors wikipédia", il s'agit de la barre d'outils google qui en propose un. Pas de voie possible ?

    sinon,

    • Les boutons apparaissent tous collés les uns à la suite des autres, est-il possible de les grouper par catégorie comme dans wikied ?
    • Voire de pouvoir réduire un pavé de bouton à un seul pour "fermer/ouvrir le pavé"
    • Pour info ajoutons que j'utilise l'extension FF seamonkey, parce qu'elle permet d'avoir wikied sur tous les wiki et je n'ai pas de problème de compatibilité apparent. Je vois wikiEd en VF sur WP et en anglais sur les autres wikis
    1. du coup, je n'ai plus de bouton de signature
    2. je perds les nouveaux boutons de discussion avec

    du reste, je pense que vous êtes en train d'apporter une contribution majeure à l'ergonomie de wp - merci ! --Ofol(moi . ) 23 novembre 2007 à 20:05 (CET)

    Bon alors dans l'ordre :
    1. Comme correcteur d'orthographe, le plus simple est le navigateur Firefox 2, avec l'ajout d'un dictionnaire idoine. C'est plus "léger" que tous les autres trucs existants pour WP, et ça marche très bien (je l'utilise beaucoup).
    Oui, je suis abasourdi, tu utilises Fx, Greasemonkey (qui n'est pas donnée a tout le monde) et pas le correcteur orthographique intégré ?!? Va vite corriger ça en récupérant le dico classique ou le dico réforme 1990 selon tes préférences --Zelda 23 novembre 2007 à 20:29 (CET)
    EUREKA. Mon seul problème est que le clic droit de la correction auto fait apparaitre tout le menu contextuel, les suggestions sont donc un peu perdues.. Mais cela permet de dépasser les limites de la barre Google (lenteur, 100 mots max..)--Ofol(moi . ) 23 novembre 2007 à 21:20 (CET)
    Pour les problèmes / suggestions par rapport à WikEd, parles-en sur Utilisateur:Leag/wikEd ou directement à Utilisateur:Leag, ici ça va un peu encombrer !
    le Korrigan→bla 23 novembre 2007 à 20:16 (CET)
    tu veux dire que tu prend tout WikiEd ou rien, mais que tu as décidé de ne pas y toucher ? OK. J'ai rayé les suggestions qui me paraissent devenir hors-champ --Ofol(moi . ) 23 novembre 2007 à 21:22 (CET)
    Je ne dis pas qu'on ne peut rien changer, je dis juste que pour ce qui a trait à WikEd, mieux vaut en parler sur la page concernée. On peut bien sûr mettre d'autres options à WikEd dans le cadre des gadgets, mais ce n'est pas ici qu'on a refaire ce programme. le Korrigan→bla 23 novembre 2007 à 21:37 (CET)

    DeluxeHistory[modifier le code]

    pour DeluxeHistory si j'ai bien compris on ne différencie que les admin, les IP et les autres. Savez-vous qu'il y a un travail pour faire un système plus riche, selon le degré de confiance des contributeurs,a évoque ici et dispo là en cliquant sur Wikipedia trust coloring demo

    Oui, on sait. Mais ce système est pour l'instant expérimental : je trouve personnellement ses résultats intéressants... mais pas forcément très fiables pour autant. Alors, si l'outil pour tester la fiabilité manque de fiabilité... :-)
    De plus, ça n'a rien à voir avec les gadgets, que je sache. le Korrigan→bla 23 novembre 2007 à 21:40 (CET)
    .. sauf si dans une phase transitoire, on met le système en option ? --Ofol(moi . ) 23 novembre 2007 à 22:11 (CET)
    Il s'agit d'un outil externe, et non d'un script. L'auteur de l'outil utilise une copie de la base de données qu'il a analysé avec un algorithme particulier. Ce n'est pas quelque chose qu'un simple outil JavaScript peut faire. le Korrigan→bla 23 novembre 2007 à 22:15 (CET)
    Comme il est impossible de juger actuellement de la qualité des contributions d'une personne de manière relativement fiable avec un algo, on pourrait utiliser d'autres critères plus objectifs et mesurables. Je pense notamment aux informations présentes sur cette page.
    L'editcount présente des informations sur l'implication du contributeur (ou du moins sa présence sur Wikipédia). C'est très peu, mais c'est déjà quelques choses. Vous en pensez quoi?
    Si on décide d'utiliser ces informations, il reste le problème de comment récupérer ses informations sans surcharger le serveur (car cela risque de faire beaucoup de requête...). Sanao (d) 23 novembre 2007 à 23:54 (CET)
    Ouh la la. Mon cher Sanao, tu t'aventures dans des eaux troubles. Utiliser l'editcount pour juger de la pertinence est une assez mauvaise idée (on peut citer Brozouf qui faisait des ajouts très peu pertinents avec un editcount élevé, et barbe-Noire qui écrit des choses très pertinentes mais qui dépasse à peine le 5000 contribs). C'est un critère qui a rarement été retenu dans les études sur la qualité, j'imagine que c'est pour ça.
    Mon avis (personnel, POV :-)) est qu'il est un peu illusoire de vouloir juger de la qualité d'un article uniquement avec ce genre d'outils (trop) simples. Je préfère les initiatives en cours sur quality.wikimedia.org.
    Sinon, l'editcount peut s'obtenir par l'API (hop). le Korrigan→bla 24 novembre 2007 à 00:08 (CET)
    C'est pour cela que je disait que « l'editcount présente des informations sur l'implication du contributeur (ou du moins sa présence sur Wikipédia) ». C'est l'implication du contributeur qui pouvait être indiqué à la place de la qualité du contributeur (qui a l'heure n'est pas mesurable de manière assez fiable). Maintenant le tout est de savoir si l'implication d'un contributeur est un point intéressant.
    Mais une chose est sûr : à l'heure actuelle les moyens d'auditer automatiquement Wikipédia de manière fiable et mesurable sont quasi-inexistant. Sanao (d) 24 novembre 2007 à 00:23 (CET)

    Protection de la page[modifier le code]

    Ce ne serait pas plus prudent de protéger ou au moins de semi-protéger MediaWiki:Gadgets-definition. Si j'ai bien compris, elle définit directement les préférences gadgets de tous les wikipédiens. Donc un vandale pourrait avoir un effet immédiat et fort gênant ? --Ofol(moi . ) 24 novembre 2007 à 11:13 (CET)

    Toutes les pages de l'espace "MediaWiki:" sont déjà restreintes aux administrateurs, par défaut. le Korrigan→bla 24 novembre 2007 à 11:17 (CET)
    okaaay --Ofol(moi . ) 24 novembre 2007 à 22:49 (CET)

    boutons prédéfinis pour remplir la boîte de résumé[modifier le code]

    Est-il possible de remettre à plat les boutons prédéfinis pour remplir la boîte de résumé ? j'ai deux directions à suggérer

    1. mettre au plus près les motifs les plus utilisés
    2. la liste des motifs est trop longue : elle sort à droite

    --Ofol(moi . ) 24 novembre 2007 à 22:48 (CET)

    On pourrait revoir la liste des messages, pour cela il faudrait faire une liste. Mais également modifier le gadget pour le rendre configurable et ainsi permettre l'occultation de certains messages prédéfinis et la possibilité d'en ajouter des nouveaux.
    Pour ma part je ne l'utilise pas et est une version personnalisé dans mon monobook avec les messages suivants :
    • ajout d'infos ()
    • diverses retouches
    • wikif
    • revert (vandalisme)
    • revert (spam)
    • revert ()
    • + {{ébauche}}
    • + catégorie
    • + image
    • + liens interwiki
    • + portail
    • - lien externe (pas de contribution se limitant à ajouter des liens externes)
    • mise en page
    • correction orthographe/grammaire
    • changement catégorie
    Pour le fait que la liste est trop longue et qu'elle sort à droite : Est-ce que tu veux dire qu'une barre de défilement horizontale apparaît? Où qu'il y a juste un retour à la ligne comme sur cette image : Image:Gadget boutons resume.jpg? Sanao (d) 24 novembre 2007 à 23:32 (CET)
    une barre de défilement horizontale apparait, je n'ai pas de retour à la ligne.
    Parmi les solutions, il y a l'abréviation des motivations, l'utilisation d'une police plus petite (utile de toutes manières, les messages suggérés n'ont pas besoin d'être écrits en police normale, puisque par définition on fini par les connaitre)... ou la résolution d'un problème qui m'est peut-être particulier !
    Pour les messages, le problème est bien sur que selon les wikipediens ils sont différents ! (quoique note que pour ton premier motif, je pense qu'il est bien partagé..)
    solutions possibles
    1. décliner les messages selon les profils (en en proposant 2-3) ou selon les pages consultées
    2. permettre de les customiser facilement
    --Ofol(moi . ) 25 novembre 2007 à 01:28 (CET)
    Boutons pression dans la barre d'outils

    Définir une fonction[modifier | modifier le wikicode]

    Début d’un principe

    Fin du principe


    Une fonction Python est définie par le spécificateur "def" suivi du nom de la fonction et de ses paramètres :

    defnomDeLaFonction(listedeparamètres):...blocd'instructions...returnresultat
    • Vous pouvez choisir n'importe quel nom pour la fonction que vous créez, à l'exception des mots réservés du langage, et à la condition de n'utiliser aucun caractère spécial ou accentué (le caractère souligné « _ » est permis). Comme c'est le cas pour les noms de variables, il vous est conseillé d'utiliser surtout des lettres minuscules, notamment au début du nom.
    • Comme les instructions et , l'instruction est une instruction composée. La ligne contenant cette instruction se termine obligatoirement par un double point, lequel introduit un bloc d'instructions que vous ne devez pas oublier d'indenter.
    • La liste de paramètres spécifie quelles informations il faudra fournir en guise d'arguments (avec leurs éventuelles valeurs par défaut) lorsque l'on voudra utiliser cette fonction (les parenthèses peuvent parfaitement rester vides si la fonction ne nécessite pas d'arguments).
    • Une fonction s'utilise pratiquement comme une instruction quelconque. Dans le corps d'un programme, un appel de fonction est constitué du nom de la fonction suivi de parenthèses.
    • Une fonction Python ne renvoie pas obligatoirement de résultat : le mot "return" est facultatif. S'il est absent, en termes de programmation on parlera alors plutôt de procédure que de fonction, et elle renverra "None".
    • Le type d'un paramètre sera le même que celui de l'argument qui aura été transmis à la fonction. Exemple :
    >>>defafficher3fois(arg):...printarg,arg,arg>>>afficher3fois(5)555>>>afficher3fois('zut')zutzutzut>>>afficher3fois([5,7])[5,7][5,7][5,7]>>>afficher3fois(6**2)363636

    Fonctionnement[modifier | modifier le wikicode]

    deffactorielle(n):f=1i=1whilei<=n:f=f*ii=i+1returnf# la valeur retournéefactorielle(7)# 5040

    Récursivité[modifier | modifier le wikicode]

    Une première fonction peut appeler une deuxième fonction, qui elle-même en appelle une troisième, etc. Mais elle peut aussi s'appeler elle-même :

    deffactorielle(n):ifn==0:return1else:returnn*factorielle(n-1)factorielle(7)# 5040

    Passage d'argument[modifier | modifier le wikicode]

    Un fonction accepte entre zéro et 255 d'arguments :

    >>>defaddition(x,y):returnx+yaddition(3,4)# 7>>>defmultiplication(x,y):returnx*ymultiplication(3,4)# 12

    La signature est ici "x" et "y" en paramètre.

    Ces arguments peuvent être des variables, mais aussi des fonctions, appelées alors "fonctions de rappel" ou "callbacks". Exemple :

    >>>defoperation(x,y,f):returnf(x,y)operation(3,4,addition)# 7operation(3,4,multiplication)# 12

    Arguments facultatifs[modifier | modifier le wikicode]

    Il suffit de définir une valeur par défaut à un argument pour le rendre facultatif. Naturellement, cette valeur est écrasée si l'argument est précisé :

    >>>deff(x=None):ifx:print(x)printf()# Noneprintf(1)# 1 None

    Arguments nommés[modifier | modifier le wikicode]

    Pour ne pas être obligé de remplir tous les paramètres facultatifs dans l'ordre, il est possible de n'en n'appeler que quelques-uns s'ils sont nommés :

    >>>deff(p1=0,p2=0,p3):...f(p3=1)# 1

    Fonction lambda[modifier | modifier le wikicode]

    Une fonction lambda est une fonction anonyme : elle n'est pas définie par def.

    >>>deff(x):returnx*2>>>f(3)6>>>g=lambdax:x*2# 1>>>g(3)6>>>(lambdax:x*2)(3)# 26

    1 et 2 sont des fonctions lambda.

    Récupérer les arguments de la ligne de commande[modifier | modifier le wikicode]

    La variable contient les arguments de la ligne de commande, sous forme d'une liste dont le premier élément est le nom du script invoqué. Exemple :

    Si le script contient

    #!/usr/bin/python#-*- coding: utf-8 -*-importsysprint("Arguments : ",sys.argv)

    alors l'invocation :

    $ python truc.py -a rien -n=nervures

    produira la sortie :

    Arguments : ['truc.py', '-a', 'rien', '-n=nervures']

    Si on veut récupérer l'argument n° 2 :

    #!/usr/bin/python#-*- coding: utf-8 -*-importsysprint("Argument 2 : ",sys.argv[2])

    produira la sortie :

    Argument 2 : 'rien'

    Variables locales, variables globales[modifier | modifier le wikicode]

    Lorsque nous définissons des variables à l'intérieur du corps d'une fonction, ces variables ne sont accessibles qu'à la fonction elle-même. On dit que ces variables sont des variables locales à la fonction.

    En effet, chaque fois que la fonction est appelée, Python réserve pour elle (dans la mémoire de l'ordinateur) un nouvel espace de noms. Les contenus des variables locales sont stockés dans cet espace de noms qui est inaccessible depuis l'extérieur de la fonction. De plus, cet espace de noms est automatiquement détruit dès que la fonction a terminé son travail, donc si on l'appelle deux fois de suite elle recommence à zéro.

    Les variables définies à l'extérieur d'une fonction sont des variables globales. Leur contenu est « visible » de l'intérieur d'une fonction, mais la fonction ne peut pas le modifier. Exemple :

    >>>defmask():...p=20...printp,q...>>>p,q=15,38>>>mask()2038>>>printp,q1538
    Analysons attentivement cet exemple

    Nous commençons par définir une fonction très simple (qui n'utilise d'ailleurs aucun paramètre). A l'intérieur de cette fonction, une variable p est définie, avec 20 comme valeur initiale. Cette variable p qui est définie à l'intérieur d'une fonction sera donc une variable locale.

    Une fois terminée la définition de la fonction, nous revenons au niveau principal pour y définir les deux variables et auxquelles nous attribuons les contenus et . Ces deux variables définies au niveau principal seront donc des variables globales.

    Ainsi le même nom de variable p a été utilisé ici à deux reprises, pour définir deux variables différentes : l'une est globale et l'autre est locale. On peut constater dans la suite de l'exercice que ces deux variables sont bel et bien des variables distinctes, indépendantes, obéissant à une règle de priorité qui veut qu'à l'intérieur d'une fonction (où elles pourraient entrer en compétition), ce sont les variables définies localement qui ont la priorité.

    On constate en effet que lorsque la fonction est lancée, la variable globale y est accessible, puisqu'elle est imprimée correctement. Pour , par contre, c'est la valeur attribuée localement qui est affichée.

    On pourrait croire d'abord que la fonction a simplement modifié le contenu de la variable globale (puisqu'elle est accessible). Les lignes suivantes démontrent qu'il n'en est rien : en dehors de la fonction , la variable globale conserve sa valeur initiale.

    Cet état de choses peut toutefois être modifié si vous le souhaitez. Il peut se faire par exemple que vous ayez à définir une fonction qui soit capable de modifier une variable globale. Pour atteindre ce résultat, il vous suffira d'utiliser l'instruction "". Cette instruction permet d'indiquer - à l'intérieur de la définition d'une fonction - quelles sont les variables à traiter globalement.

    Autre exemple

    Dans l'exemple ci-dessous, la variable a utilisée à l'intérieur de la fonction "" est non seulement accessible, mais également modifiable, parce qu'elle est signalée explicitement comme étant une variable qu'il faut traiter globalement. Par comparaison, essayez le même exercice en supprimant l'instruction "" : la variable "a" n'est plus incrémentée à chaque appel de la fonction.

    >>>defmonter():...globala...a=a+1...printa...>>>a=15>>>monter()16>>>monter()17>>>

    Utilisation des fonctions dans un script[modifier | modifier le wikicode]

    Pour cette première approche des fonctions, nous n'avons utilisé jusqu'ici que le mode interactif de l'interpréteur Python.

    Il est bien évident que les fonctions peuvent aussi s'utiliser dans des scripts. Veuillez donc essayer vous-même le petit programme ci-dessous, lequel calcule le volume d'une sphère à l'aide de la formule que vous connaissez certainement :

    defcube(n):returnn**3defvolumeSphere(r):return4*3.1416*cube(r)/3r=input('Entrez la valeur du rayon : ')print'Le volume de cette sphère vaut',volumeSphere(r)
    Notes

    À bien y regarder, ce programme comporte trois parties : les deux fonctions et , et ensuite le corps principal du programme.

    Dans le corps principal du programme, il y a un appel de la fonction .

    À l'intérieur de la fonction , il y a un appel de la fonction .

    Notez bien que les trois parties du programme ont été disposées dans un certain ordre : d'abord la définition des fonctions, et ensuite le corps principal du programme. Cette disposition est nécessaire, parce que l'interpréteur exécute les lignes d'instructions du programme l'une après l'autre, dans l'ordre où elles apparaissent dans le code source. Dans le script, la définition des fonctions doit donc précéder leur utilisation.

    Pour vous en convaincre, intervertissez cet ordre (en plaçant par exemple le corps principal du programme au début), et prenez note du type de message d'erreur qui est affiché lorsque vous essayez d'exécuter le script ainsi modifié.

    En fait, le corps principal d'un programme Python constitue lui-même une entité un peu particulière, qui est toujours reconnue dans le fonctionnement interne de l'interpréteur sous le nom réservé (le mot main signifie « principal », en anglais. Il est encadré par des caractères « souligné » en double, pour éviter toute confusion avec d'autres symboles). L'exécution d'un script commence toujours avec la première instruction de cette entité , où qu'elle puisse se trouver dans le listing. Les instructions qui suivent sont alors exécutées l'une après l'autre, dans l'ordre, jusqu'au premier appel de fonction. Un appel de fonction est comme un détour dans le flux de l'exécution : au lieu de passer à l'instruction suivante, l'interpréteur exécute la fonction appelée, puis revient au programme appelant pour continuer le travail interrompu. Pour que ce mécanisme puisse fonctionner, il faut que l'interpréteur ait pu lire la définition de la fonction avant l'entité , et celle-ci sera donc placée en général à la fin du script.

    Dans notre exemple, l'entité appelle une première fonction qui elle-même en appelle une deuxième. Cette situation est très fréquente en programmation. Si vous voulez comprendre correctement ce qui se passe dans un programme, vous devez donc apprendre à lire un script, non pas de la première à la dernière ligne, mais plutôt en suivant un cheminement analogue à ce qui se passe lors de l'exécution de ce script. Cela signifie concrètement que vous devrez souvent analyser un script en commençant par ses dernières lignes !

    Modules de fonctions[modifier | modifier le wikicode]

    Afin que vous puissiez mieux comprendre encore la distinction entre la définition d'une fonction et son utilisation au sein d'un programme, nous vous suggérons de placer fréquemment vos définitions de fonctions dans un module Python, et le programme qui les utilise dans un autre.

    Exemple

    On souhaite réaliser la série de dessins ci-dessous, à l'aide du module turtle :

    Écrivez les lignes de code suivantes, et sauvegardez-les dans un fichier auquel vous donnerez le nom dessins_tortue.py :

    fromturtleimport*defcarre(taille,couleur):"fonction qui dessine un carré de taille et de couleur déterminées"color(couleur)c=0whilec<4:forward(taille)right(90)c=c+1

    Vous pouvez remarquer que la définition de la fonction commence par une chaîne de caractères. Cette chaîne ne joue aucun rôle fonctionnel dans le script : elle est traitée par Python comme un simple commentaire, mais qui est mémorisé à part dans un système de documentation interne automatique, lequel pourra ensuite être exploité par certains utilitaires et éditeurs « intelligents ».

    Si vous programmez dans l'environnement IDLE, par exemple, vous verrez apparaître cette chaîne documentaire dans une « bulle d'aide », chaque fois que vous ferez appel aux fonctions ainsi documentées.

    En fait, Python place cette chaîne dans une variable spéciale dont le nom est (le mot « doc » entouré de deux paires de caractères « souligné »), et qui est associée à l'objet fonction comme étant l'un de ses attributs (vous en apprendrez davantage au sujet de ces attributs lorsque nous aborderons les classes d'objets).

    Ainsi, vous pouvez vous-même retrouver la chaîne de documentation d'une fonction quelconque en affichant le contenu de cette variable. Exemple :

    >>>defessai():..."Cette fonction est bien documentée mais ne fait presque rien."...print"rien à signaler">>>essai()rienàsignaler>>>printessai.__doc__Cettefonctionestbiendocumentéemaisnefaitpresquerien.

    Prenez donc la peine d'incorporer une telle chaîne explicative dans toutes vos définitions de fonctions futures : il s'agit là d'une pratique hautement recommandable.

    Le fichier que vous aurez créé ainsi est dorénavant un véritable module de fonctions Python, au même titre que les modules turtle ou math que vous connaissez déjà. Vous pouvez donc l'utiliser dans n'importe quel autre script, comme celui-ci, par exemple, qui effectuera le travail demandé :

    fromdessins_tortueimport*up()# relever le crayongoto(-150,50)# reculer en haut à gauche # dessiner dix carrés rouges, alignés :i=0whilei<10:down()# abaisser le crayoncarre(25,'red')# tracer un carréup()# relever le crayonforward(30)# avancer + loini=i+1a=input()# attendre

     vous pouvez à priori nommer vos modules de fonctions comme bon vous semble. Sachez cependant qu'il vous sera impossible d'importer un module si son nom est l'un des 29 mots réservés Python, car le nom du module importé deviendrait une variable dans votre script, et les mots réservés ne peuvent pas être utilisés comme noms de variables. Rappelons aussi qu'il vous faut éviter de donner à vos modules - et à tous vos scripts en général - le même nom que celui d'un module Python préexistant, sinon vous devez vous attendre à des conflits. Par exemple, si vous donnez le nom turtle.py à un exercice dans lequel vous avez placé une instruction d'importation du module "turtle", c'est l'exercice lui-même que vous allez importer !

    Exercices

    1. 1.2.Définissez une fonction qui renvoie une chaîne de caractères .
    2. Définissez une fonction . Cette fonction doit renvoyer la surface (l'aire) d'un cercle dont on lui a fourni le rayon R en argument. Par exemple, l'exécution de l'instruction :
      doit donner le résultat
    3. Définissez une fonction qui renvoie le volume d'une boîte parallélipipédique dont on fournit les trois dimensions , , en arguments. Par exemple, l'exécution de l'instruction :
      doit donner le résultat :
    4. Définissez une fonction qui renvoie le plus grand de 3 nombres , , fournis en arguments. Par exemple, l'exécution de l'instruction :
      doit donner le résultat :
    5. Complétez le module de fonctions graphiques dessins_tortue.py.
      Commencez par ajouter un paramètre à la fonction , de manière à ce que les carrés puissent être tracés dans différentes orientations. Définissez ensuite une fonction capable de dessiner un triangle équilatéral d'une taille, d'une couleur et d'une orientation bien déterminées.
      Testez votre module à l'aide d'un programme qui fera appel à ces fonctions à plusieurs reprises, avec des arguments variés pour dessiner une série de carrés et de triangles :
    6. Ajoutez au module de l'exercice précédent une fonction spécialisée dans le dessin d'étoiles à 5 branches. Dans votre programme principal, insérez une boucle qui dessine une rangée horizontale de de 9 petites étoiles de tailles variées :
    7. Ajoutez au module de l'exercice précédent une fonction capable de dessiner une étoile à 6 branches, elle-même constituée de deux triangles équilatéraux imbriqués. Cette nouvelle fonction devra faire appel à la fonction définie précédemment.
      Votre programme principal dessinera également une série de ces étoiles :
    8. Définissez une fonction qui renvoie le nombre de fois que l'on rencontre le caractère dans la chaîne de caractères . Par exemple, l'exécution de l'instruction : print compteCar('e','Cette phrase est un exemple') doit donner le résultat : 7
    9. Définissez une fonction indexMax(liste) qui renvoie l'index de l'élément ayant la valeur la plus élevée dans la liste transmise en argument. Exemple d'utilisation :


    10. Définissez une fonction qui renvoie le nom du ne mois de l'année.
      Par exemple, l'exécution de l'instruction :
      doit donner le résultat :
    11. Définissez une fonction qui permette d'inverser les l'ordre des caractères d'une chaîne quelconque. (La chaîne inversée sera renvoyée au programme appelant).
    12. Définissez une fonction qui renvoie le nombre de mots contenus dans la phrase (On considère comme mots les ensembles de caractères inclus entre des espaces).

    Solution

    1. Réfléchissez !
    2. frommathimportpidefsurfCercle(r):"Surface d'un cercle de rayon r"returnpi*r**2# test :printsurfCercle(2.5)
    3. defvolBoite(x1,x2,x3):"Volume d'une boîte parallélipipédique"returnx1*x2*x3# test :printvolBoite(5.2,7.7,3.3)
    4. defmaximum(n1,n2,n3):"Renvoie le plus grand de trois nombres"ifn1>=n2andn1>=n3:returnn1elifn2>=n1andn2>=n3:returnn2else:returnn3# test :printmaximum(4.5,5.7,3.9)
    5. Réfléchissez !
    6. Réfléchissez !
    7. Réfléchissez !
    8. defcompteCar(ca,ch):"Renvoie le nombre de caractères ca trouvés dans la chaîne ch"i,tot=0,0whilei<len(ch):ifch[i]==ca:tot=tot+1i=i+1returntot# test :printcompteCar("e","Cette chaîne est un exemple")
    9. defindexMax(tt):"renvoie l'indice du plus grand élément de la liste tt"i,max=0,0whilei<len(tt):iftt[i]>max:max,imax=tt[i],ii=i+1returnimax# test :serie=[5,8,2,1,9,3,6,4]printindexMax(serie)
    10. defnomMois(n):"renvoie le nom du n-ième mois de l'année"mois=['Janvier,','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre']returnmois[n-1]# les indices sont numérotés à partir de zéro# test :printnomMois(4)
    11. Réfléchissez !
    12. Réfléchissez !

    Exercices

    1. Modifiez la fonction que vous avez définie dans un exercice précédent, de manière à ce qu'elle puisse être appelée avec trois, deux, un seul, ou même aucun argument. Utilisez pour ceux ci des valeurs par défaut égales à) 10.
      Par exemple :
      doit donner le résultat :
      doit donner le résultat :
      doit donner le résultat :
    2. Modifiez la fonction ci-dessus de manière à ce qu'elle puisse être appelée avec un, deux, ou trois arguments. Si un seul est utilisé, la boîte est considérée comme cubique (l'argument étant l'arête de ce cube). Si deux sont utilisés, la boîte est considérée comme un prisme à base carrée. (Dans ce cas le premier argument est le côté du carré, et le second la hauteur du prisme). Si trois arguments sont utilisés, la boîte est considérée comme un parallélépipède. Par exemple :
      doit donner le résultat : (? indication d'une erreur).
      doit donner le résultat :
      doit donner le résultat :
      doit donner le résultat :
    3. Définissez une fonction qui remplace tous les caractères par des caractères dans la chaîne de caractères , à partir de l'indice debut et jusqu'à l'indice , ces deux derniers arguments pouvant être omis (et dans ce cas la chaîne est traitée d'une extrémité à l'autre). Exemples de la fonctionnalité attendue :
      >>>phrase='Ceci est une toute petite phrase.'>>>printchangeCar(phrase,' ','*')Ceci*est*une*toute*petite*phrase.>>>printchangeCar(phrase,' ','*',8,12)Ceciest*une*toutepetitephrase.>>>printchangeCar(phrase,' ','*',12)Ceciestune*toute*petite*phrase.>>>printchangeCar(phrase,' ','*',fin=12)Ceci*

    Pour les non-programmeurs

    La programmation est l'art d'apprendre à un ordinateur comment accomplir des tâches qu'il n'était pas capable de réaliser auparavant. L'une des méthodes les plus intéressantes pour y arriver consiste à ajouter de nouvelles instructions au langage de programmation que vous utilisez, sous la forme de fonctions originales. De plus, créer ses propres fonctions permet de factoriser le code redondant en pouvant être appelées depuis plusieurs endroits.

    L'approche efficace d'un problème complexe consiste souvent à le décomposer en plusieurs sous-problèmes plus simples qui seront étudiés séparément (ces sous-problèmes peuvent éventuellement être eux-mêmes décomposés à leur tour, et ainsi de suite). Or il est important que cette décomposition soit représentée fidèlement dans les algorithmes pour que ceux-ci restent clairs.

    0 Replies to “Affiche Cette Lire De Essayer Meaning”