20:03 (j'attends juste 2 minutes pour les retardataires) 20:03 mode/#ubuntu-fr-classroom [+o gpocentek] by ChanServ 20:03 gpocentek: c'est pas demain ? :) 20:03 * gapz log aussi 20:03 mode/#ubuntu-fr-classroom [+vvvv effraie gapz Sp4rKy Lutin] by gpocentek 20:03 oui , peut etre la prochaine fois je peux l etre aussi ^ 20:03 gpocentek, bonsoir, y a des prerequis? (paquets à installer) 20:04 Typhoe: python, un terminal, un éditeur de texte 20:04 ok, ca va alors, c'est de base ;) 20:04 des chips ? 20:04 candide_ [n=candide@101.219.20.81.dynamic.adsl.abo.nordnet.fr] has joined #ubuntu-fr-classroom 20:05 gpocentek: en live: http://www.sceen.net/~gapz/classroom/python-2007-10-16 20:05 faut que j installe le paquet typhoe , 20:05 ? 20:05 madinina, arf! 20:05 gapz: putain je le faisait aussi 20:05 salopard :D 20:05 gapz: merci :) 20:06 mode/#ubuntu-fr-classroom [+v arthur-] by gpocentek 20:06 excuse typhoe ton speudo collait avec le sujet du soir ^ 20:07 ok, on dirait que c'est l'heure 20:07 tout le monde est prêt ? 20:07 ja 20:07 gpocentek: une question 20:07 ploc: oui ? 20:07 quelle est la durée prévue ? 20:07 (il y a des pistonnés par ici, je vous dit que ça :p) 20:07 quel est le paquet python à installer (je sais ca fait 2 questions) 20:07 ploc: j'ai compté une heure mais ça dépendra des questions sans doute 20:08 ploc: 'python' 20:08 ça devrait t'installer ce qu'il faut 20:08 ok merci 20:08 rafiki [n=raphael@14-51.62-81.cust.bluewin.ch] has quit ["Leaving."] 20:08 * ploc se met en mode 'ecoute' 20:08 ps: j ai 1 tuxdroid déja installé sur la machine cela change quelque chose, 20:09 mode/#ubuntu-fr-classroom [+m] by gpocentek 20:09 allons-y :) 20:09 bonsoir tout le monde 20:09 pour ceux qui n'ont jamais suivi de cours, voilà comment ça se passe : 20:09 je modère le chan pour "réciter" le cours 20:09 ça permet notamment d'avoir des logs propres pour la retranscription 20:10 mais je laisse la parole régulièrement pour les questions 20:10 mode/#ubuntu-fr-classroom [-m] by gpocentek 20:10 ok pour tout le monde ? 20:10 ROCK ON 20:10 ok pour moi 20:10 oui 20:10 ouais 20:10 go 20:10 oui 20:10 roulez jeunesse ! 20:10 et n'hésitez pas à poser des questions surtout 20:10 ok 20:10 ouiiiii 20:10 ok 20:11 vi 20:11 même si elles paraissent "bébêtes" ;) 20:11 wetaskiwin [n=wetaskiw@unaffiliated/wetaskiwin] has joined #ubuntu-fr-classroom 20:11 let's go 20:11 mode/#ubuntu-fr-classroom [+m] by gpocentek 20:11 La petite introduction de rigueur, très courte ;) 20:11 Python est né au début des années 1980, son père est Guido van Rossum (mère inconnue). 20:12 Sa version actuelle est la 2.5.1. 20:12 (version stable) 20:12 Python est résent partout, vous l'utilisez tous les jours avec Ubuntu, red hat en use et abuse, de même que google (van Rossum est employé par Google). Vous avez aussi très certainement vu python en action avec Launchpad. 20:12 présent partout* 20:12 Dromar [n=david@pur31-1-82-224-15-167.fbx.proxad.net] has joined #ubuntu-fr-classroom 20:12 Le cours de ce soir est une introduction au langage, en abordant des notions de base de la programmation. 20:12 Le but est d'être clair pour les gens qui n'ont jamais programmé, donc certains "pythonismes" seront volontairement mis de côté. On approfondira dans d'autres sessions. 20:13 mode/#ubuntu-fr-classroom [-m] by gpocentek 20:13 des question jusque là ? 20:13 HarKoT [n=tony@cpc4-stkn5-0-0-cust748.midd.cable.ntl.com] has joined #ubuntu-fr-classroom 20:13 Ca roule ;) 20:13 (si ça va trop vite, hurlez) 20:13 et gentoo :p 20:13 juste ravi d apprendre qu il y aura une suite :) 20:14 shadok: hehe 20:14 Python : Saison 2 20:14 :) 20:14 je pense faire 3 ou 4 sessions 20:14 Dromar [n=david@pur31-1-82-224-15-167.fbx.proxad.net] has quit [Remote closed the connection] 20:14 la classe 20:14 je pense aussi continuer 20:14 initiation aujourd'hui jusqu'à l'orienté objet et au GUI 20:14 (gtk) 20:14 ok 20:14 mode/#ubuntu-fr-classroom [+m] by gpocentek 20:14 Dromar [n=david@pur31-1-82-224-15-167.fbx.proxad.net] has joined #ubuntu-fr-classroom 20:15 Python est un langage "interprété", c'est à dire qu'un script ne nécessite pas de compilation pour être exécuté. Il existe un interpréteur qui permet d'interagir avec l'utilisateur. 20:15 Pour le lancer, démarrez un terminal et lancez : 20:15 python 20:15 mode/#ubuntu-fr-classroom [-m] by gpocentek 20:15 dites moi quand c'est ok 20:15 ok 20:15 ok 20:15 ja klar 20:15 ok j'ai les 3 chevrons 20:16 vous aurez un peu de blabla, et une invite : 20:16 j ai les 3 >>> 20:16 >>> 20:16 ok 20:16 Zura [n=ddup1@dupnet.org] has joined #ubuntu-fr-classroom 20:16 mode/#ubuntu-fr-classroom [+m] by gpocentek 20:16 on va commencer par une utilisation hyper basique de python : une calculatrice 20:16 entrez : 20:16 3*6 20:16 (suivi d'entré à chaque fois) 20:16 deuzene [n=deuzene@dyn-88-123-218-229.ppp.tiscali.fr] has joined #ubuntu-fr-classroom 20:16 ou 20:17 4-9 20:17 (je vais faire commencer chaque ligne de code par un espace, à ne pas saisir dans la console 20:17 sashimi [n=sashimi@ASte-Genev-Bois-154-1-23-154.w81-249.abo.wanadoo.fr] has joined #ubuntu-fr-classroom 20:17 python fait le calcul pour vous donc, le résultat est affiché tout de suite 20:17 mode/#ubuntu-fr-classroom [-m] by gpocentek 20:17 questions ? 20:18 non ^^ 20:18 gpocentek, python en mode prompt je suppose ? 20:18 sashimi: oui, c'est comme bash en fait 20:18 calculette simple ou meme scientifique, 20:18 madinina: calculette hyper puissante en fait :) 20:18 ca fait des conversions hexa - decimal ? 20:18 joel: ça peut 20:18 gpocentek, oki, ça m'a beaucoup rappeler les prompt type mathlab/mapple la première fois 20:19 sashimi: c'est le même genre 20:19 donc... 20:19 mode/#ubuntu-fr-classroom [+m] by gpocentek 20:19 maintenant qu'on sait que python peut remplacer notre calculatrice, allons un peu plus loin avec la notion de "variable" 20:19 Les variables correspondent à des zones de stockage de valeurs. 20:20 sont désignées par des mots contenant les lettres minuscules, majuscules, chiffres et underscore "_". 20:20 Czernai [n=czernai@tal33-2-82-228-174-13.fbx.proxad.net] has left #ubuntu-fr-classroom [] 20:20 A une variable on assigne une valeur grâce à l'instruction "=", par exemple (dans l'interpréteur) : 20:20 icebird [n=weechat@adsl-84-226-44-18.adslplus.ch] has joined #ubuntu-fr-classroom 20:20 a = 4 20:20 b = 5 20:20 a + b 20:21 voyez que l'interpréteur a retenu ce qu'il y avait dans a et b, et a utilisé les valeurs pour faire une addition 20:21 mode/#ubuntu-fr-classroom [-m] by gpocentek 20:21 des questions là dessus ? 20:21 fait il automatiquement les espaces ? 20:21 l'espace entre les opérateurs est facultatifs ? 20:21 ou a=4 c est ok ? 20:21 les espaces ne sont pas indispensables ? 20:21 non juste preciser apres un test que le nom des var est sensible a la casse :p 20:21 Marty_Desktop: a=4 est ok 20:21 ok 20:22 Zura: j'y venais un peu plus tard mais tant qu'on y est 20:22 ok 20:22 'a' est différent de 'A' 20:22 gpocentek: ah désolé ;) 20:22 (Marty_Desktop, le plus simple est sans doute de tester soit même ;)) 20:22 Zura: pas de souci, je suis le fil des questions/remarques 20:22 il y a des règles pour les noms de variables avec des chiffres? 20:22 sashimi: oui c est sur 20:22 rodomiro: ne pas commencer par un chiffre 20:23 ok! 20:23 >>> 5tr=4 20:23 File "", line 1 20:23 5tr=4 20:23 ^ 20:23 sinon python rale 20:23 ce que j'ai collé c'est un message d'erreur 20:23 5fg=5 20:23 on peut pas assigner du texte a une variable ? 20:23 Uggy: j'y viens après 20:23 ok.. 20:24 mode/#ubuntu-fr-classroom [+m] by gpocentek 20:24 quelques autres petites choses à savoir 20:24 Une variable doit avoir été initialisée pour être utilisée : 20:24 c 20:24 c=1 20:24 c 20:24 la première commande donnera une erreur 20:24 geekounet [n=geekoune@unaffiliated/geekounet] has joined #ubuntu-fr-classroom 20:24 la troisième (pourtant la même) fonctionnera, puiqu'on a assigné une valeur à c 20:24 mode/#ubuntu-fr-classroom [-m] by gpocentek 20:24 ok pour ça ? 20:25 ok 20:25 OK 20:25 c'est une source de bug, donc attention :) 20:25 NameError: name 'ok' is not defined 20:25 oups :p 20:25 ok 20:25 mode/#ubuntu-fr-classroom [+m] by gpocentek 20:25 Une variable peut "dépendre" d'elle même : 20:25 a = 4 20:25 a = a + 1 20:25 a 20:26 python calcule ce qui se passe à droite du =, puis assigne ce qu'il a trouvé à la variable (à gauche du =) 20:26 mode/#ubuntu-fr-classroom [-m] by gpocentek 20:26 ok pour ça aussi ? 20:26 Sploutch [n=tuxlys@249-187.203-62.cust.bluewin.ch] has joined #ubuntu-fr-classroom 20:26 ok 20:26 ok 20:26 ok 20:26 par défaut c'est 0 ? 20:27 idem 20:27 rodomiro: par défaut c'est néant 20:27 c=c+i pui c donne 1.. 20:27 c+1 pardon :P 20:27 le temps de mémoire de la variable =? 20:27 gpocentek: pas de n++ ? 20:27 madinina: infini 20:27 >>> a++ 20:27 File "", line 1 20:27 a++ 20:27 ^ 20:27 SyntaxError: invalid syntax 20:27 gliss: non ;) 20:27 si je ferme le console et remet un a=5 ? 20:27 :p 20:28 madinina: dans ce cas tu as tout perdu 20:28 pas d'opérateur d'incrémentation ou de raccourci du genre a += 5 alors ? 20:28 la variable existe le temps du script 20:28 OK 20:28 sashimi: += 5 ça marche 20:28 mais comme dit tout à l'heure, j'évite ces artifices là pour le premier cours 20:28 mais pas de ++ ni de -- 20:28 voilà 20:28 ok, pas de problème 20:28 d'autres questions ? 20:29 ras pour moi 20:29 ouais va pas nous embrouiller hein ;) 20:29 * sashimi va avoir du mal à oublier ses habitudes de C++ 20:29 ok, je continue alors 20:29 Tchong [n=yom@xbn44-2-82-225-227-79.fbx.proxad.net] has joined #ubuntu-fr-classroom 20:29 mode/#ubuntu-fr-classroom [+m] by gpocentek 20:29 la notion de "type"... 20:29 On n'a utilisé que des entiers pour l'instant. python l'a remarqué : 20:29 a = 5 20:29 a / 2 20:30 kagou [n=kagou@77.192.77.199] has quit [Client Quit] 20:30 On obtient 2, et pas 2.5. Pourquoi ? python arrondi tout simplement à l'entier inférieur car on lui a suggéré que a est un entier. 20:30 Comment faire alors ? Préciser à python que a est un "flottant" : 20:30 a = 5.0 20:30 a / 2 20:30 mode/#ubuntu-fr-classroom [-m] by gpocentek 20:30 est-ce que c'est bon pour tout le monde ça ? 20:31 vivi 20:31 un "flottant" (float) c'est simplement un nombre à virgule 20:31 ok. On peut faire des "cast" ? 20:31 ok 20:31 sherkin: on peut (mais pas ce soir) 20:31 ;) 20:31 Je te recois 2.5 sur 2.5 ;) 20:31 ok 20:31 pour a=3 et a/2 on a déjà des erreurs d'arondi?! 20:31 ok 20:31 mode/#ubuntu-fr-classroom [+m] by gpocentek 20:32 Un autre type très courant est la "chaîne de caractère" (string en anglais) 20:32 Elle est définie en plaçant du texte entre "" ou entre '' : 20:32 une_chaine = "Je suis une chaîne." 20:32 une_chaine 20:32 On peut 'ajouter' des chaînes, on appelle ça la concaténation: a = "Bonjour " b = "Monde !" a + b 20:32 arf 20:32 a = "Bonjour " 20:32 b = "Monde !" 20:32 a + b 20:32 voilà 20:33 mode/#ubuntu-fr-classroom [-m] by gpocentek 20:33 questions ? 20:33 on peut définir le type d'une variable autrement que par affectation d'une valeur ? 20:33 gpocentek , j'ai un petit problème :p 'Je suis une cha\xc3\xaene.' 20:33 tt est clair pour moi 20:33 il me resort ça 20:33 mawell [n=mawell@ras75-4-82-235-58-51.fbx.proxad.net] has joined #ubuntu-fr-classroom 20:33 j'ai un mauvais caractere : 'Je suis une cha\xc3\xaene.' 20:33 (je suis sur urxvt, ça pose problème?) 20:33 hype_: oui c'est un problème d'encodage, dsl 20:33 Problème d'encodage 'normal' à prioris 20:33 on en reparlera un peu plus tard 20:34 (je vais sur gnome-terminal sinon) 20:34 ok 20:34 solution ? 20:34 joel: spécifier l'encodage 20:34 on peut définir le type d'une variable autrement que par affectation d'une valeur ? 20:34 hype_, te faut un shell qui supporte utf8 20:34 (jamais fait dans l'interpréteur en fait) 20:34 python est utf8 par défaut il me semble 20:34 ploc: bonne question 20:34 sashimi: c'est python qui upporte pas pour le coup 20:34 gpocentek, ah ok :D 20:34 sans transition... 20:34 gpocentek , tu veux dire que l'erreur etait volontaire? :D 20:35 gpocentek: on peut définir le type d'une variable autrement que par affectation d'une valeur ? :) 20:35 ploc: tu penses à quelque chose de particulier ? 20:35 hype_: bien sûr :p 20:35 gpocentek: genre "a" sera du flottant 20:35 gpocentek: non, mes réflexes de Java où on déclare la variable avant de l'utiliser par une affectation 20:35 ^^ 20:35 ou alors faut lui affecter un dummy en attendant ? 20:35 il n'y a pas de céclaration de type en python 20:36 déclaration* 20:36 ok 20:36 ok 20:36 en C/java il faut déclarer un type, pas en python 20:36 sinon a="" 20:36 gpocentek, ah ok, une variable est une variable, point barre 20:36 c'est python qui trouve le type comme un grand quand on assigne la valeur 20:36 ok 20:36 ouais enfin on peux affeter un type quand même 20:36 deuzene: oui, c'est une affectation :) 20:36 gpocentek, si on fait a=5 20:36 puis a='toto' 20:36 sashimi: pas de souci 20:36 pas de problème de re-typage en interne ? 20:36 oki 20:36 aucun 20:36 pour avoir un espace aprés le "bonjour" il faut l'intégrer dans la variable? 20:37 oui, ok 20:37 hype_: oui, il faut l'ajouter 20:37 ok c'est bon pour moi :D 20:37 un espace est un caractère comme les autres 20:37 "bonjour " + "monde" 20:37 robbykfet [n=robbykfe@ALyon-157-1-111-199.w90-41.abo.wanadoo.fr] has joined #ubuntu-fr-classroom 20:37 mode/#ubuntu-fr-classroom [+m] by gpocentek 20:38 on a déjà mis le doigt dessus mais pour enfoncer un peu plus : 20:38 a = 1 20:38 a 20:38 b = "1" 20:38 b 20:38 robbykfet [n=robbykfe@ALyon-157-1-111-199.w90-41.abo.wanadoo.fr] has left #ubuntu-fr-classroom [] 20:38 a est différent de b, car a est un entier, et b une chaine de caractères 20:38 mode/#ubuntu-fr-classroom [-m] by gpocentek 20:38 ok pour ça ? 20:38 oui 20:38 ok.. 20:38 peut on attribuer une fonction comme variable ? 20:38 icebird [n=weechat@adsl-84-226-44-18.adslplus.ch] has quit [Read error: 104 (Connection reset by peer)] 20:38 on ne désigne pas de type mais on ne peut pas ajouter une chaine et un entier pour écrire toto5 on fait coment? 20:38 ok 20:38 "1" + "2" = "12" ! 20:38 Marty_Desktop: oui, mais pas aujourd'hui :) 20:38 ok 20:38 shadok: exactement 20:39 j ai 1 erreur 20:39 geekounet [n=geekoune@unaffiliated/geekounet] has left #ubuntu-fr-classroom ["Segmentation fault (core dumped)"] 20:39 Marty_Desktop, t'as de ces questions XD 20:39 a+b, il aime pas 20:39 sashimi: bah non c est normal 20:39 Typhoe, evidemment 20:39 a=1 b="1" a+b = error ? 20:39 rodomiro: dans ce cas là il faudra convertir 20:39 IvZ [n=user@86.67.198.47] has joined #ubuntu-fr-classroom 20:39 ok 20:39 benje, vi, mais python interprete, alors j'essais 20:40 je préfère garder ça pour plus tard si ça vous embête pas 20:40 IvZ [n=user@86.67.198.47] has left #ubuntu-fr-classroom [] 20:40 62 -64r t64t 3e +6nde a = 1 20:40 62 -64r t64t 3e +6nde a 20:40 b = "1" 20:40 b 20:40 ok 20:40 arg, désolé 20:40 erf ^^ 20:40 continuons :) 20:40 mode/#ubuntu-fr-classroom [+m] by gpocentek 20:41 Un des intérêts d'un programme est de pouvoir interagir avec l'utilisateur. On va voir pour ça deux commandes et comment les utiliser : 20:41 Sploutch_ [n=tuxlys@217-169.203-62.cust.bluewin.ch] has quit [Connection timed out] 20:41 hika [n=hika@82.253.118.137] has left #ubuntu-fr-classroom [] 20:41 - raw_input() permet de demander à l'utilisateur de saisir un texte (texte au sens large0 9a -e4t être 4n n6+bre) 20:41 désolé, pb de clavier 20:41 texte au sens large, ça peut être un nombre 20:41 - print() permet d'afficher du texte 20:42 j'y reviendrai tout à l'heure mais noter les () 20:42 raw_input et print sont des 'fonction', qui exécutent une action 20:42 la norme est de les définir avec des parenthèses (qui contiennent très souvent quelque chose d'ailleurs) 20:43 on y reviendra tout à l'heure 20:43 raw_input() s'utilise de cette manière : 20:43 resultat = raw_input("Veuillez saisir quelque chose : ") 20:43 La chaîne de caractère sera affichée à l'écran, et le curseur attendra que l'utilisateur saisisse du texte puis . 20:43 icebird [n=weechat@adsl-84-227-39-87.adslplus.ch] has joined #ubuntu-fr-classroom 20:43 Ce qui a été saisi sera alors assigné à la variable résultat. 20:43 mode/#ubuntu-fr-classroom [-m] by gpocentek 20:44 vous pouvez tester dans l'interpréteur avec 20:44 ressemble au string 20:44 resultat 20:44 qui vous affichera ce que vous avez saisi 20:44 du moins le résultat 20:44 Marty_Desktop: c'est est une 20:45 cool 20:45 et toujours en affectant le type approprié ? 20:45 python a un sale caractere, il ne supporte pas mes accents : Veuillez saisir quelque chose : heho heho ééé 20:45 >>> éresultat 20:45 File "", line 1 20:45 éresultat 20:45 ^ 20:45 il n'y a pas de différence entre taper "a" et taper "print a" ? 20:45 deuzene: à priori ce sera une chaine de caractère 20:45 ploc: si 20:46 joel: t'as un 'é' qui traine 20:46 gpocentek: laquelle ? 20:46 exact, la bonne reponse de pytho est >>> resultat = raw_input("Veuillez saisir quelque chose : ") 20:46 Veuillez saisir quelque chose : ééé 20:46 >>> resultat 20:46 '\xc3\xa9\xc3\xa9\xc3\xa9' 20:46 >>> 20:47 idem avec les accents 20:47 ploc: juste 'a' t'affiche l'objet 'brut', print a fait une mise en forme 20:47 ploc: dans l'interpréteur seulement 20:47 joel: on aura pas ce problème dans les scripts 20:47 ah ok, le print() vire ls " ' " 20:47 les* 20:47 et quelle différence entre taper "print a" et taper "print() a" ? 20:47 hype_: entre a4tre 20:47 print(a) affiche les accents ! 20:47 ok 20:47 j'y viens, j'y viens 20:48 mode/#ubuntu-fr-classroom [+m] by gpocentek 20:48 Pour afficher du texte on utilise : 20:48 print "Du texte qui ne change pas et autre chose : ", resultat 20:48 mode/#ubuntu-fr-classroom [-m] by gpocentek 20:48 regardez ce que vous donne l'interpréteur 20:48 ho, j'avait pas capté le ,resultat 20:49 un espace entre les deux 20:49 en fait cette instruction affiche 2 choses 20:49 2 secondes j ai pas encore saisi 20:49 la chaine "Du texte qui ne change pas et autre chose : " 20:49 et le contenu de la variable resultat 20:49 ééé 20:50 la ',' permet de séparer les 2 chaines de caractères 20:50 ça revient à "blabla" + resultat, sans erreur 20:50 gpocentek: ça change quoi d'appler print "foo" où print("foo") ? 20:50 Lutin: rien 20:50 enfin pas à ma connaissance 20:50 hype_, nan, avec le plus, y a pas un espace d'intercalé 20:51 attention 20:51 gpocentek: ok 20:51 le + n'ajoute pas d'espace 20:51 la , dans une instruction print en ajoute un par contre 20:51 avec le plus il y a un calcul de la chaine avant de la passer a print, sinon c print qui gere si je me trompe pas 20:51 print permet vraiment une mise en forme du texte 20:51 Zura: ouep 20:51 a-t-on le choix du caractère de concaténation ? par défaut c'est l'espace, mais si on souhaite utiliser un ; (fichier csv) ou une tabulation ? 20:52 c'est 2 approches différentes 20:52 ploc: non, print n'accepte que les virgules 20:52 il faut utiliser autre chose si on veut un autre type de séparation 20:52 je crois qu'il parlait du separateur en sortie 20:52 une autre manière d'utiliser printt 20:52 avec la , on peut mettre plusieurs resultat de variables a la suite ? 20:53 Marty_Desktop: suffit d'essayer, et oui 20:53 ", a,b 20:53 Zura: oui c'est ça, de base "," = " ", mais si on veut que "," = ";" avec print, c'est possible ? 20:53 Marty_Desktop: oui 20:53 shadok: gpocentek ok 20:53 Zura: je sèche sur la question de ploc là en fait, tu saurais ça ? 20:53 a,b=1,2 20:53 print a,b 20:53 1 2 20:54 gpocentek: non non c mes premieres approches python :p 20:54 ok ^^ 20:54 ploc: j'ai jamais vu d'utilisation de print qui n'affiche pas d'espace 20:54 pour l instant je vais ounlier les é à è..etc 20:54 ok 20:54 sinon, marrant : 20:54 c'est d'ailleurs très peu utilisé comme ça 20:54 >>> a = 3 20:54 >>> b = 4 20:54 >>> print a, b 20:54 3 4 20:54 >>> print a + b 20:54 7 20:54 oui 20:55 pourquoi à ton avis ? 20:55 la virgule concatène, le plus calcule 20:55 string/float 20:55 integer plutôt 20:55 le plus calcule, et tu as défini a et b comme des entiers 20:55 donc il se sert du + "addition", pas du plus "concaténation" 20:56 est-ce que j'ai répondu à toutes les question ? 20:56 +s 20:56 donc utiliser la virgule revient à caster en string 20:56 ploc: si tu es met un + c'est evalué avant d'envoyer a print 20:56 je bloque avec raw_input() 20:56 madinina: pk ? 20:56 madinina: ok, qu'est-ce qui te gêne ? 20:56 resultat = raw_input("Veuillez saisir quelque chose : ") 20:56 ptitgui [n=ptitgui@bro29-2-88-164-249-78.fbx.proxad.net] has joined #ubuntu-fr-classroom 20:56 les parenthèses, ça donne une liste ? print ("hello","world") 20:57 (je pense que le cours durera plus d'une heure :) ) 20:57 print ("hello") ,"world" 20:57 si je met un accet par exemple "hé hé" le résultat est tout autre 20:57 *accent 20:57 madinina , essayes print(resultat) 20:57 madinina: problème d'encodage, ne t'occupe pas de ça 20:58 PhilippeP [n=Philippe@user-85-201-45-73.tvcablenet.be] has left #ubuntu-fr-classroom ["Kopete 0.12.1 : http://kopete.kde.org"] 20:58 ok 20:58 mode/#ubuntu-fr-classroom [+m] by gpocentek 20:58 http://gauvain.pocentek.net/exemple1.py 20:58 vous pouvez récupérer ça, et on va le regarder 20:58 mode/#ubuntu-fr-classroom [-m] by gpocentek 20:58 tout le monde a le script ? 20:59 yep 20:59 ouiii 20:59 wget http://gauvain.pocentek.net/exemple1.py -O- -q :> 20:59 je crois :p 20:59 oui 20:59 print '%s,%s,%s' % ('a', 'b', 'c') <= pour avoir virgule a la place d'un espace 20:59 c'est un petit script tout bête 20:59 je l ai 20:59 vu sur un site c pas de moi 20:59 mawell [n=mawell@ras75-4-82-235-58-51.fbx.proxad.net] has left #ubuntu-fr-classroom [] 20:59 Zura: exact 20:59 j'en parle tout à l'heure 20:59 oui 21:00 gpocentek: et bon ya des concepts qui depasse une initiation je pense 21:00 ok, qui me raconte ce que fait le script sans l'exécuter ? :) 21:00 Zura: oui 21:00 j'avais prévenu au départ ;) 21:00 moi? 21:00 :D 21:00 mnml: un volontaire c'est bien :p 21:00 donc 21:00 # On demande le nom 21:00 # On demande le prénom 21:00 y a des commentaires ;) 21:00 # On affiche le tout 21:00 arf ^^ 21:00 ^^ 21:01 sa3e +an5e de c6++enter 21:01 on bon script :D 21:01 un* 21:01 gpocentek: vi je precisais juste pour repondre sachant que c hors sujet 21:01 ;) 21:01 (saleté de clavier) 21:01 je commence ligne 5 21:01 (je disais "sale manie de commenter") 21:01 on declare la variable nom = a un imput clavier je supose accompagné de la question Quel est votre nom 21:02 vive le "# -*- coding: UTF8 -*-" !!! 21:02 :D 21:02 gpocentek, j'ai bon? :s 21:02 mnml: oui oui :) 21:02 apres ligne 8 c'est a peu pres la meme chose avec une autre variable, puis 21:02 d ailleurs les -*- sont obligatoires pour le codage ? 21:02 et la suite ? 21:02 finalement 21:02 ligne 11 on renvoi "bonjour" plus 21:02 Flew [n=Flew@AAubervilliers-153-1-7-27.w83-112.abo.wanadoo.fr] has joined #ubuntu-fr-classroom 21:02 le contenu des deux variables 21:02 ouep 21:03 mnml: tu saurais prédire comment va s'afficher tout ça ? 21:03 Marty_Desktop: oui, c'est lu par python 21:03 (à la virgule/espace près) 21:03 je l'ai pas executé mais je pense que 21:03 tout va s'afficher a la suite 21:03 sans virgules 21:03 sur la meme ligne 21:03 'bonjour toto tata' 21:04 voilà, avec des espace entre chaque chaîne 21:04 l'esapce avant la virgule est pris en compte donc 21:04 okok 21:04 hype_: non 21:04 ah 21:04 print "bonjour",prenom,nom 21:04 9a d6nne 3e +ê+e rés43tat 21:04 Marty_Desktop: je pense que "# -*- coding: UTF8 -*-" est destiné à l'éditeur emacs 21:04 GRRR 21:04 ça donne le même résultat 21:05 sherkin: non c est pour que l interpreteur prenne le bon charset 21:05 c'est quoi ce trip de clavier ? un leet-keyboard ? ^^ 21:05 sherkin: ou un pc portable :) 21:05 shadok: un portable avec un 2ème clavier 21:05 anyway 21:05 mode/#ubuntu-fr-classroom [+m] by gpocentek 21:05 juste un petit point sur les 2 premières lignes 21:06 la deuxième définit donc l'encodage, tous les éléments sont importants 21:06 y compris les -*- 21:06 la première ligne est ce qu'on appelle un shebang 21:06 ça permet de signaler le programme à utiliser pour lancer le script quenad il est exécuter directement 21:07 i.e. ./exemple1.py 21:07 (avec un chmod a+x avant) 21:07 et vous aurez tous compris que les lignes qui commencent par # ne sont pas prises en compte par python 21:07 ce sont des commentaires 21:07 mode/#ubuntu-fr-classroom [-m] by gpocentek 21:07 ok pour ça ? 21:07 yep 21:07 sûr 21:08 ok 21:08 ok 21:08 comment on charge le script à partir du prompt python ? 21:08 sauf les 2 premières ! 21:08 oui 21:08 est-ce que l'UTF8 de la 2ème ligne permet d'afficher les accents éventuels d'un prénom ? 21:08 ok j ai pigé grace a l exemple 21:08 ploc: oui, c'et un traitement particulier 21:08 wetaskiwin: oui, c'est fait pour 21:09 sherkin: import exemple1 (complètement hors cours d'aujourd'hui) 21:09 ok, à vous de bosser 21:09 Petit exercice : écrire un script qui demande l'âge de 2 personnes, et qui affiche la différence d'âge (positif ou négatif, peu importe pour l'instant) 21:09 juste une petite aide 21:10 on a vu que lorsque que demande du texte, le résultat est une chaine de caractère 21:10 mais on va devoir traiter ça comme des nombres 21:10 pour faire la conversion, on utilise 21:10 int(ma_chaine_de_caractere) 21:10 ok ? 21:10 si je met : nom = raw_input() 21:11 madinina: essaie dans l'interpréteur, tu verras :) 21:11 xcfa [n=b52@233.90.99-84.rev.gaoland.net] has joined #ubuntu-fr-classroom 21:11 donc vous avez 2 minutes 10 pour résoudre l'exercice ;) 21:12 c'est fait :) 21:12 j ai essayé mais comme tu as dit je verrai ultérieurement (soucis accent) 21:12 vous pouvez utiliser pastebin.ca (ou autre) pour coller vos scripts 21:12 gpocentek: si t'as besoin pour aider à corriger ;) 21:12 gapz: \o/ 21:12 vous pouvez aussi utiliser http://paste.dunnewind.net/ pour coller votre code en ligne 21:13 Salut 21:13 Bonsoir xcfa 21:13 hello xfca 21:13 gpocentek: donc ce soir tu ne vois pas les fonctions, les boucles ni les conditions 21:13 gapz: et pastebinit vaincra aussi :) 21:14 question hors sujet, comment changer de chan avec irssi ? 21:14 Tatanka [n=Miranda@ttn91-1-82-228-230-155.fbx.proxad.net] has joined #ubuntu-fr-classroom 21:14 ploc: ctrl+n ou p, mais cette question aurait mieux ca place sur ubuntu-fr ;) 21:14 age1=raw_input("âge de la première personne ? ") 21:14 age2=raw_input("âge de la deuxième personne ? ") 21:14 print "Différence d'âge = ", int(age1)-int(age2) 21:14 ploc: echap + num fenetre 21:14 Marty_Desktop: si, juste après 21:14 Phocean_ [n=Phocean@m57.net81-64-194.noos.fr] has joined #ubuntu-fr-classroom 21:14 ploc: ou ctrl + n ou p 21:15 http://rafb.net/p/UjQGE469.html 21:15 :D 21:15 comment on calcule une valuer absolue? :p 21:15 abs sans doute 21:15 ah 21:15 hype_: on verra après mais sans abs 21:15 http://paste.dunnewind.net/download/460 21:15 sinon c'est pas drôle 21:15 ok :> 21:16 avec des if? :p 21:16 hype_: oui :) 21:16 okok ^^ 21:16 je tente :> 21:16 hype_: tu peux matter ca aussi: http://wikipython.flibuste.net/moin.py/CalculerJuste 21:16 hype_: je confirme ya abs 21:16 des scripteurs ont besoin d'un peu de temps encore ? 21:16 good for me 21:17 http://paste.dunnewind.net/461 21:17 good for me too 21:17 ok 21:17 ok 21:17 pour les solutions, celles qui ont été proposées sont toutes OK 21:17 http://paste.dunnewind.net/462 21:17 gpocentek , oué enfait j'ai besoin de ton aide pour les if ; j'vais attendre :] 21:17 Uggy: tss tss, et lire l'énoncé correctement ? :) 21:17 ah oups c'etait pas la somme ? 21:17 :) 21:18 hehe 21:18 c'était la différence mais peu importe 21:18 mode/#ubuntu-fr-classroom [+m] by gpocentek 21:18 quel cancre cet Uggy :)) 21:18 Amélioration, toujours avoir un nombre positif : les conditions 21:18 Pour que le script réagisse suivant ce que l'utilisateur à saisi, on utilise des instructions de contrôle, if et else. Elle s'utilisent comme ceci : 21:18 if (une_condition_est_vraie): # on execute # une série # d'instructions 21:18 ouaoouh mais c'est qu'il est utilisé mon pastebin en plus :) 21:18 else # sinon # on fait autre chose 21:18 damned, j'ai perdu les retours à la ligne 21:18 je pastebine 21:19 http://pastebin.ca/738940 21:19 (désolé Sp4rKy) 21:19 ^^ 21:19 La syntaxe est (je pense) assez claire, mais elle amène quelques nouvelles notions. 21:19 mode/#ubuntu-fr-classroom [-m] by gpocentek 21:19 je parle pas bcp mais je prend des notes 21:19 c'est clair pour tout le monde ? 21:20 oui 21:20 ok 21:20 oui 21:20 ok 21:20 mode/#ubuntu-fr-classroom [+m] by gpocentek 21:20 Les booléens : 21:20 Une variable booléennes est une variable qui n'accepte que 2 valeurs : vrai ou faux (True ou False en python). 21:20 On peut étendre ceci aux nombres et dire : si c'est 0 c'est faux, sinon (dans tous les autres cas), c'est vrai. 21:21 "une_condition_est_vraie" va donc être une expression qui sera soit vraie (ou non nulle), soit fausse (nulle). Si elle est vraie, on exécute la première partie de la condition, sinon la deuxième (ce qui suit else). 21:21 mode/#ubuntu-fr-classroom [-m] by gpocentek 21:21 ok pour les booléens ? 21:21 il faut indenter ? comment finit-on la partie "else" ? 21:21 sherkin: j'y viens juste après 21:21 gpocentek: pas de then en python ? 21:22 candide_ [n=candide@101.219.20.81.dynamic.adsl.abo.nordnet.fr] has quit ["Ex-Chat"] 21:22 Marty_Desktop: pas besoin, c'est l'indentation qui remplace 21:22 ok 21:22 mode/#ubuntu-fr-classroom [+m] by gpocentek 21:22 L'indentation : 21:22 Pour connaître toutes les instructions à exécuter si la condition est vraie, on définit un "bloc". 21:23 Ce bloc est défini par une indentation ( en général). 21:23 # on execute 21:23 # une série 21:23 # d'instructions 21:23 voilà un bloc 21:23 chaque ligne est indentée de la même manière 21:23 on peut bien sûr imbriquer des blocs 21:23 mode/#ubuntu-fr-classroom [-m] by gpocentek 21:23 ok pour ça ? 21:24 ok 21:24 Combien de blancs pour un tab gpocentek ? 21:24 si on remplace la tabulation par autant d'espace python le gere bien ? 21:24 xcfa: peu importe 21:24 ok 21:24 xcfa: tu appuis sur la touche Tab et tu compte :) 21:24 donc l'indentation est hyper importante ? 21:24 genre une ligne avec une tab et celle du dessous autant d'espace 21:24 si on oublie un espace on est cuit ? 21:24 Zura: oui 21:24 si on met moins d'espaces après le 1er ? 21:24 ok 21:25 Zura: ah ça, à vérifier 21:25 ploc: complètement cuit 21:25 gpocentek: faut dire que c chercher le bug de faire ca mais ct pour info ;) 21:25 il faut que ce soit rigoureux 21:25 la ligne doit début par un # ou c'est pour montrer le bloc uniquement ? 21:25 Zura: ^^ 21:25 ploc: non non, c'était pour montrer le bloc 21:25 ok 21:25 tout ce qui vient après le # est un commentaire 21:26 un commentaire ne commence pas forcément en début de ligne 21:26 je vous pastebine un petit script 21:26 Donc pas de '\t' mais des ' ' ? 21:26 fais nous réver 21:26 http://paste.dunnewind.net/463 21:26 '\t' ça correspond à Tab? 21:26 xcfa: il faut que ça reste la même chose pour chaque ligne du bloc 21:26 hype_: oui 21:27 xcfa: après peu importe ce que c'est 21:27 k 21:27 ok 21:27 donc ce script, qu'est-ce qu'il va donner comme résultat ? 21:27 (et peut etre pour ceux qui aiment la lecture, la PEP 8 propose un guide complet sur le style d'ecriture en python: http://www.python.org/dev/peps/pep-0008/à 21:27 )* 21:27 (y'a une surprise dedans, un mot inconnu !) 21:27 merci gapz :) 21:28 gapz: a bookmarker ;) 21:28 _16aR_ [n=dolanor@unaffiliated/16ar/x-367395] has joined #ubuntu-fr-classroom 21:28 a>b 21:28 or = ou 21:29 car b>=0 21:29 sherkin: oui :) 21:29 Typhoe: bingo 21:29 gpocentek: hors sujet : peut on mettre des boucles ou des fonctions dans les instructions if ou else ? 21:29 c'est un piege.. sans #!/usr/bin/env python 21:29 Marty_Desktop: oui 21:30 ca pete une erreur :) 21:30 Marty_Desktop: t'es toujours hors sujet ! ;-) 21:30 Marty_Desktop: pas des déclarations de fonctions, des appels 21:30 gpocentek: et dans le if () ? 21:30 Marty_Desktop: aussi 21:30 sans doute sinon python n'aurait pas la popularité qu'il a s'il ne gerait pas ca :p 21:30 ok merci 21:30 je vais vous laisser 21:30 Marty_Desktop: mais c'est moins permissif que le C 21:30 madinina: 2 sec 21:31 Uggy: tu peux lancer par "python nom.py" sans le shebang 21:31 est-ce que c'est vu pour tout le monde le résultat du script ? 21:31 ok 21:31 yep 21:31 oui 21:31 j ai un truc qui pourrait t interesser pour ton tuxdroid 21:31 ok 21:31 sherkin: ok..merci ;) 21:31 avec le 'or', si l'une des deux expression est vraie, alors la condition est vérifiée 21:31 madinina: on peut voir ca d ici une heure sur #tuxdroid ? 21:32 en remplaçant 'or' par 'and' il aurait fallu que les 2 conditions soient validées (ce qui n'aurait pas été le cas) 21:32 j ai retenu pour mon 1 cours la vaiable +le type+le string+interagir avec l utilisateur et le if et else 21:32 madinina: y'aura les logs si tu veux 21:32 d ici 1 heure serai couché 21:32 et y'a un 'service après vente' sur le chan si t'as des questions ;) 21:32 gpocentek: d ailleurs les log des autres cours sont ou ? 21:32 mais je suis heureux d apprendre qu il y a 1 canal tuxdroid 21:33 Marty_Desktop: chez moi, et plein d'autres personnes ;) 21:33 madinina: ok bah tant pis pour toi :) 21:33 demain soir je viendrai dessus 21:33 Marty_Desktop: un peu éparpillés, on réorganise ça 21:33 ok, je continue :) 21:33 mode/#ubuntu-fr-classroom [+m] by gpocentek 21:33 Marty_Desktop: http://www.sceen.net/~gapz/classroom/python-2007-10-16 21:33 Pour l'égalité et la différence on utilise respectivement '==' et '!='. 21:33 ATTENTION à ne pas confondre '=' (réservé à l'assignation de variable) et '==' (test d'égalité). 21:33 L'ambiguïté est à l'origine de nombreux bugs quand on débute (et même plus tard, après une longue journée ou un peu trop d'alcool ;) ). 21:34 Donc (1 != 1) sera faux, et (1 == 1) sera vrai. 21:34 mode/#ubuntu-fr-classroom [-m] by gpocentek 21:34 ok pour ça ? 21:34 vivi 21:34 (et d'une maniere generale tu peux retrouver les liens à partir de http://doc.ubuntu-fr.org/projets/ecole/sessions Marty_Desktop ) 21:34 gapz: a bah voila :) 21:34 merci 21:34 si c'est ok on peut reprendre l'exercice de tout à l'heure et fignoler 21:35 débrouillez vous pour que le résultat soit toujours positif :) 21:35 (INTERDICTION FORMELLE D'UTILISER abs() ) 21:35 gpocentek http://rafb.net/p/lOa1X781.html jcapte pas 21:35 gpocentek: lol mince faut je refasse alors :p 21:36 c'est quoi se ";" qui traine ? 21:36 bon en cas d'erreur d'indentation python gueule : IndentationError: unindent does not match any outer indentation level 21:36 ^^ 21:36 ah ben oui 21:36 j'ai oublié de préciser 21:36 jai testé :p 21:36 un if () se termine toujours par ':' 21:36 et le else: qui suit aussi 21:37 ah 21:37 dites 21:37 *petit* oublie gpocentek :)) 21:37 ça permet de dire à python que le test est fini 21:37 j'ai une question 21:37 (non je previens hein ...) 21:37 gapz: c'est fait exprès 21:37 hehe 21:37 reber: vas-y :) 21:37 corentin` [n=corentin@unaffiliated/corentin] has joined #ubuntu-fr-classroom 21:37 Bonsoir 21:37 skateonmars [n=skateinm@bea13-1-82-228-105-196.fbx.proxad.net] has joined #ubuntu-fr-classroom 21:37 Bonsoir corentin` 21:37 c'est trop tard pour le python ? 21:37 bonsoir corentin` 21:37 bonsoir gapz :) 21:37 corentin`: c en cours 21:37 corentin`: c'est en cours 21:38 en remplacant "# -*- coding: UTF8 -*-" par "# -*- coding: utf-8 -*-" , à la fois python et emacs sont contents ;) 21:38 corentin`: pas tout à fait, mais tu es en retard 21:38 t'arrives au milieu d'un exercice 21:38 arf 21:38 sherkin: vim est content aussi 21:38 gpocentek , qu'est ce qui bloque ici? if ( int(age1) >= int(age2) ); 21:38 je te notice l'url du logs en 'direct' si tu veux corentin` ;) 21:38 hype_: ";" != ":" 21:38 avec "UTF8", emacs râle 21:38 point-virgule et deux points 21:38 gapz: oh oui !! terrible :) 21:38 :O 21:38 (/msg gpocentek http://pastebin.ca/738962 21:38 sherkin: ah oui, ok 21:39 http://pastebin.ca/738963 21:39 ploc: nickel 21:39 ploc: n'ai pas honte, tu peux mettre ca sur le chan :P 21:39 regardez ce qu'a fait ploc, c'est intéressant 21:39 il récupère directement un entier dès la première étape 21:40 au revoir 21:40 pas besoin de convertir ce que l'utilisateur a saisi plus tard 21:40 joel [n=joel@dyn-83-155-143-200.ppp.tiscali.fr] has quit ["Quitte"] 21:40 bye joel 21:40 ah int(raw_input 21:40 cool 21:40 oui 21:40 on peut imbriquer le tout 21:40 bonne fin de soirée et merçi à tous de m avoir soutenu 21:40 ++ madinina 21:40 madinina: bonne soriee 21:41 gapz: tu veux copier je sais ! ;-) 21:41 ok 21:41 vais bosser 1 peu plus sur le python pour la prochain cours 21:41 dernière petite amélioration au script maintenant 21:41 madinina [n=madinina@bdy93-8-88-171-209-231.fbx.proxad.net] has quit ["PJIRC forever!"] 21:41 http://pastebin.ca/738962 21:41 mais un petit point sur print 21:41 mode/#ubuntu-fr-classroom [+m] by gpocentek 21:41 mode/#ubuntu-fr-classroom [+m] by gpocentek 21:41 Il existe une manière très pratique d'imprimer un texte qui contient plusieurs variables mélangées à du text constant : 21:42 print "Bonjour, mon prénom est %s et mon nom %s" % (prenom, nom) 21:42 Les %s de la chaîne de caractère vont être remplacés par les valeurs de prenom et nom. C'est l'instruction % qui dicte à python cette manière d'agir. Le duo (prenom, nom) est un "tuple", on y reviendra plus tard. 21:42 Pour fignoler l'exercice, le résultat devra afficher "an" ou "ans" suivant la différence d'âge. 21:42 mode/#ubuntu-fr-classroom [-m] by gpocentek 21:42 SeTtHe [n=stephan@62.147.185.205] has joined #ubuntu-fr-classroom 21:43 est-ce que c'est ok cette technique ? 21:43 le s de %S a une signification particuliere? (string)? 21:43 oui, string 21:43 il y a d'autres possibilités? 21:44 ça peut être %d pour des chiffres 21:44 nombres* 21:44 decimal? :p 21:44 et tout un tas d'autres choses que j'avoue n'avoir pas en tête là 21:44 Typhoe: sans doute 21:44 ok, merci 21:44 Tchong [n=yom@xbn44-2-82-225-227-79.fbx.proxad.net] has quit ["Quitte"] 21:44 gpocentek: moi j'ai une amélioration pour le script de ploc, tu peux me dire si ça marche ? http://pastebin.ubuntu-nl.org/40855/ 21:45 (je vous laisse vous amuser avec l'exercice en dehors du cours) 21:45 corentin`: abs était interdit ;) 21:45 gpocentek: arf ok 21:45 aerdhyl [n=aerdhyl@ip-42.net-89-3-66.rev.numericable.fr] has quit ["Quitte"] 21:45 il a mis fabs, pas abs :) 21:45 ok, je voudrais continuer avec un élément très utilisés en python, les listes 21:46 voila ce qui arrive quand on arrive a la bourre par le haut de l amphi discretos corentin`:) 21:46 mode/#ubuntu-fr-classroom [+m] by gpocentek 21:46 Utiliser une variable par élément à saisir, ça devient très vite ingérable (imaginez ce que ça donnerait pour gérer une liste de 10000 clients). Python possède un autre type de données, les listes. 21:46 Il s'agit en fait d'un "tas" de variables groupées en une seule. Par exemple (pour notre liste de choses à faire) on pourrait avoir : 21:47 a = "coup de fil à manman" 21:47 b = "acheter du café" 21:47 c = "essayer windows vista" 21:47 Sploutch_ [n=tuxlys@249-187.203-62.cust.bluewin.ch] has joined #ubuntu-fr-classroom 21:47 A chaque nouvel élément il faudrait ajouter une variable, c'est ingérable. On peut alors utiliser : 21:47 todo = ["coup de fil à manman", "acheter du café", "essayer windows vista"] 21:47 (à saisir dans l'interpréteur) 21:47 On n'a plus qu'une seule variable, qui contient un ensemble cohérent d'éléments, et qui peux bien entendu être modifiée. 21:48 mode/#ubuntu-fr-classroom [-m] by gpocentek 21:48 ok jusque là ? 21:48 ouep 21:48 oui 21:48 oui 21:48 une liste peut contenir n'importe quoi 21:48 Mais et la référence à ces éléments ? 21:48 des entiers, chaine, d'autres listes... 21:48 il y a une erreur dans le 3eme element non ? ;) 21:48 xcfa: j'y viens 21:48 s/vista/ubuntu/ 21:48 ou alors s/essayer/formater/ 21:48 ok 21:48 il a dit n'importe quoi! 21:48 :p 21:48 Uggy: hehe 21:48 ok, je continue 21:48 mode/#ubuntu-fr-classroom [+m] by gpocentek 21:49 Une liste est ce qu'on appelle un 'objet' (comme n'importe quel élément en python, mais peu importe pour le moment). Et à un objet correspond des 'méthodes'. 21:49 Ces méthodes sont des actions que l'on peut appliquer à l'objet. Par exemple, on peut ajouter un élément à notre liste : 21:49 todo.append("préparer le cours python sur l'orienté objet") 21:49 Dans l'interpréteur, affichez maintenant todo: 21:49 todo 21:49 Le nouvel élément a bien été ajouté à notre liste. 21:50 mode/#ubuntu-fr-classroom [-m] by gpocentek 21:50 ok pour tout le monde ça ? 21:50 yep 21:50 yep 21:50 ok 21:50 ok 21:50 on peut choisir l'endroit? (pas en dernier) 21:50 vous êtes merveilleux ^^ 21:50 ok 21:51 Uggy: append c tjs a la fin ;) 21:51 Uggy: on peut, mais ça demande un peut de gymnastique 21:51 peu* 21:51 j'aime pas la gym ;) 21:51 mode/#ubuntu-fr-classroom [+m] by gpocentek 21:51 "todo" est l'objet auquel on s'intéresse, append() la méthode. 21:51 ATTENTION, todo.method != todo.method(). 21:51 todo.method correspond à la description de la méthode, alors que todo.method() correspond au fait d'appliquer la méthode. 21:52 mode/#ubuntu-fr-classroom [-m] by gpocentek 21:52 c'est important à piger ça 21:52 c'est quoi la description de la méthode ? 21:52 meme question... 21:52 Hmm, un exemple d'utilisation de todo.method ? (en opposition avec todo.method()) 21:52 marseillai [n=mars@ubuntu/member/marseillai] has quit [Remote closed the connection] 21:52 c'est un pointeur non ? 21:52 >>> todo.append 21:52 21:52 ploc: c'est (traduction python -> français) "J'ajoute l'élément donner à la fin de la liste" 21:53 Uggy: tiens, regarde ca http://fr.wikiversity.org/wiki/Python/Les_structures_de_donn%C3%A9e#Ajout_d.27.C3.A9l.C3.A9ments 21:53 merci deuzene 21:53 d erien 21:53 gpocentek: todo.method c'est pour passer des pointeurs de fonction en gros ? 21:53 (avec insert) 21:53 je parlerai des fonctions après, ce sera plus clair 21:53 corentin`: oui mais là c'est hors topic pour aujourd'hui 21:53 on fait y'a 2 choses 21:53 gpocentek: c'etait juste pour savoir ^^ merci d'avoir répondu :p 21:54 gapz: merci ;) 21:54 le mode d'emploi 21:54 gpocentek: alors les descriptions ne sont utilisées qu'en mode interactif ? 21:54 et l'application du mode d'emploi 21:54 ploc: c'est une particularité de python en fait 21:54 skateinmars [n=skateinm@bea13-1-82-228-105-196.fbx.proxad.net] has quit [Connection timed out] 21:54 on peut jouer avec les description 21:54 les descriptions c'est du pythondoc ? 21:54 imagine une méthode qui s'appelle 21:54 bonjour.je.suis.nouveau.ici 21:54 si tu fais 21:55 i = bonjour.je.suis.nouveau.ici 21:55 fait foo.i() revient à faire foo.bonjour.je.suis.nouveau.ici() 21:55 faire* 21:55 Flew [n=Flew@AAubervilliers-153-1-7-27.w83-112.abo.wanadoo.fr] has quit [Read error: 113 (No route to host)] 21:55 ce sont des objets à manipuler comme les autres, si ce n'est qu'ils ne contiennent pas une valeur, mais font une action 21:55 sashimi [n=sashimi@ASte-Genev-Bois-154-1-23-154.w81-249.abo.wanadoo.fr] has quit [Read error: 110 (Connection timed out)] 21:56 est-ce que c'est un tantinet clair ? 21:56 ouah !! 21:56 :) 21:56 un tantinet ;) 21:56 un tantinet ;) 21:56 c bon 21:56 :O 21:56 mais pas plus... 21:56 oui, c'est beau python.. 21:56 ce sera plus clair après avoir vu les fonctions 21:56 pas sur ;) 21:57 ok 21:57 un gros tantinet clair, c'est pas facile à expliquer niveau débutant ... 21:57 pour en revenir à notre todo 21:57 Vous noterez que 'todo' a été modifié sans que ait besoin de lui réassigner une nouvelle valeur ; on n'a pas eu besoin de faire : 21:57 todo = todo.methode() 21:57 davromaniak [n=cyril@ubuntu/member/davromaniak] has quit ["Quitte"] 21:57 Flew [n=Flew@AAubervilliers-153-1-7-27.w83-112.abo.wanadoo.fr] has joined #ubuntu-fr-classroom 21:57 clair ça ? 21:57 la méthode s'applique directement sur l'objet 21:57 En fait, les éléments ne sont manipulés qu'a travers des fonctions ? 21:58 xcfa: oui 21:58 ok 21:58 "tout est objet" 21:58 ok 21:58 ok 21:58 l'accès aux éléments de la liste maintenant 21:58 gpocentek: y'a un meta niveau complet ? 21:58 corentin`: c'est à dire ? 21:59 gpocentek: un niveau d'abstraction du langage 21:59 Sploutch [n=tuxlys@249-187.203-62.cust.bluewin.ch] has quit [Success] 21:59 gpocentek: genre une classe class, une class method, une classe field, etc 21:59 il me semble que oui 21:59 (je continue) 21:59 On accède aux éléments d'une liste par leur indice (de 0 à (nombre_d_elements - 1)). Le premier élément est donc accessible par : 21:59 gpocentek: en fait, on utilise rarement = pour l'affectation, on privilégie les fonctions, non ? 22:00 ploc: pas toujours 22:00 ploc: j'y reviens tout à l'heure 22:00 mode/#ubuntu-fr-classroom [+m] by gpocentek 22:00 donc 22:00 On accède aux éléments d'une liste par leur indice (de 0 à (nombre_d_elements - 1)). Le premier élément est donc accessible par : 22:00 todo[0] 22:00 (essayer dans l'interpréteur) 22:00 Le nombre d'éléments contenus dans une liste est donné par len(liste) : 22:00 nb = len(todo) 22:00 Donc le dernier élément de la liste est : 22:00 todo[nb - 1] 22:01 mode/#ubuntu-fr-classroom [-m] by gpocentek 22:01 ok pour ça ? 22:01 ok 22:01 ok 22:01 pour ceux qui connaissent d'autres langage c'est l'équivalent d'un tableau 22:01 hum :/python aurait pu implementer todo.len :p 22:01 ploc: affectation pour =, action sur l'objet pour methode 22:01 Tartopom [n=Tartopom@ip-5.net-81-220-107.nantes.rev.numericable.fr] has quit ["A plus là."] 22:01 mode/#ubuntu-fr-classroom [+m] by gpocentek 22:01 Si l'on veut agir sur tous les éléments d'une liste, on utilise l'instruction 'for' : 22:01 (je pastebine 22:02 http://pastebin.ca/738991 22:03 et un exemple 22:03 for element in todo: 22:03 print " - %s" % untodo # 1 seul élément à remplacer dans la chaine, pas besoin de parenthèses 22:03 (vous pouvez saisir ça dans l'interpréteur, mais n'oubliez pas l'indentation) 22:03 mode/#ubuntu-fr-classroom [-m] by gpocentek 22:03 SeTtHe [n=stephan@62.147.185.205] has quit ["Ex-Chat"] 22:03 est-ce que ça va ça ? 22:03 vi me suis fait avoir avec lr'indent 22:03 :p 22:03 oui 22:04 c'est ce qu'on appelle une boucle 22:04 on passe par tous les éléments de la liste, on assigne la valeur de l'élement à une variable, et on joue avec 22:04 et la fin de la boucle ? 22:05 on passe à la suite du script 22:05 ah 22:05 l'indentation 22:05 elle s'arrête quand l'indentation remonte d'un cran 22:05 exactement comme pour if et else 22:05 ok...merci 22:05 tu as mis untodo, mais on aurait pu mettre unetache ou n'importe quoi d'autre? 22:05 bacardi555 [n=bacardi5@gob75-5-82-231-180-148.fbx.proxad.net] has joined #ubuntu-fr-classroom 22:05 rodomiro: oui 22:06 la variable peut prendre n'importe quel nom 22:06 ok 22:06 element à la place de untodo 22:06 dans l'exemple , non ? 22:06 oui 22:06 magnetik [n=magnetik@ABordeaux-152-1-98-177.w86-213.abo.wanadoo.fr] has quit [Connection timed out] 22:07 il me renvoie toujours 22:07 NameError: name 'untodo' is not defined 22:07 on peut faire plus de chose que ça avec les listes, mais je pense que je l'aborderai dans un prochain cours 22:07 deuzene: remplace untodo par element 22:07 deuzene: ah oui, je me suis planté dans l'exemple, désolé 22:07 voilà 22:08 deuzene: tu as declaré ta liste untodo au moins ? 22:08 pour ce soir je voudrais finir par parler des finctions 22:08 ok merci 22:08 des fictions ? ;-) 22:08 fonctions pardon 22:08 mode/#ubuntu-fr-classroom [+m] by gpocentek 22:09 On a parlé tout à l'heure des méthodes pour un objet. 22:09 Le terme 'méthode' est lié à la programmation orientée objet, un terme plus générique est 'fonction'. 22:09 L'intérêt d'un fonction est d'éviter des répétitions du même code. 22:09 Par exemple, votre programme va appliquer la même mise en page à du texte à plusieurs reprises, il est alors intéressant d'utiliser une fonction. 22:09 sanguinarius [n=sanguina@AMontsouris-152-1-32-99.w82-123.abo.wanadoo.fr] has joined #ubuntu-fr-classroom 22:09 Cette fonction pourrait être définie comme suit : 22:09 def list_print(texte): 22:09 n_texte = " - %s - " % texte 22:09 return n_texte 22:10 'def' précise à python que l'on débute la description d'une fonction. 22:10 'texte' est un paramètre. 22:10 'return' permet de mettre fin à la fonction, et de renvoyer le contenu d'une variable. 22:10 Notez l'indentation pour la définition de bloc. 22:10 Une fonction ne doit pas forcément retourner quelque chose, elle peut par exemple juste ecrire du texte. 22:10 mode/#ubuntu-fr-classroom [-m] by gpocentek 22:10 est-ce que c'est clair ? 22:11 la definition de fonction ne fait _rien_ 22:11 on décrtit quelque chose, c'est tout 22:11 et c'est l'appel à la fonction : 22:11 truc = list_print("tagada") 22:11 n_texte est locale ? 22:11 qui fera agir 22:11 xcfa: oui 22:12 xcfa: gpocentek: plus généralement, quelle est la portée des variables ? 22:12 ploc: dans quelle condition ? 22:12 le return est indispensable mais peut etre "vide" ? 22:12 ploc: locale par défaut, sauf si 'global' est précisé 22:12 en python, je ne sais pas 22:13 Typhoe: le return est pas indespensble 22:13 indispensable 22:13 ok 22:13 jnjb [n=nico@dyn-83-157-36-219.ppp.tiscali.fr] has joined #ubuntu-fr-classroom 22:13 je vous pastebine un script qui utiliserait cette fonction 22:13 http://pastebin.ca/739010 22:14 gpocentek, est-ce que tu vas aller jusqu'a tk/gtk/ou qt ? 22:14 la définition de fonction (pour être utilisée comme dans l'exemple) doit se trouver dans le même script 22:14 reber: pas ce soir 22:14 dans une prochaine session oui 22:14 bien 22:14 (ca va encore donner un jolie troll sur les toolkits graphique ca) 22:15 est-ce que c'est pigé le principe des fonctions ? 22:15 salut ici 22:15 yep 22:15 avant ou après, pas d'importance ? 22:15 oui 22:15 jnjb: plop 22:15 'soir jnjb 22:15 ploc: peu importe 22:15 sl Zura 22:15 hello jnjb 22:15 ok gpocentek 22:15 sa roule gapzounzr 22:15 sa roule gapzouner 22:15 sl xcfa 22:16 ok, je vous propose d'arrêter pour ce soir, et de refaire une session la semaine prochaine pour approfondir le tout 22:16 ça fait déjà pas mal d'informations si vous débutez en programmation 22:16 Flew [n=Flew@AAubervilliers-153-1-7-27.w83-112.abo.wanadoo.fr] has quit [Read error: 110 (Connection timed out)] 22:16 :] 22:16 à quelle date gpocentek ? 22:16 xcfa: mardi prochain 20H je pense 22:16 ok 22:16 ok 22:16 X2 pour le temps, 2h !!! 22:16 yaisse ! 22:16 faut prévoir large... 22:17 gpocentek: Bonn bahh merci pour ce cours :) 22:17 ploc: ouep, je pensais que ça prendrait moins de temps 22:17 gpocentek: merci pour cette introduction :p 22:17 mais peu importe :) 22:17 gpocentek: merci égalment pour ta pédagogie 22:17 gpocentek: je t'ai deranger? 22:17 :) 22:17 c plus convivial que lire un site web 22:17 jnjb: non non du tout 22:17 prévoir 2 h la semaine prochaine , ou 4 ? ;) 22:17 ok, merci pour le cours! 22:17 ok 22:17 sherkin: 2 heures c'est bien 22:17 Zura: c'est plus amusant ;) 22:17 bah merci gpocentek c'était sympa 22:17 gpocentek: j'arrive pas à faire fonctionner ton dernier script... 22:17 merci et bravo gpocentek 22:17 ouiai, il y a beaucoups de questions dans l'air ;) 22:17 faut se retaper tout les scripts tout seuls ,now :) 22:18 ploc: une erreur ? 22:18 merci gpocentek 22:18 xcfa: oui c'est normal, c'est le début ;) 22:18 gpocentek: http://pastebin.ca/739016 22:18 ploc: tu as bien mis la fonction avec ? 22:18 python, je ne connais pas des masses 22:18 Typhoe [n=Typhoe@ver78-5-88-160-138-213.fbx.proxad.net] has quit ["Leaving"] 22:18 ploc: du coup j'ai un doute pour la place de la fonction 22:18 merci gpocentek :) et bonsoir à tou(te)s! 22:18 Zura: oui, voir le pastebin 22:18 et pourtant, ça à l'air puissant 22:19 essaie en la mettant au dessus 22:19 rodomiro [n=rodomiro@86.72.153.100] has quit ["Quitte"] 22:19 hype_ [n=hype_@gar31-3-82-234-50-53.fbx.proxad.net] has left #ubuntu-fr-classroom ["There are two major products that come out of Berkeley: LSD and UNIX. We don't believe this to be a coincidence."] 22:19 ouep sans doute au dessus 22:19 car sinon ya une erreur lorsque python parcoure le script je pense 22:19 xcfa: c'est puissant et ça permet de faire du code fonctionnel assez vite 22:19 gpocentek: en effet, avec la fonction avant ça marche (j'avais pas fait exprès...) 22:19 du fait qu'il connait pas la fonction 22:19 oui, c'est l'avantage par rapport au C 22:19 aus langages compilés 22:19 *aux 22:20 (la session se termine à quelle heure, environ ?) 22:20 c'est fini