[{"data":1,"prerenderedAt":2959},["ShallowReactive",2],{"navigation":3,"\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Ftables-csv":585,"\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Ftables-csv__counterpart":1746,"\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Ftables-csv__slides":2045,"annexes-memo:\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Ftables-csv":2409,"annexes-slides:\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Ftables-csv":2649},[4,224,440],{"title":5,"path":6,"stem":7,"children":8},"SNT — Seconde","\u002Fsnt-2nde","0.snt-2nde\u002F0.index",[9,10,14,36,66,92,118,144,162,184,206],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13},"REVIEW pédagogique — SNT 2nde","\u002Fsnt-2nde\u002Freview","0.snt-2nde\u002FREVIEW",{"title":15,"path":16,"stem":17,"children":18},"Internet","\u002Fsnt-2nde\u002Fsa-internet","0.snt-2nde\u002Fsa-internet\u002F0.index",[19,20,24,28,32],{"title":15,"path":16,"stem":17},{"title":21,"path":22,"stem":23},"Adresses symboliques et DNS","\u002Fsnt-2nde\u002Fsa-internet\u002Fadresses-dns","0.snt-2nde\u002Fsa-internet\u002F1.adresses-dns",{"title":25,"path":26,"stem":27},"Internet et les réseaux physiques","\u002Fsnt-2nde\u002Fsa-internet\u002Freseaux-physiques","0.snt-2nde\u002Fsa-internet\u002F2.reseaux-physiques",{"title":29,"path":30,"stem":31},"Protocoles TCP\u002FIP et routage des paquets","\u002Fsnt-2nde\u002Fsa-internet\u002Ftcp-ip-routage","0.snt-2nde\u002Fsa-internet\u002F3.tcp-ip-routage",{"title":33,"path":34,"stem":35},"Réseaux pair-à-pair","\u002Fsnt-2nde\u002Fsa-internet\u002Fpair-a-pair","0.snt-2nde\u002Fsa-internet\u002F4.pair-a-pair",{"title":37,"path":38,"stem":39,"children":40},"Le Web","\u002Fsnt-2nde\u002Fsb-web","0.snt-2nde\u002Fsb-web\u002F0.index",[41,42,46,50,54,58,62],{"title":37,"path":38,"stem":39},{"title":43,"path":44,"stem":45},"Histoire du Web","\u002Fsnt-2nde\u002Fsb-web\u002Fhistoire-web","0.snt-2nde\u002Fsb-web\u002F1.histoire-web",{"title":47,"path":48,"stem":49},"URL et hypertexte","\u002Fsnt-2nde\u002Fsb-web\u002Furl-hypertexte","0.snt-2nde\u002Fsb-web\u002F2.url-hypertexte",{"title":51,"path":52,"stem":53},"HTML et CSS — le contenu et la présentation","\u002Fsnt-2nde\u002Fsb-web\u002Fhtml-css","0.snt-2nde\u002Fsb-web\u002F3.html-css",{"title":55,"path":56,"stem":57},"Client-serveur et requêtes HTTP","\u002Fsnt-2nde\u002Fsb-web\u002Fclient-serveur-http","0.snt-2nde\u002Fsb-web\u002F4.client-serveur-http",{"title":59,"path":60,"stem":61},"Moteurs de recherche","\u002Fsnt-2nde\u002Fsb-web\u002Fmoteurs-recherche","0.snt-2nde\u002Fsb-web\u002F5.moteurs-recherche",{"title":63,"path":64,"stem":65},"Sécurité du navigateur et notions juridiques","\u002Fsnt-2nde\u002Fsb-web\u002Fsecurite-droits","0.snt-2nde\u002Fsb-web\u002F6.securite-droits",{"title":67,"path":68,"stem":69,"children":70},"Les réseaux sociaux","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F0.index",[71,72,76,80,84,88],{"title":67,"path":68,"stem":69},{"title":73,"path":74,"stem":75},"Panorama des réseaux sociaux","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fpanorama-rs","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F1.panorama-rs",{"title":77,"path":78,"stem":79},"Identité numérique et authentification","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fidentite-numerique","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F2.identite-numerique",{"title":81,"path":82,"stem":83},"Le modèle économique des réseaux sociaux","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fmodele-economique","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F3.modele-economique",{"title":85,"path":86,"stem":87},"Petit monde et graphes","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fpetit-monde-graphes","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F4.petit-monde-graphes",{"title":89,"path":90,"stem":91},"La cyberviolence","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fcyberviolence","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F5.cyberviolence",{"title":93,"path":94,"stem":95,"children":96},"Les données structurées et leur traitement","\u002Fsnt-2nde\u002Fsd-donnees-structurees","0.snt-2nde\u002Fsd-donnees-structurees\u002F0.index",[97,98,102,106,110,114],{"title":93,"path":94,"stem":95},{"title":99,"path":100,"stem":101},"Données et formats","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Fdonnees-formats","0.snt-2nde\u002Fsd-donnees-structurees\u002F1.donnees-formats",{"title":103,"path":104,"stem":105},"Données structurées","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Fdonnees-structurees","0.snt-2nde\u002Fsd-donnees-structurees\u002F2.donnees-structurees",{"title":107,"path":108,"stem":109},"Métadonnées","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Fmetadonnees","0.snt-2nde\u002Fsd-donnees-structurees\u002F3.metadonnees",{"title":111,"path":112,"stem":113},"Traitement de tables","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Ftraitement-tables","0.snt-2nde\u002Fsd-donnees-structurees\u002F4.traitement-tables",{"title":115,"path":116,"stem":117},"Le cloud","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Fcloud","0.snt-2nde\u002Fsd-donnees-structurees\u002F5.cloud",{"title":119,"path":120,"stem":121,"children":122},"Localisation, cartographie et mobilité","\u002Fsnt-2nde\u002Fse-localisation-cartographie","0.snt-2nde\u002Fse-localisation-cartographie\u002F0.index",[123,124,128,132,136,140],{"title":119,"path":120,"stem":121},{"title":125,"path":126,"stem":127},"GPS et Galileo — se situer grâce aux satellites","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Fgps-galileo","0.snt-2nde\u002Fse-localisation-cartographie\u002F1.gps-galileo",{"title":129,"path":130,"stem":131},"Décoder une trame NMEA","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Ftrame-nmea","0.snt-2nde\u002Fse-localisation-cartographie\u002F2.trame-nmea",{"title":133,"path":134,"stem":135},"Cartes numériques — GeoPortail et OpenStreetMap","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Fcartes-numeriques","0.snt-2nde\u002Fse-localisation-cartographie\u002F3.cartes-numeriques",{"title":137,"path":138,"stem":139},"Itinéraires et graphes","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Fitineraires-graphes","0.snt-2nde\u002Fse-localisation-cartographie\u002F4.itineraires-graphes",{"title":141,"path":142,"stem":143},"Confidentialité de la position","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Fconfidentialite-position","0.snt-2nde\u002Fse-localisation-cartographie\u002F5.confidentialite-position",{"title":145,"path":146,"stem":147,"children":148},"Informatique embarquée et objets connectés","\u002Fsnt-2nde\u002Fsf-info-embarquee","0.snt-2nde\u002Fsf-info-embarquee\u002F0.index",[149,150,154,158],{"title":145,"path":146,"stem":147},{"title":151,"path":152,"stem":153},"Systèmes informatiques embarqués","\u002Fsnt-2nde\u002Fsf-info-embarquee\u002Fsystemes-embarques","0.snt-2nde\u002Fsf-info-embarquee\u002F1.systemes-embarques",{"title":155,"path":156,"stem":157},"Capteurs et actionneurs","\u002Fsnt-2nde\u002Fsf-info-embarquee\u002Fcapteurs-actionneurs","0.snt-2nde\u002Fsf-info-embarquee\u002F2.capteurs-actionneurs",{"title":159,"path":160,"stem":161},"IHM et objets connectés","\u002Fsnt-2nde\u002Fsf-info-embarquee\u002Fihm-objet-connecte","0.snt-2nde\u002Fsf-info-embarquee\u002F3.ihm-objet-connecte",{"title":163,"path":164,"stem":165,"children":166},"Photographie numérique","\u002Fsnt-2nde\u002Fsg-photo-numerique","0.snt-2nde\u002Fsg-photo-numerique\u002F0.index",[167,168,172,176,180],{"title":163,"path":164,"stem":165},{"title":169,"path":170,"stem":171},"Photosites, pixels et résolution","\u002Fsnt-2nde\u002Fsg-photo-numerique\u002Fpixels-resolution","0.snt-2nde\u002Fsg-photo-numerique\u002F1.pixels-resolution",{"title":173,"path":174,"stem":175},"Les algorithmes de l'appareil photo","\u002Fsnt-2nde\u002Fsg-photo-numerique\u002Falgorithmes-photo","0.snt-2nde\u002Fsg-photo-numerique\u002F2.algorithmes-photo",{"title":177,"path":178,"stem":179},"Les métadonnées EXIF","\u002Fsnt-2nde\u002Fsg-photo-numerique\u002Fmetadonnees-exif","0.snt-2nde\u002Fsg-photo-numerique\u002F3.metadonnees-exif",{"title":181,"path":182,"stem":183},"Traiter une image en Python","\u002Fsnt-2nde\u002Fsg-photo-numerique\u002Ftraitement-rgb","0.snt-2nde\u002Fsg-photo-numerique\u002F4.traitement-rgb",{"title":185,"path":186,"stem":187,"children":188},"Notions transversales de programmation","\u002Fsnt-2nde\u002Fsh-prog-notions","0.snt-2nde\u002Fsh-prog-notions\u002F0.index",[189,190,194,198,202],{"title":185,"path":186,"stem":187},{"title":191,"path":192,"stem":193},"Séquences d'instructions et variables","\u002Fsnt-2nde\u002Fsh-prog-notions\u002Fsequences-affectations","0.snt-2nde\u002Fsh-prog-notions\u002F1.sequences-affectations",{"title":195,"path":196,"stem":197},"Instructions conditionnelles","\u002Fsnt-2nde\u002Fsh-prog-notions\u002Fconditionnelles","0.snt-2nde\u002Fsh-prog-notions\u002F2.conditionnelles",{"title":199,"path":200,"stem":201},"Boucles bornées et non bornées","\u002Fsnt-2nde\u002Fsh-prog-notions\u002Fboucles","0.snt-2nde\u002Fsh-prog-notions\u002F3.boucles",{"title":203,"path":204,"stem":205},"Définitions et appels de fonctions","\u002Fsnt-2nde\u002Fsh-prog-notions\u002Ffonctions","0.snt-2nde\u002Fsh-prog-notions\u002F4.fonctions",{"title":207,"path":208,"stem":209,"children":210},"Démo des widgets MDC","\u002Fsnt-2nde\u002Fzz-demo-widgets","0.snt-2nde\u002Fzz-demo-widgets\u002F0.index",[211,212,216,220],{"title":207,"path":208,"stem":209},{"title":213,"path":214,"stem":215},"Démo statique — callouts, code, BO, illustration","\u002Fsnt-2nde\u002Fzz-demo-widgets\u002Fstatique","0.snt-2nde\u002Fzz-demo-widgets\u002F1.statique",{"title":217,"path":218,"stem":219},"Démo interactive — self-eval et python-snippet","\u002Fsnt-2nde\u002Fzz-demo-widgets\u002Finteractif","0.snt-2nde\u002Fzz-demo-widgets\u002F2.interactif",{"title":221,"path":222,"stem":223},"Démo · 14 widgets de manipulation NSI","\u002Fsnt-2nde\u002Fzz-demo-widgets\u002Fwidgets-manipulation","0.snt-2nde\u002Fzz-demo-widgets\u002F3.widgets-manipulation",{"title":225,"path":226,"stem":227,"children":228},"NSI — Première","\u002Fnsi-1ere","1.nsi-1ere\u002F0.index",[229,230,234,256,282,304,328,354,380,410],{"title":225,"path":226,"stem":227},{"title":231,"path":232,"stem":233},"Relecture pédagogique — 8 chapitres NSI 1ère (PA → PH)","\u002Fnsi-1ere\u002Freview","1.nsi-1ere\u002FREVIEW",{"title":235,"path":236,"stem":237,"children":238},"Histoire de l'informatique","\u002Fnsi-1ere\u002Fpa-histoire-info","1.nsi-1ere\u002Fpa-histoire-info\u002F0.index",[239,240,244,248,252],{"title":235,"path":236,"stem":237},{"title":241,"path":242,"stem":243},"De la préantiquité aux machines à calculer","\u002Fnsi-1ere\u002Fpa-histoire-info\u002Fpreantiquite-aux-machines","1.nsi-1ere\u002Fpa-histoire-info\u002F1.preantiquite-aux-machines",{"title":245,"path":246,"stem":247},"La machine universelle (1930-1950)","\u002Fnsi-1ere\u002Fpa-histoire-info\u002Fmachine-universelle","1.nsi-1ere\u002Fpa-histoire-info\u002F2.machine-universelle",{"title":249,"path":250,"stem":251},"Les ordinateurs modernes (1947-1990)","\u002Fnsi-1ere\u002Fpa-histoire-info\u002Fordinateurs-modernes","1.nsi-1ere\u002Fpa-histoire-info\u002F3.ordinateurs-modernes",{"title":253,"path":254,"stem":255},"Réseaux, Web et IA (1969 à aujourd'hui)","\u002Fnsi-1ere\u002Fpa-histoire-info\u002Freseaux-et-web","1.nsi-1ere\u002Fpa-histoire-info\u002F4.reseaux-et-web",{"title":257,"path":258,"stem":259,"children":260},"Représentation des données — types et valeurs","\u002Fnsi-1ere\u002Fpb-types-valeurs","1.nsi-1ere\u002Fpb-types-valeurs\u002F0.index",[261,262,266,270,274,278],{"title":257,"path":258,"stem":259},{"title":263,"path":264,"stem":265},"Bases de numération et entiers positifs","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Fbases-entiers-positifs","1.nsi-1ere\u002Fpb-types-valeurs\u002F1.bases-entiers-positifs",{"title":267,"path":268,"stem":269},"Entiers relatifs et complément à deux","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Fentiers-relatifs","1.nsi-1ere\u002Fpb-types-valeurs\u002F2.entiers-relatifs",{"title":271,"path":272,"stem":273},"Nombres flottants et virgule flottante","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Fflottants","1.nsi-1ere\u002Fpb-types-valeurs\u002F3.flottants",{"title":275,"path":276,"stem":277},"Textes et encodages — ASCII, ISO-8859-1, Unicode","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Ftextes-encodages","1.nsi-1ere\u002Fpb-types-valeurs\u002F4.textes-encodages",{"title":279,"path":280,"stem":281},"Valeurs booléennes et opérateurs logiques","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Fbooleens","1.nsi-1ere\u002Fpb-types-valeurs\u002F5.booleens",{"title":283,"path":284,"stem":285,"children":286},"Représentation des données : types construits","\u002Fnsi-1ere\u002Fpc-types-construits","1.nsi-1ere\u002Fpc-types-construits\u002F0.index",[287,288,292,296,300],{"title":283,"path":284,"stem":285},{"title":289,"path":290,"stem":291},"Tableaux et listes","\u002Fnsi-1ere\u002Fpc-types-construits\u002Ftableaux-listes","1.nsi-1ere\u002Fpc-types-construits\u002F1.tableaux-listes",{"title":293,"path":294,"stem":295},"Listes en compréhension","\u002Fnsi-1ere\u002Fpc-types-construits\u002Fcomprehension","1.nsi-1ere\u002Fpc-types-construits\u002F2.comprehension",{"title":297,"path":298,"stem":299},"Tuples et p-uplets nommés","\u002Fnsi-1ere\u002Fpc-types-construits\u002Ftuples","1.nsi-1ere\u002Fpc-types-construits\u002F3.tuples",{"title":301,"path":302,"stem":303},"Dictionnaires","\u002Fnsi-1ere\u002Fpc-types-construits\u002Fdictionnaires","1.nsi-1ere\u002Fpc-types-construits\u002F4.dictionnaires",{"title":305,"path":306,"stem":307,"children":308},"Traitement de données en tables","\u002Fnsi-1ere\u002Fpd-tables-donnees","1.nsi-1ere\u002Fpd-tables-donnees\u002F0.index",[309,310,314,318,322],{"title":305,"path":306,"stem":307},{"title":311,"path":312,"stem":313},"Tables et CSV","\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Ftables-csv","1.nsi-1ere\u002Fpd-tables-donnees\u002F1.tables-csv",{"title":315,"path":316,"stem":317},"Recherche et filtrage","\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Frecherche","1.nsi-1ere\u002Fpd-tables-donnees\u002F2.recherche",{"title":319,"path":320,"stem":321},"Trier une table","\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Ftri","1.nsi-1ere\u002Fpd-tables-donnees\u002F3.tri",{"title":323,"path":324,"stem":325,"children":326},"Fusion et indexation","\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Ffusion-indexation","1.nsi-1ere\u002Fpd-tables-donnees\u002F4.fusion-indexation",[327],{"title":323,"path":324,"stem":325},{"title":329,"path":330,"stem":331,"children":332},"IHM sur le Web","\u002Fnsi-1ere\u002Fpe-ihm-web","1.nsi-1ere\u002Fpe-ihm-web\u002F0.index",[333,334,338,342,346,350],{"title":329,"path":330,"stem":331},{"title":335,"path":336,"stem":337},"HTML et CSS — rappel de structure","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fhtml-css-bases","1.nsi-1ere\u002Fpe-ihm-web\u002F1.html-css-bases",{"title":339,"path":340,"stem":341},"Formulaires HTML","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fformulaires","1.nsi-1ere\u002Fpe-ihm-web\u002F2.formulaires",{"title":343,"path":344,"stem":345},"Événements JavaScript","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fevenements-js","1.nsi-1ere\u002Fpe-ihm-web\u002F3.evenements-js",{"title":347,"path":348,"stem":349},"Manipulation du DOM","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fdom-interaction","1.nsi-1ere\u002Fpe-ihm-web\u002F4.dom-interaction",{"title":351,"path":352,"stem":353},"Client, serveur et HTTP","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fclient-serveur-http","1.nsi-1ere\u002Fpe-ihm-web\u002F5.client-serveur-http",{"title":355,"path":356,"stem":357,"children":358},"Architectures matérielles et systèmes d'exploitation","\u002Fnsi-1ere\u002Fpf-archi-os","1.nsi-1ere\u002Fpf-archi-os\u002F0.index",[359,360,364,368,372,376],{"title":355,"path":356,"stem":357},{"title":361,"path":362,"stem":363},"Le modèle de von Neumann","\u002Fnsi-1ere\u002Fpf-archi-os\u002Fvon-neumann","1.nsi-1ere\u002Fpf-archi-os\u002F1.von-neumann",{"title":365,"path":366,"stem":367},"Périphériques et interface homme-machine","\u002Fnsi-1ere\u002Fpf-archi-os\u002Fperipheriques-ihm","1.nsi-1ere\u002Fpf-archi-os\u002F2.peripheriques-ihm",{"title":369,"path":370,"stem":371},"Les systèmes d'exploitation","\u002Fnsi-1ere\u002Fpf-archi-os\u002Fsystemes-exploitation","1.nsi-1ere\u002Fpf-archi-os\u002F3.systemes-exploitation",{"title":373,"path":374,"stem":375},"Linux et le shell","\u002Fnsi-1ere\u002Fpf-archi-os\u002Flinux-shell","1.nsi-1ere\u002Fpf-archi-os\u002F4.linux-shell",{"title":377,"path":378,"stem":379},"Réseaux et protocoles","\u002Fnsi-1ere\u002Fpf-archi-os\u002Freseaux","1.nsi-1ere\u002Fpf-archi-os\u002F5.reseaux",{"title":381,"path":382,"stem":383,"children":384},"Langages et programmation","\u002Fnsi-1ere\u002Fpg-langages-prog","1.nsi-1ere\u002Fpg-langages-prog\u002F0.index",[385,386,390,394,398,402,406],{"title":381,"path":382,"stem":383},{"title":387,"path":388,"stem":389},"Diversité et unité des langages de programmation","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fdiversite-langages","1.nsi-1ere\u002Fpg-langages-prog\u002F1.diversite-langages",{"title":391,"path":392,"stem":393},"Constructions élémentaires","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fconstructions-elementaires","1.nsi-1ere\u002Fpg-langages-prog\u002F2.constructions-elementaires",{"title":395,"path":396,"stem":397},"Fonctions","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Ffonctions","1.nsi-1ere\u002Fpg-langages-prog\u002F3.fonctions",{"title":399,"path":400,"stem":401},"Spécification d'une fonction","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fspecification","1.nsi-1ere\u002Fpg-langages-prog\u002F4.specification",{"title":403,"path":404,"stem":405},"Mise au point des programmes","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fmise-au-point","1.nsi-1ere\u002Fpg-langages-prog\u002F5.mise-au-point",{"title":407,"path":408,"stem":409},"Utilisation de bibliothèques","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fbibliotheques","1.nsi-1ere\u002Fpg-langages-prog\u002F6.bibliotheques",{"title":411,"path":412,"stem":413,"children":414},"Algorithmique","\u002Fnsi-1ere\u002Fph-algorithmique","1.nsi-1ere\u002Fph-algorithmique\u002F0.index",[415,416,420,424,428,432,436],{"title":411,"path":412,"stem":413},{"title":417,"path":418,"stem":419},"Parcours séquentiel d'un tableau","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fparcours-sequentiel","1.nsi-1ere\u002Fph-algorithmique\u002F1.parcours-sequentiel",{"title":421,"path":422,"stem":423},"Bases de la complexité","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fcomplexite-bases","1.nsi-1ere\u002Fph-algorithmique\u002F2.complexite-bases",{"title":425,"path":426,"stem":427},"Tris par sélection et par insertion","\u002Fnsi-1ere\u002Fph-algorithmique\u002Ftris","1.nsi-1ere\u002Fph-algorithmique\u002F3.tris",{"title":429,"path":430,"stem":431},"Recherche dichotomique","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fdichotomie","1.nsi-1ere\u002Fph-algorithmique\u002F4.dichotomie",{"title":433,"path":434,"stem":435},"Algorithmes gloutons","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fgloutons","1.nsi-1ere\u002Fph-algorithmique\u002F5.gloutons",{"title":437,"path":438,"stem":439},"Les k plus proches voisins (k-NN)","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fknn","1.nsi-1ere\u002Fph-algorithmique\u002F6.knn",{"title":441,"path":442,"stem":443,"children":444},"NSI — Terminale","\u002Fnsi-tale","2.nsi-tale\u002F0.index",[445,446,450,476,498,536,560],{"title":441,"path":442,"stem":443},{"title":447,"path":448,"stem":449},"Review pédagogique — chapitres NSI Terminale (TA, TB, TC, TD, TE)","\u002Fnsi-tale\u002Freview","2.nsi-tale\u002FREVIEW",{"title":451,"path":452,"stem":453,"children":454},"Structures de données","\u002Fnsi-tale\u002Fta-structures-donnees","2.nsi-tale\u002Fta-structures-donnees\u002F0.index",[455,456,460,464,468,472],{"title":451,"path":452,"stem":453},{"title":457,"path":458,"stem":459},"Objet, classe, interface","\u002Fnsi-tale\u002Fta-structures-donnees\u002Finterface-implementation","2.nsi-tale\u002Fta-structures-donnees\u002F1.interface-implementation",{"title":461,"path":462,"stem":463},"Implémenter une structure — l'exemple de la file FIFO","\u002Fnsi-tale\u002Fta-structures-donnees\u002Fimplementer-une-structure","2.nsi-tale\u002Fta-structures-donnees\u002F2.implementer-une-structure",{"title":465,"path":466,"stem":467},"Listes, piles, files, dictionnaires","\u002Fnsi-tale\u002Fta-structures-donnees\u002Flistes-piles-files-dict","2.nsi-tale\u002Fta-structures-donnees\u002F3.listes-piles-files-dict",{"title":469,"path":470,"stem":471},"Arbres binaires","\u002Fnsi-tale\u002Fta-structures-donnees\u002Farbres-binaires","2.nsi-tale\u002Fta-structures-donnees\u002F4.arbres-binaires",{"title":473,"path":474,"stem":475},"Graphes","\u002Fnsi-tale\u002Fta-structures-donnees\u002Fgraphes","2.nsi-tale\u002Fta-structures-donnees\u002F5.graphes",{"title":477,"path":478,"stem":479,"children":480},"Bases de données","\u002Fnsi-tale\u002Ftb-bases-de-donnees","2.nsi-tale\u002Ftb-bases-de-donnees\u002F0.index",[481,482,486,490,494],{"title":477,"path":478,"stem":479},{"title":483,"path":484,"stem":485},"Le modèle relationnel","\u002Fnsi-tale\u002Ftb-bases-de-donnees\u002Fmodele-relationnel","2.nsi-tale\u002Ftb-bases-de-donnees\u002F1.modele-relationnel",{"title":487,"path":488,"stem":489},"Bases de données relationnelles et anomalies de schéma","\u002Fnsi-tale\u002Ftb-bases-de-donnees\u002Fbase-relationnelle","2.nsi-tale\u002Ftb-bases-de-donnees\u002F2.base-relationnelle",{"title":491,"path":492,"stem":493},"Le langage SQL","\u002Fnsi-tale\u002Ftb-bases-de-donnees\u002Fsql","2.nsi-tale\u002Ftb-bases-de-donnees\u002F3.sql",{"title":495,"path":496,"stem":497},"Les systèmes de gestion de bases de données","\u002Fnsi-tale\u002Ftb-bases-de-donnees\u002Fsgbd","2.nsi-tale\u002Ftb-bases-de-donnees\u002F4.sgbd",{"title":499,"path":500,"stem":501,"children":502},"Architectures matérielles, systèmes d'exploitation et réseaux","\u002Fnsi-tale\u002Ftc-archi-os-reseaux","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F0.index",[503,504,508,512,516,520,524,528,532],{"title":499,"path":500,"stem":501},{"title":505,"path":506,"stem":507},"Le système sur puce (SoC)","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fsysteme-sur-puce","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F1.systeme-sur-puce",{"title":509,"path":510,"stem":511},"Processus et ordonnancement par l'OS","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fprocessus-os","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F2.processus-os",{"title":513,"path":514,"stem":515},"L'interblocage (deadlock)","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Finterblocage","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F3.interblocage",{"title":517,"path":518,"stem":519},"Principes du routage","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Froutage-principes","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F4.routage-principes",{"title":521,"path":522,"stem":523},"Protocoles de routage RIP et OSPF","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fprotocoles-rip-ospf","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F5.protocoles-rip-ospf",{"title":525,"path":526,"stem":527},"Chiffrement symétrique","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fchiffrement-symetrique","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F6.chiffrement-symetrique",{"title":529,"path":530,"stem":531},"Chiffrement asymétrique","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fchiffrement-asymetrique","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F7.chiffrement-asymetrique",{"title":533,"path":534,"stem":535},"HTTPS — l'échange de clé symétrique","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fhttps-tls","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F8.https-tls",{"title":381,"path":537,"stem":538,"children":539},"\u002Fnsi-tale\u002Ftd-langages-prog","2.nsi-tale\u002Ftd-langages-prog\u002F0.index",[540,541,544,548,552,556],{"title":381,"path":537,"stem":538},{"title":403,"path":542,"stem":543},"\u002Fnsi-tale\u002Ftd-langages-prog\u002Fmise-au-point","2.nsi-tale\u002Ftd-langages-prog\u002F1.mise-au-point",{"title":545,"path":546,"stem":547},"Modularité","\u002Fnsi-tale\u002Ftd-langages-prog\u002Fmodularite","2.nsi-tale\u002Ftd-langages-prog\u002F2.modularite",{"title":549,"path":550,"stem":551},"Récursivité","\u002Fnsi-tale\u002Ftd-langages-prog\u002Frecursivite","2.nsi-tale\u002Ftd-langages-prog\u002F3.recursivite",{"title":553,"path":554,"stem":555},"Paradigmes de programmation","\u002Fnsi-tale\u002Ftd-langages-prog\u002Fparadigmes","2.nsi-tale\u002Ftd-langages-prog\u002F4.paradigmes",{"title":557,"path":558,"stem":559},"Programme comme donnée — calculabilité et indécidabilité","\u002Fnsi-tale\u002Ftd-langages-prog\u002Fprogramme-comme-donnee","2.nsi-tale\u002Ftd-langages-prog\u002F5.programme-comme-donnee",{"title":411,"path":561,"stem":562,"children":563},"\u002Fnsi-tale\u002Fte-algorithmique","2.nsi-tale\u002Fte-algorithmique\u002F0.index",[564,565,569,573,577,581],{"title":411,"path":561,"stem":562},{"title":566,"path":567,"stem":568},"Algorithmes sur les arbres binaires","\u002Fnsi-tale\u002Fte-algorithmique\u002Farbres-binaires-algos","2.nsi-tale\u002Fte-algorithmique\u002F1.arbres-binaires-algos",{"title":570,"path":571,"stem":572},"Parcours de graphes — DFS, BFS, cycles, chemins","\u002Fnsi-tale\u002Fte-algorithmique\u002Fgraphes-parcours","2.nsi-tale\u002Fte-algorithmique\u002F2.graphes-parcours",{"title":574,"path":575,"stem":576},"Diviser pour régner","\u002Fnsi-tale\u002Fte-algorithmique\u002Fdiviser-pour-regner","2.nsi-tale\u002Fte-algorithmique\u002F3.diviser-pour-regner",{"title":578,"path":579,"stem":580},"Programmation dynamique","\u002Fnsi-tale\u002Fte-algorithmique\u002Fprogrammation-dynamique","2.nsi-tale\u002Fte-algorithmique\u002F4.programmation-dynamique",{"title":582,"path":583,"stem":584},"Recherche textuelle — l'algorithme de Boyer-Moore","\u002Fnsi-tale\u002Fte-algorithmique\u002Frecherche-textuelle","2.nsi-tale\u002Fte-algorithmique\u002F5.recherche-textuelle",{"id":586,"title":311,"bo":587,"body":590,"description":1733,"eval":1734,"extension":1735,"labo":1734,"meta":1736,"navigation":1180,"path":312,"quizzes":1737,"readingTime":907,"seo":1744,"stem":313,"tp":1734,"__hash__":1745},"cours\u002F1.nsi-1ere\u002Fpd-tables-donnees\u002F1.tables-csv.md",[588,589],"PD02","PD03",{"type":591,"value":592,"toc":1722},"minimark",[593,598,615,630,634,637,710,724,727,793,797,819,830,848,858,885,889,896,1088,1103,1121,1142,1149,1163,1264,1288,1291,1410,1414,1417,1630,1633,1639,1643,1700,1704,1718],[594,595,597],"h2",{"id":596},"introduction","Introduction",[599,600,601,602,606,607,610,611,614],"p",{},"Quand vous ouvrez un fichier de notes d'élèves, un export comptable ou un\nrelevé météo, vous tombez presque toujours sur la même structure : ",[603,604,605],"strong",{},"des\nlignes"," qui décrivent chacune une entité (un élève, une opération, un jour de\nmesure) et ",[603,608,609],{},"des colonnes"," qui décrivent chacune un attribut (nom, montant,\ntempérature). C'est la ",[603,612,613],{},"forme tabulaire"," — celle d'un cahier d'appel, d'un\nbulletin de notes ou d'une feuille de tableur — omniprésente parce qu'elle\nest simple à produire, à lire à l'œil nu et à transmettre.",[599,616,617,618,621,622,625,626,629],{},"Pour qu'un programme manipule ces données, il faut leur donner une\n",[603,619,620],{},"représentation en mémoire",". Ce premier cours vous présente le format\n",[603,623,624],{},"CSV"," (le plus universel des formats tabulaires textuels) et le modèle de\ndonnées que nous adopterons dans tout le chapitre : la ",[603,627,628],{},"liste de\ndictionnaires",".",[594,631,633],{"id":632},"vocabulaire-dune-table","Vocabulaire d'une table",[599,635,636],{},"Une table de données est définie par :",[638,639,640,653],"table",{},[641,642,643],"thead",{},[644,645,646,650],"tr",{},[647,648,649],"th",{},"Terme",[647,651,652],{},"Définition",[654,655,656,668,679,690,700],"tbody",{},[644,657,658,665],{},[659,660,661,664],"td",{},[603,662,663],{},"Ligne"," (ou enregistrement)",[659,666,667],{},"Une entité décrite, une unité d'information.",[644,669,670,676],{},[659,671,672,675],{},[603,673,674],{},"Colonne"," (ou champ)",[659,677,678],{},"Un attribut commun à toutes les lignes.",[644,680,681,687],{},[659,682,683,686],{},[603,684,685],{},"Descripteur"," (ou en-tête)",[659,688,689],{},"Le nom d'une colonne.",[644,691,692,697],{},[659,693,694],{},[603,695,696],{},"Cellule",[659,698,699],{},"L'intersection d'une ligne et d'une colonne — une valeur unique.",[644,701,702,707],{},[659,703,704],{},[603,705,706],{},"Domaine",[659,708,709],{},"L'ensemble des valeurs autorisées pour une colonne.",[711,712,713],"note",{},[599,714,715,716,719,720,723],{},"Les ",[603,717,718],{},"descripteurs sont partagés"," par toutes les lignes : chaque ligne\ncontient une valeur pour ",[603,721,722],{},"chacun"," des descripteurs. C'est ce qui permet de\nparler de table « rectangulaire ».",[599,725,726],{},"Voici une table d'exemple que nous utiliserons tout au long du chapitre — une\nliste d'élèves avec leur âge et leur classe :",[638,728,729,742],{},[641,730,731],{},[644,732,733,736,739],{},[647,734,735],{},"nom",[647,737,738],{},"age",[647,740,741],{},"classe",[654,743,744,755,766,775,784],{},[644,745,746,749,752],{},[659,747,748],{},"Alice",[659,750,751],{},"16",[659,753,754],{},"1G2",[644,756,757,760,763],{},[659,758,759],{},"Bob",[659,761,762],{},"17",[659,764,765],{},"1G3",[644,767,768,771,773],{},[659,769,770],{},"Chloé",[659,772,751],{},[659,774,754],{},[644,776,777,780,782],{},[659,778,779],{},"Dimitri",[659,781,762],{},[659,783,754],{},[644,785,786,789,791],{},[659,787,788],{},"Élodie",[659,790,751],{},[659,792,765],{},[594,794,796],{"id":795},"le-format-csv","Le format CSV",[599,798,799,801,802,806,807,810,811,814,815,818],{},[603,800,624],{}," signifie ",[803,804,805],"em",{},"Comma-Separated Values"," — valeurs séparées par des virgules.\nC'est un format ",[603,808,809],{},"texte"," ultra simple, lisible par n'importe quel éditeur,\nqu'un humain peut écrire à la main. La première ligne contient en général les\n",[603,812,813],{},"descripteurs",", les lignes suivantes les ",[603,816,817],{},"enregistrements"," :",[820,821,827],"pre",{"className":822,"code":824,"language":825,"meta":826},[823],"language-text","nom,age,classe\nAlice,16,1G2\nBob,17,1G3\nChloé,16,1G2\nDimitri,17,1G2\nÉlodie,16,1G3\n","text","",[828,829,824],"code",{"__ignoreMap":826},[831,832,833],"warning",{},[599,834,835,836,839,840,843,844,847],{},"Le séparateur peut varier (",[828,837,838],{},",",", ",[828,841,842],{},";",", tabulation). En France, beaucoup de\nfichiers Excel exportent en CSV avec le ",[603,845,846],{},"point-virgule"," comme séparateur,\nparce que la virgule sert déjà de séparateur décimal. Vérifiez toujours.",[599,849,850,853,854,857],{},[851,852],"bo-ref",{"code":588}," précise que la lecture d'une table tabulée ou CSV est une\n",[603,855,856],{},"capacité attendue"," du programme.",[859,860,864,870],"self-eval-qcm",{"correct":861,"explanation":862,"slug":863},"1","La première ligne contient les noms des colonnes — c'est l'en-tête.","tables-csv-c1",[865,866,867],"template",{"v-slot:question":826},[599,868,869],{},"Dans un CSV, à quoi sert la première ligne en général ?",[865,871,872],{"v-slot:choices":826},[873,874,875,879,882],"ul",{},[876,877,878],"li",{},"À déclarer le séparateur",[876,880,881],{},"À donner les descripteurs (noms de colonnes)",[876,883,884],{},"À indiquer le nombre de lignes",[594,886,888],{"id":887},"modèle-de-données-la-liste-de-dictionnaires","Modèle de données : la liste de dictionnaires",[599,890,891,892,895],{},"Pour représenter une table en mémoire, plusieurs choix existent. Nous\nadoptons la ",[603,893,894],{},"liste de dictionnaires"," pour tout le chapitre :",[820,897,901],{"className":898,"code":899,"language":900,"meta":826,"style":826},"language-python shiki shiki-themes github-light github-light github-dark","eleves = [\n    {\"nom\": \"Alice\",   \"age\": 16, \"classe\": \"1G2\"},\n    {\"nom\": \"Bob\",     \"age\": 17, \"classe\": \"1G3\"},\n    {\"nom\": \"Chloé\",   \"age\": 16, \"classe\": \"1G2\"},\n    {\"nom\": \"Dimitri\", \"age\": 17, \"classe\": \"1G2\"},\n    {\"nom\": \"Élodie\",  \"age\": 16, \"classe\": \"1G3\"},\n]\n","python",[828,902,903,919,959,991,1021,1051,1082],{"__ignoreMap":826},[904,905,908,912,916],"span",{"class":906,"line":907},"line",1,[904,909,911],{"class":910},"sxrX7","eleves ",[904,913,915],{"class":914},"s8jYJ","=",[904,917,918],{"class":910}," [\n",[904,920,922,925,929,932,935,938,941,943,946,948,951,953,956],{"class":906,"line":921},2,[904,923,924],{"class":910},"    {",[904,926,928],{"class":927},"sIIMD","\"nom\"",[904,930,931],{"class":910},": ",[904,933,934],{"class":927},"\"Alice\"",[904,936,937],{"class":910},",   ",[904,939,940],{"class":927},"\"age\"",[904,942,931],{"class":910},[904,944,751],{"class":945},"sBjJW",[904,947,839],{"class":910},[904,949,950],{"class":927},"\"classe\"",[904,952,931],{"class":910},[904,954,955],{"class":927},"\"1G2\"",[904,957,958],{"class":910},"},\n",[904,960,962,964,966,968,971,974,976,978,980,982,984,986,989],{"class":906,"line":961},3,[904,963,924],{"class":910},[904,965,928],{"class":927},[904,967,931],{"class":910},[904,969,970],{"class":927},"\"Bob\"",[904,972,973],{"class":910},",     ",[904,975,940],{"class":927},[904,977,931],{"class":910},[904,979,762],{"class":945},[904,981,839],{"class":910},[904,983,950],{"class":927},[904,985,931],{"class":910},[904,987,988],{"class":927},"\"1G3\"",[904,990,958],{"class":910},[904,992,994,996,998,1000,1003,1005,1007,1009,1011,1013,1015,1017,1019],{"class":906,"line":993},4,[904,995,924],{"class":910},[904,997,928],{"class":927},[904,999,931],{"class":910},[904,1001,1002],{"class":927},"\"Chloé\"",[904,1004,937],{"class":910},[904,1006,940],{"class":927},[904,1008,931],{"class":910},[904,1010,751],{"class":945},[904,1012,839],{"class":910},[904,1014,950],{"class":927},[904,1016,931],{"class":910},[904,1018,955],{"class":927},[904,1020,958],{"class":910},[904,1022,1024,1026,1028,1030,1033,1035,1037,1039,1041,1043,1045,1047,1049],{"class":906,"line":1023},5,[904,1025,924],{"class":910},[904,1027,928],{"class":927},[904,1029,931],{"class":910},[904,1031,1032],{"class":927},"\"Dimitri\"",[904,1034,839],{"class":910},[904,1036,940],{"class":927},[904,1038,931],{"class":910},[904,1040,762],{"class":945},[904,1042,839],{"class":910},[904,1044,950],{"class":927},[904,1046,931],{"class":910},[904,1048,955],{"class":927},[904,1050,958],{"class":910},[904,1052,1054,1056,1058,1060,1063,1066,1068,1070,1072,1074,1076,1078,1080],{"class":906,"line":1053},6,[904,1055,924],{"class":910},[904,1057,928],{"class":927},[904,1059,931],{"class":910},[904,1061,1062],{"class":927},"\"Élodie\"",[904,1064,1065],{"class":910},",  ",[904,1067,940],{"class":927},[904,1069,931],{"class":910},[904,1071,751],{"class":945},[904,1073,839],{"class":910},[904,1075,950],{"class":927},[904,1077,931],{"class":910},[904,1079,988],{"class":927},[904,1081,958],{"class":910},[904,1083,1085],{"class":906,"line":1084},7,[904,1086,1087],{"class":910},"]\n",[599,1089,1090,1091,1094,1095,1098,1099,1102],{},"Chaque ",[603,1092,1093],{},"ligne"," est un dictionnaire qui associe ",[603,1096,1097],{},"descripteur → valeur",".\nLa table entière est une ",[603,1100,1101],{},"liste"," de ces dictionnaires.",[1104,1105,1106],"tip",{},[599,1107,1108,1109,1112,1113,1116,1117,1120],{},"Pourquoi ce choix ? Parce qu'il est ",[603,1110,1111],{},"expressif"," : ",[828,1114,1115],{},"eleve[\"nom\"]"," se lit\ncomme une phrase. Et parce qu'il est ",[603,1118,1119],{},"stable"," : ajouter une colonne ne\nchange pas l'ordre d'accès aux autres valeurs.",[859,1122,1125,1130],{"correct":861,"explanation":1123,"slug":1124},"Chaque ligne contient les 3 descripteurs : nom, age, classe.","tables-csv-c2",[865,1126,1127],{"v-slot:question":826},[599,1128,1129],{},"Combien de clés a chaque dictionnaire de la liste eleves ?",[865,1131,1132],{"v-slot:choices":826},[873,1133,1134,1136,1139],{},[876,1135,861],{},[876,1137,1138],{},"3",[876,1140,1141],{},"5",[594,1143,1145,1146],{"id":1144},"lecture-dun-csv-avec-le-module-csv","Lecture d'un CSV avec le module ",[828,1147,1148],{},"csv",[599,1150,1151,1152,1154,1155,1158,1159,1162],{},"Python fournit en standard le module ",[828,1153,1148],{},". Sa classe ",[828,1156,1157],{},"DictReader"," lit\ndirectement un fichier CSV et produit, pour chaque ligne, un ",[603,1160,1161],{},"dictionnaire","\ndont les clés sont les en-têtes. C'est exactement le modèle que nous voulons.",[820,1164,1166],{"className":898,"code":1165,"language":900,"meta":826,"style":826},"import csv\n\nwith open(\"eleves.csv\", encoding=\"utf-8\") as f:\n    lecteur = csv.DictReader(f)\n    eleves = list(lecteur)\n\nprint(eleves[0])\n# {'nom': 'Alice', 'age': '16', 'classe': '1G2'}\n",[828,1167,1168,1176,1182,1216,1226,1239,1243,1257],{"__ignoreMap":826},[904,1169,1170,1173],{"class":906,"line":907},[904,1171,1172],{"class":914},"import",[904,1174,1175],{"class":910}," csv\n",[904,1177,1178],{"class":906,"line":921},[904,1179,1181],{"emptyLinePlaceholder":1180},true,"\n",[904,1183,1184,1187,1190,1193,1196,1198,1202,1204,1207,1210,1213],{"class":906,"line":961},[904,1185,1186],{"class":914},"with",[904,1188,1189],{"class":945}," open",[904,1191,1192],{"class":910},"(",[904,1194,1195],{"class":927},"\"eleves.csv\"",[904,1197,839],{"class":910},[904,1199,1201],{"class":1200},"sP4rz","encoding",[904,1203,915],{"class":914},[904,1205,1206],{"class":927},"\"utf-8\"",[904,1208,1209],{"class":910},") ",[904,1211,1212],{"class":914},"as",[904,1214,1215],{"class":910}," f:\n",[904,1217,1218,1221,1223],{"class":906,"line":993},[904,1219,1220],{"class":910},"    lecteur ",[904,1222,915],{"class":914},[904,1224,1225],{"class":910}," csv.DictReader(f)\n",[904,1227,1228,1231,1233,1236],{"class":906,"line":1023},[904,1229,1230],{"class":910},"    eleves ",[904,1232,915],{"class":914},[904,1234,1235],{"class":945}," list",[904,1237,1238],{"class":910},"(lecteur)\n",[904,1240,1241],{"class":906,"line":1053},[904,1242,1181],{"emptyLinePlaceholder":1180},[904,1244,1245,1248,1251,1254],{"class":906,"line":1084},[904,1246,1247],{"class":945},"print",[904,1249,1250],{"class":910},"(eleves[",[904,1252,1253],{"class":945},"0",[904,1255,1256],{"class":910},"])\n",[904,1258,1260],{"class":906,"line":1259},8,[904,1261,1263],{"class":1262},"sCsY4","# {'nom': 'Alice', 'age': '16', 'classe': '1G2'}\n",[831,1265,1266],{},[599,1267,1268,1269,1272,1273,1276,1277,1280,1281,1284,1285,629],{},"Toutes les valeurs lues par ",[828,1270,1271],{},"csv.DictReader"," sont des ",[603,1274,1275],{},"chaînes de\ncaractères",", même ",[828,1278,1279],{},"\"16\"",". Si une colonne est numérique, il faut convertir\nexplicitement avec ",[828,1282,1283],{},"int(...)"," ou ",[828,1286,1287],{},"float(...)",[599,1289,1290],{},"Pour convertir l'âge en entier au moment de la lecture :",[820,1292,1294],{"className":898,"code":1293,"language":900,"meta":826,"style":826},"import csv\n\nwith open(\"eleves.csv\", encoding=\"utf-8\") as f:\n    lecteur = csv.DictReader(f)\n    eleves = []\n    for ligne in lecteur:\n        ligne[\"age\"] = int(ligne[\"age\"])\n        eleves.append(ligne)\n\nprint(eleves[0])\n# {'nom': 'Alice', 'age': 16, 'classe': '1G2'}\n",[828,1295,1296,1302,1306,1330,1338,1347,1361,1383,1388,1393,1404],{"__ignoreMap":826},[904,1297,1298,1300],{"class":906,"line":907},[904,1299,1172],{"class":914},[904,1301,1175],{"class":910},[904,1303,1304],{"class":906,"line":921},[904,1305,1181],{"emptyLinePlaceholder":1180},[904,1307,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,1328],{"class":906,"line":961},[904,1309,1186],{"class":914},[904,1311,1189],{"class":945},[904,1313,1192],{"class":910},[904,1315,1195],{"class":927},[904,1317,839],{"class":910},[904,1319,1201],{"class":1200},[904,1321,915],{"class":914},[904,1323,1206],{"class":927},[904,1325,1209],{"class":910},[904,1327,1212],{"class":914},[904,1329,1215],{"class":910},[904,1331,1332,1334,1336],{"class":906,"line":993},[904,1333,1220],{"class":910},[904,1335,915],{"class":914},[904,1337,1225],{"class":910},[904,1339,1340,1342,1344],{"class":906,"line":1023},[904,1341,1230],{"class":910},[904,1343,915],{"class":914},[904,1345,1346],{"class":910}," []\n",[904,1348,1349,1352,1355,1358],{"class":906,"line":1053},[904,1350,1351],{"class":914},"    for",[904,1353,1354],{"class":910}," ligne ",[904,1356,1357],{"class":914},"in",[904,1359,1360],{"class":910}," lecteur:\n",[904,1362,1363,1366,1368,1371,1373,1376,1379,1381],{"class":906,"line":1084},[904,1364,1365],{"class":910},"        ligne[",[904,1367,940],{"class":927},[904,1369,1370],{"class":910},"] ",[904,1372,915],{"class":914},[904,1374,1375],{"class":945}," int",[904,1377,1378],{"class":910},"(ligne[",[904,1380,940],{"class":927},[904,1382,1256],{"class":910},[904,1384,1385],{"class":906,"line":1259},[904,1386,1387],{"class":910},"        eleves.append(ligne)\n",[904,1389,1391],{"class":906,"line":1390},9,[904,1392,1181],{"emptyLinePlaceholder":1180},[904,1394,1396,1398,1400,1402],{"class":906,"line":1395},10,[904,1397,1247],{"class":945},[904,1399,1250],{"class":910},[904,1401,1253],{"class":945},[904,1403,1256],{"class":910},[904,1405,1407],{"class":906,"line":1406},11,[904,1408,1409],{"class":1262},"# {'nom': 'Alice', 'age': 16, 'classe': '1G2'}\n",[594,1411,1413],{"id":1412},"accès-aux-données","Accès aux données",[599,1415,1416],{},"Une fois la table en mémoire, on l'exploite avec les opérations habituelles\nsur listes et dictionnaires :",[1418,1419,1420],"python-snippet",{},[820,1421,1423],{"className":898,"code":1422,"language":900,"meta":826,"style":826},"eleves = [\n    {\"nom\": \"Alice\",   \"age\": 16, \"classe\": \"1G2\"},\n    {\"nom\": \"Bob\",     \"age\": 17, \"classe\": \"1G3\"},\n    {\"nom\": \"Chloé\",   \"age\": 16, \"classe\": \"1G2\"},\n]\n\n# Accès à une ligne par index\nprint(\"Première ligne :\", eleves[0])\n\n# Accès à une cellule\nprint(\"Nom du 2e élève :\", eleves[1][\"nom\"])\n\n# Parcours de toute la table\nfor eleve in eleves:\n    print(eleve[\"nom\"], \"a\", eleve[\"age\"], \"ans\")\n",[828,1424,1425,1433,1461,1489,1517,1521,1525,1530,1546,1550,1555,1575,1580,1586,1600],{"__ignoreMap":826},[904,1426,1427,1429,1431],{"class":906,"line":907},[904,1428,911],{"class":910},[904,1430,915],{"class":914},[904,1432,918],{"class":910},[904,1434,1435,1437,1439,1441,1443,1445,1447,1449,1451,1453,1455,1457,1459],{"class":906,"line":921},[904,1436,924],{"class":910},[904,1438,928],{"class":927},[904,1440,931],{"class":910},[904,1442,934],{"class":927},[904,1444,937],{"class":910},[904,1446,940],{"class":927},[904,1448,931],{"class":910},[904,1450,751],{"class":945},[904,1452,839],{"class":910},[904,1454,950],{"class":927},[904,1456,931],{"class":910},[904,1458,955],{"class":927},[904,1460,958],{"class":910},[904,1462,1463,1465,1467,1469,1471,1473,1475,1477,1479,1481,1483,1485,1487],{"class":906,"line":961},[904,1464,924],{"class":910},[904,1466,928],{"class":927},[904,1468,931],{"class":910},[904,1470,970],{"class":927},[904,1472,973],{"class":910},[904,1474,940],{"class":927},[904,1476,931],{"class":910},[904,1478,762],{"class":945},[904,1480,839],{"class":910},[904,1482,950],{"class":927},[904,1484,931],{"class":910},[904,1486,988],{"class":927},[904,1488,958],{"class":910},[904,1490,1491,1493,1495,1497,1499,1501,1503,1505,1507,1509,1511,1513,1515],{"class":906,"line":993},[904,1492,924],{"class":910},[904,1494,928],{"class":927},[904,1496,931],{"class":910},[904,1498,1002],{"class":927},[904,1500,937],{"class":910},[904,1502,940],{"class":927},[904,1504,931],{"class":910},[904,1506,751],{"class":945},[904,1508,839],{"class":910},[904,1510,950],{"class":927},[904,1512,931],{"class":910},[904,1514,955],{"class":927},[904,1516,958],{"class":910},[904,1518,1519],{"class":906,"line":1023},[904,1520,1087],{"class":910},[904,1522,1523],{"class":906,"line":1053},[904,1524,1181],{"emptyLinePlaceholder":1180},[904,1526,1527],{"class":906,"line":1084},[904,1528,1529],{"class":1262},"# Accès à une ligne par index\n",[904,1531,1532,1534,1536,1539,1542,1544],{"class":906,"line":1259},[904,1533,1247],{"class":945},[904,1535,1192],{"class":910},[904,1537,1538],{"class":927},"\"Première ligne :\"",[904,1540,1541],{"class":910},", eleves[",[904,1543,1253],{"class":945},[904,1545,1256],{"class":910},[904,1547,1548],{"class":906,"line":1390},[904,1549,1181],{"emptyLinePlaceholder":1180},[904,1551,1552],{"class":906,"line":1395},[904,1553,1554],{"class":1262},"# Accès à une cellule\n",[904,1556,1557,1559,1561,1564,1566,1568,1571,1573],{"class":906,"line":1406},[904,1558,1247],{"class":945},[904,1560,1192],{"class":910},[904,1562,1563],{"class":927},"\"Nom du 2e élève :\"",[904,1565,1541],{"class":910},[904,1567,861],{"class":945},[904,1569,1570],{"class":910},"][",[904,1572,928],{"class":927},[904,1574,1256],{"class":910},[904,1576,1578],{"class":906,"line":1577},12,[904,1579,1181],{"emptyLinePlaceholder":1180},[904,1581,1583],{"class":906,"line":1582},13,[904,1584,1585],{"class":1262},"# Parcours de toute la table\n",[904,1587,1589,1592,1595,1597],{"class":906,"line":1588},14,[904,1590,1591],{"class":914},"for",[904,1593,1594],{"class":910}," eleve ",[904,1596,1357],{"class":914},[904,1598,1599],{"class":910}," eleves:\n",[904,1601,1603,1606,1609,1611,1614,1617,1620,1622,1624,1627],{"class":906,"line":1602},15,[904,1604,1605],{"class":945},"    print",[904,1607,1608],{"class":910},"(eleve[",[904,1610,928],{"class":927},[904,1612,1613],{"class":910},"], ",[904,1615,1616],{"class":927},"\"a\"",[904,1618,1619],{"class":910},", eleve[",[904,1621,940],{"class":927},[904,1623,1613],{"class":910},[904,1625,1626],{"class":927},"\"ans\"",[904,1628,1629],{"class":910},")\n",[599,1631,1632],{},"Sortie attendue :",[820,1634,1637],{"className":1635,"code":1636,"language":825,"meta":826},[823],"Première ligne : {'nom': 'Alice', 'age': 16, 'classe': '1G2'}\nNom du 2e élève : Bob\nAlice a 16 ans\nBob a 17 ans\nChloé a 16 ans\n",[828,1638,1636],{"__ignoreMap":826},[594,1640,1642],{"id":1641},"cas-particuliers-et-pièges","Cas particuliers et pièges",[873,1644,1645,1662,1677,1690],{},[876,1646,1647,1650,1651,1654,1655,1658,1659,629],{},[603,1648,1649],{},"Encodage"," : un CSV produit sous Windows peut être en ",[828,1652,1653],{},"cp1252"," ou en\n",[828,1656,1657],{},"utf-8-sig"," (avec BOM). Si l'ouverture lève une erreur d'encodage, essayez\n",[828,1660,1661],{},"encoding=\"utf-8-sig\"",[876,1663,1664,1112,1667,1669,1670,1673,1674,629],{},[603,1665,1666],{},"Séparateur",[828,1668,1271],{}," accepte un paramètre ",[828,1671,1672],{},"delimiter"," que l'on\npasse lors de l'appel, par exemple ",[828,1675,1676],{},"csv.DictReader(f, delimiter=\";\")",[876,1678,1679,1682,1683,1686,1687,629],{},[603,1680,1681],{},"Valeurs vides"," : une cellule vide donne ",[828,1684,1685],{},"\"\"",", pas ",[828,1688,1689],{},"None",[876,1691,1692,1695,1696,1699],{},[603,1693,1694],{},"Espaces parasites"," : les exports Excel peuvent contenir des espaces en\nfin de cellule. Le ",[828,1697,1698],{},"strip()"," est votre ami.",[594,1701,1703],{"id":1702},"pour-aller-plus-loin","Pour aller plus loin",[599,1705,1706,1707,1709,1710,1713,1714,1717],{},"Le module ",[828,1708,1148],{}," propose aussi ",[828,1711,1712],{},"csv.DictWriter"," pour ",[603,1715,1716],{},"écrire"," une liste de\ndictionnaires dans un fichier CSV. Une fois que vous saurez filtrer ou trier\nune table (cours suivants), vous saurez aussi sauvegarder le résultat.",[1719,1720,1721],"style",{},"html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sIIMD, html code.shiki .sIIMD{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sBjJW, html code.shiki .sBjJW{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sP4rz, html code.shiki .sP4rz{--shiki-light:#E36209;--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":826,"searchDepth":921,"depth":921,"links":1723},[1724,1725,1726,1727,1728,1730,1731,1732],{"id":596,"depth":921,"text":597},{"id":632,"depth":921,"text":633},{"id":795,"depth":921,"text":796},{"id":887,"depth":921,"text":888},{"id":1144,"depth":921,"text":1729},"Lecture d'un CSV avec le module csv",{"id":1412,"depth":921,"text":1413},{"id":1641,"depth":921,"text":1642},{"id":1702,"depth":921,"text":1703},"Du tableau à la liste de dictionnaires — lecture d'un fichier CSV en Python vanilla.",null,"md",{},[1738,1742],{"slug":863,"kind":1739,"question":869,"choices":1740,"correct":861,"multi":1741,"explanation":862},"qcm",[878,881,884],false,{"slug":1124,"kind":1739,"question":1129,"choices":1743,"correct":861,"multi":1741,"explanation":1123},[861,1138,1141],{"title":311,"description":1733},"dtBH02oNeQHIMa1kMU513vaezZvBaPsDHxsYRQtervk",{"id":1747,"title":1748,"bo":1749,"body":1750,"description":2038,"eval":1734,"extension":1735,"labo":1734,"meta":2039,"navigation":1741,"path":2040,"quizzes":2041,"readingTime":907,"seo":2042,"stem":2043,"tp":1734,"__hash__":2044},"coursMemo\u002F1.nsi-1ere\u002Fpd-tables-donnees\u002F1.tables-csv.memo.md","Tables et CSV — l'essentiel",[588,589],{"type":591,"value":1751,"toc":2031},[1752,1756,1765,1769,1810,1814,1885,1889,1913,1917,2028],[594,1753,1755],{"id":1754},"en-une-phrase","En une phrase",[599,1757,1758,1761,1762,1764],{},[603,1759,1760],{},"Une table = une liste de dictionnaires",", lue depuis un CSV avec\n",[828,1763,1271],{},", descripteurs partagés par toutes les lignes.",[594,1766,1768],{"id":1767},"à-mémoriser","À mémoriser",[873,1770,1771,1777,1788,1796],{},[876,1772,1773,1776],{},[603,1774,1775],{},"Table"," : ensemble rectangulaire de lignes décrites par les mêmes\ndescripteurs (colonnes).",[876,1778,1779,1781,1782,1784,1785,1787],{},[603,1780,624],{}," : format texte, une ligne d'en-tête + une ligne par enregistrement,\nvaleurs séparées par ",[828,1783,838],{}," (ou ",[828,1786,842],{}," en France).",[876,1789,1790,1112,1793,629],{},[603,1791,1792],{},"Modèle Python retenu",[828,1794,1795],{},"[{\"col1\": v, \"col2\": w}, ...]",[876,1797,1798,1802,1803,1806,1807,629],{},[603,1799,1800],{},[828,1801,1271],{}," lit chaque ligne en ",[828,1804,1805],{},"dict"," ; toutes les valeurs sont\ndes ",[603,1808,1809],{},"chaînes",[594,1811,1813],{"id":1812},"à-savoir-reconnaître","À savoir reconnaître",[638,1815,1816,1826],{},[641,1817,1818],{},[644,1819,1820,1823],{},[647,1821,1822],{},"Situation",[647,1824,1825],{},"Action",[654,1827,1828,1839,1849,1864,1875],{},[644,1829,1830,1833],{},[659,1831,1832],{},"Fichier exporté depuis Excel français",[659,1834,1835,1836],{},"Tester ",[828,1837,1838],{},"delimiter=\";\"",[644,1840,1841,1844],{},[659,1842,1843],{},"Erreur d'encodage à la lecture",[659,1845,1846,1847],{},"Essayer ",[828,1848,1661],{},[644,1850,1851,1854],{},[659,1852,1853],{},"Calcul numérique sur une colonne",[659,1855,1856,1857,1860,1861],{},"Convertir avec ",[828,1858,1859],{},"int()"," \u002F ",[828,1862,1863],{},"float()",[644,1865,1866,1869],{},[659,1867,1868],{},"Accès à une ligne précise",[659,1870,1871,1874],{},[828,1872,1873],{},"table[i]"," (par index)",[644,1876,1877,1880],{},[659,1878,1879],{},"Accès à une cellule",[659,1881,1882],{},[828,1883,1884],{},"table[i][\"colonne\"]",[594,1886,1888],{"id":1887},"pièges-courants","Pièges courants",[873,1890,1891,1900,1907],{},[876,1892,1893,1894,1896,1897,629],{},"Toutes les valeurs lues sont des ",[603,1895,1809],{}," — ",[828,1898,1899],{},"\"16\" != 16",[876,1901,1902,1903,1686,1905,629],{},"Cellule vide → ",[828,1904,1685],{},[828,1906,1689],{},[876,1908,1909,1910,1912],{},"L'ordre des clés du ",[828,1911,1805],{}," n'est pas significatif (mais préservé en Python 3.7+).",[594,1914,1916],{"id":1915},"syntaxe-python","Syntaxe Python",[820,1918,1920],{"className":898,"code":1919,"language":900,"meta":826,"style":826},"import csv\n\nwith open(\"eleves.csv\", encoding=\"utf-8\") as f:\n    eleves = list(csv.DictReader(f))\n\n# Conversion d'une colonne numérique\nfor ligne in eleves:\n    ligne[\"age\"] = int(ligne[\"age\"])\n\n# Accès\nprint(eleves[0][\"nom\"])\n",[828,1921,1922,1928,1932,1956,1967,1971,1976,1986,2005,2009,2014],{"__ignoreMap":826},[904,1923,1924,1926],{"class":906,"line":907},[904,1925,1172],{"class":914},[904,1927,1175],{"class":910},[904,1929,1930],{"class":906,"line":921},[904,1931,1181],{"emptyLinePlaceholder":1180},[904,1933,1934,1936,1938,1940,1942,1944,1946,1948,1950,1952,1954],{"class":906,"line":961},[904,1935,1186],{"class":914},[904,1937,1189],{"class":945},[904,1939,1192],{"class":910},[904,1941,1195],{"class":927},[904,1943,839],{"class":910},[904,1945,1201],{"class":1200},[904,1947,915],{"class":914},[904,1949,1206],{"class":927},[904,1951,1209],{"class":910},[904,1953,1212],{"class":914},[904,1955,1215],{"class":910},[904,1957,1958,1960,1962,1964],{"class":906,"line":993},[904,1959,1230],{"class":910},[904,1961,915],{"class":914},[904,1963,1235],{"class":945},[904,1965,1966],{"class":910},"(csv.DictReader(f))\n",[904,1968,1969],{"class":906,"line":1023},[904,1970,1181],{"emptyLinePlaceholder":1180},[904,1972,1973],{"class":906,"line":1053},[904,1974,1975],{"class":1262},"# Conversion d'une colonne numérique\n",[904,1977,1978,1980,1982,1984],{"class":906,"line":1084},[904,1979,1591],{"class":914},[904,1981,1354],{"class":910},[904,1983,1357],{"class":914},[904,1985,1599],{"class":910},[904,1987,1988,1991,1993,1995,1997,1999,2001,2003],{"class":906,"line":1259},[904,1989,1990],{"class":910},"    ligne[",[904,1992,940],{"class":927},[904,1994,1370],{"class":910},[904,1996,915],{"class":914},[904,1998,1375],{"class":945},[904,2000,1378],{"class":910},[904,2002,940],{"class":927},[904,2004,1256],{"class":910},[904,2006,2007],{"class":906,"line":1390},[904,2008,1181],{"emptyLinePlaceholder":1180},[904,2010,2011],{"class":906,"line":1395},[904,2012,2013],{"class":1262},"# Accès\n",[904,2015,2016,2018,2020,2022,2024,2026],{"class":906,"line":1406},[904,2017,1247],{"class":945},[904,2019,1250],{"class":910},[904,2021,1253],{"class":945},[904,2023,1570],{"class":910},[904,2025,928],{"class":927},[904,2027,1256],{"class":910},[1719,2029,2030],{},"html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sBjJW, html code.shiki .sBjJW{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sIIMD, html code.shiki .sIIMD{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sP4rz, html code.shiki .sP4rz{--shiki-light:#E36209;--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":826,"searchDepth":921,"depth":921,"links":2032},[2033,2034,2035,2036,2037],{"id":1754,"depth":921,"text":1755},{"id":1767,"depth":921,"text":1768},{"id":1812,"depth":921,"text":1813},{"id":1887,"depth":921,"text":1888},{"id":1915,"depth":921,"text":1916},"Mémo de révision sur le format CSV et la liste de dictionnaires.",{},"\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Ftables-csv.memo",[],{"title":1748,"description":2038},"1.nsi-1ere\u002Fpd-tables-donnees\u002F1.tables-csv.memo","nk_Zu0WxR2C6soPdluZcX47aZ2uO_aEKqs4a5kfV9Zw",{"id":2046,"title":2047,"body":2048,"description":2403,"extension":1735,"meta":2404,"navigation":1741,"path":2405,"seo":2406,"stem":2407,"__hash__":2408},"coursSlides\u002F1.nsi-1ere\u002Fpd-tables-donnees\u002F1.tables-csv.slides.md","Tables et CSV — diapositives",{"type":591,"value":2049,"toc":2401},[2050,2054,2057,2060,2064,2090,2092,2096,2134,2136,2138,2144,2160,2162,2165,2168,2241,2250,2252,2258,2307,2312,2314,2318,2351,2354,2356,2360,2383,2385,2389,2398],[2051,2052,305],"h1",{"id":2053},"traitement-de-données-en-tables",[599,2055,2056],{},"Cours 1 — Tables et CSV",[2058,2059],"hr",{},[2051,2061,2063],{"id":2062},"une-table-cest-quoi","Une table, c'est quoi ?",[873,2065,2066,2073,2079,2084],{},[876,2067,2068,2069,2072],{},"Des ",[603,2070,2071],{},"lignes"," (entités)",[876,2074,2068,2075,2078],{},[603,2076,2077],{},"colonnes"," (attributs)",[876,2080,2068,2081,2083],{},[603,2082,813],{}," (en-têtes)",[876,2085,2086,2087],{},"Forme ",[603,2088,2089],{},"rectangulaire",[2058,2091],{},[2051,2093,2095],{"id":2094},"exemple-table-délèves","Exemple : table d'élèves",[638,2097,2098,2108],{},[641,2099,2100],{},[644,2101,2102,2104,2106],{},[647,2103,735],{},[647,2105,738],{},[647,2107,741],{},[654,2109,2110,2118,2126],{},[644,2111,2112,2114,2116],{},[659,2113,748],{},[659,2115,751],{},[659,2117,754],{},[644,2119,2120,2122,2124],{},[659,2121,759],{},[659,2123,762],{},[659,2125,765],{},[644,2127,2128,2130,2132],{},[659,2129,770],{},[659,2131,751],{},[659,2133,754],{},[2058,2135],{},[2051,2137,796],{"id":795},[820,2139,2142],{"className":2140,"code":2141,"language":825,"meta":826},[823],"nom,age,classe\nAlice,16,1G2\nBob,17,1G3\nChloé,16,1G2\n",[828,2143,2141],{"__ignoreMap":826},[873,2145,2146,2149,2157],{},[876,2147,2148],{},"Texte pur, lisible humainement",[876,2150,2151,2152,1784,2154,2156],{},"Séparateur ",[828,2153,838],{},[828,2155,842],{}," en France)",[876,2158,2159],{},"Première ligne = descripteurs",[2058,2161],{},[2051,2163,1792],{"id":2164},"modèle-python-retenu",[599,2166,2167],{},"Liste de dictionnaires :",[820,2169,2171],{"className":898,"code":2170,"language":900,"meta":826,"style":826},"eleves = [\n    {\"nom\": \"Alice\", \"age\": 16, \"classe\": \"1G2\"},\n    {\"nom\": \"Bob\",   \"age\": 17, \"classe\": \"1G3\"},\n]\n",[828,2172,2173,2181,2209,2237],{"__ignoreMap":826},[904,2174,2175,2177,2179],{"class":906,"line":907},[904,2176,911],{"class":910},[904,2178,915],{"class":914},[904,2180,918],{"class":910},[904,2182,2183,2185,2187,2189,2191,2193,2195,2197,2199,2201,2203,2205,2207],{"class":906,"line":921},[904,2184,924],{"class":910},[904,2186,928],{"class":927},[904,2188,931],{"class":910},[904,2190,934],{"class":927},[904,2192,839],{"class":910},[904,2194,940],{"class":927},[904,2196,931],{"class":910},[904,2198,751],{"class":945},[904,2200,839],{"class":910},[904,2202,950],{"class":927},[904,2204,931],{"class":910},[904,2206,955],{"class":927},[904,2208,958],{"class":910},[904,2210,2211,2213,2215,2217,2219,2221,2223,2225,2227,2229,2231,2233,2235],{"class":906,"line":961},[904,2212,924],{"class":910},[904,2214,928],{"class":927},[904,2216,931],{"class":910},[904,2218,970],{"class":927},[904,2220,937],{"class":910},[904,2222,940],{"class":927},[904,2224,931],{"class":910},[904,2226,762],{"class":945},[904,2228,839],{"class":910},[904,2230,950],{"class":927},[904,2232,931],{"class":910},[904,2234,988],{"class":927},[904,2236,958],{"class":910},[904,2238,2239],{"class":906,"line":993},[904,2240,1087],{"class":910},[599,2242,2243,2244,2246,2247,629],{},"Une ligne = un ",[828,2245,1805],{},". La table = la ",[828,2248,2249],{},"list",[2058,2251],{},[2051,2253,2255,2256],{"id":2254},"lecture-avec-csvdictreader","Lecture avec ",[828,2257,1271],{},[820,2259,2261],{"className":898,"code":2260,"language":900,"meta":826,"style":826},"import csv\n\nwith open(\"eleves.csv\", encoding=\"utf-8\") as f:\n    eleves = list(csv.DictReader(f))\n",[828,2262,2263,2269,2273,2297],{"__ignoreMap":826},[904,2264,2265,2267],{"class":906,"line":907},[904,2266,1172],{"class":914},[904,2268,1175],{"class":910},[904,2270,2271],{"class":906,"line":921},[904,2272,1181],{"emptyLinePlaceholder":1180},[904,2274,2275,2277,2279,2281,2283,2285,2287,2289,2291,2293,2295],{"class":906,"line":961},[904,2276,1186],{"class":914},[904,2278,1189],{"class":945},[904,2280,1192],{"class":910},[904,2282,1195],{"class":927},[904,2284,839],{"class":910},[904,2286,1201],{"class":1200},[904,2288,915],{"class":914},[904,2290,1206],{"class":927},[904,2292,1209],{"class":910},[904,2294,1212],{"class":914},[904,2296,1215],{"class":910},[904,2298,2299,2301,2303,2305],{"class":906,"line":993},[904,2300,1230],{"class":910},[904,2302,915],{"class":914},[904,2304,1235],{"class":945},[904,2306,1966],{"class":910},[599,2308,2309,2310,629],{},"Chaque ligne devient un ",[828,2311,1805],{},[2058,2313],{},[2051,2315,2317],{"id":2316},"attention-toutes-les-valeurs-sont-des-chaînes","Attention : toutes les valeurs sont des chaînes",[820,2319,2321],{"className":898,"code":2320,"language":900,"meta":826,"style":826},"for ligne in eleves:\n    ligne[\"age\"] = int(ligne[\"age\"])\n",[828,2322,2323,2333],{"__ignoreMap":826},[904,2324,2325,2327,2329,2331],{"class":906,"line":907},[904,2326,1591],{"class":914},[904,2328,1354],{"class":910},[904,2330,1357],{"class":914},[904,2332,1599],{"class":910},[904,2334,2335,2337,2339,2341,2343,2345,2347,2349],{"class":906,"line":921},[904,2336,1990],{"class":910},[904,2338,940],{"class":927},[904,2340,1370],{"class":910},[904,2342,915],{"class":914},[904,2344,1375],{"class":945},[904,2346,1378],{"class":910},[904,2348,940],{"class":927},[904,2350,1256],{"class":910},[599,2352,2353],{},"À faire pour chaque colonne numérique.",[2058,2355],{},[2051,2357,2359],{"id":2358},"pièges-classiques","Pièges classiques",[873,2361,2362,2367,2373,2378],{},[876,2363,2151,2364,2366],{},[828,2365,842],{}," en France",[876,2368,2369,2370,2372],{},"Encodage ",[828,2371,1657],{}," côté Windows",[876,2374,2375,2376],{},"Cellule vide = ",[828,2377,1685],{},[876,2379,2380,2381],{},"Espaces parasites → ",[828,2382,1698],{},[2058,2384],{},[2051,2386,2388],{"id":2387},"à-retenir","À retenir",[599,2390,2391,2394,2395,2397],{},[603,2392,2393],{},"Une table = une liste de dictionnaires.","\nLecture avec ",[828,2396,1271],{}," puis conversion des colonnes numériques.",[1719,2399,2400],{},"html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sIIMD, html code.shiki .sIIMD{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sBjJW, html code.shiki .sBjJW{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sP4rz, html code.shiki .sP4rz{--shiki-light:#E36209;--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":826,"searchDepth":921,"depth":921,"links":2402},[],"Deck projetable pour la séance d'introduction aux tables.",{},"\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Ftables-csv.slides",{"title":2047,"description":2403},"1.nsi-1ere\u002Fpd-tables-donnees\u002F1.tables-csv.slides","qIjobgb3oBKWsaJ-SBDQlRpWWJfhY5FOY6fuNML_tNE",{"id":1747,"title":1748,"bo":2410,"body":2411,"description":2038,"eval":1734,"extension":1735,"labo":1734,"meta":2646,"navigation":1741,"path":2040,"quizzes":2647,"readingTime":907,"seo":2648,"stem":2043,"tp":1734,"__hash__":2044},[588,589],{"type":591,"value":2412,"toc":2639},[2413,2415,2421,2423,2453,2455,2509,2511,2529,2531,2637],[594,2414,1755],{"id":1754},[599,2416,2417,1761,2419,1764],{},[603,2418,1760],{},[828,2420,1271],{},[594,2422,1768],{"id":1767},[873,2424,2425,2429,2437,2443],{},[876,2426,2427,1776],{},[603,2428,1775],{},[876,2430,2431,1781,2433,1784,2435,1787],{},[603,2432,624],{},[828,2434,838],{},[828,2436,842],{},[876,2438,2439,1112,2441,629],{},[603,2440,1792],{},[828,2442,1795],{},[876,2444,2445,1802,2449,1806,2451,629],{},[603,2446,2447],{},[828,2448,1271],{},[828,2450,1805],{},[603,2452,1809],{},[594,2454,1813],{"id":1812},[638,2456,2457,2465],{},[641,2458,2459],{},[644,2460,2461,2463],{},[647,2462,1822],{},[647,2464,1825],{},[654,2466,2467,2475,2483,2493,2501],{},[644,2468,2469,2471],{},[659,2470,1832],{},[659,2472,1835,2473],{},[828,2474,1838],{},[644,2476,2477,2479],{},[659,2478,1843],{},[659,2480,1846,2481],{},[828,2482,1661],{},[644,2484,2485,2487],{},[659,2486,1853],{},[659,2488,1856,2489,1860,2491],{},[828,2490,1859],{},[828,2492,1863],{},[644,2494,2495,2497],{},[659,2496,1868],{},[659,2498,2499,1874],{},[828,2500,1873],{},[644,2502,2503,2505],{},[659,2504,1879],{},[659,2506,2507],{},[828,2508,1884],{},[594,2510,1888],{"id":1887},[873,2512,2513,2519,2525],{},[876,2514,1893,2515,1896,2517,629],{},[603,2516,1809],{},[828,2518,1899],{},[876,2520,1902,2521,1686,2523,629],{},[828,2522,1685],{},[828,2524,1689],{},[876,2526,1909,2527,1912],{},[828,2528,1805],{},[594,2530,1916],{"id":1915},[820,2532,2533],{"className":898,"code":1919,"language":900,"meta":826,"style":826},[828,2534,2535,2541,2545,2569,2579,2583,2587,2597,2615,2619,2623],{"__ignoreMap":826},[904,2536,2537,2539],{"class":906,"line":907},[904,2538,1172],{"class":914},[904,2540,1175],{"class":910},[904,2542,2543],{"class":906,"line":921},[904,2544,1181],{"emptyLinePlaceholder":1180},[904,2546,2547,2549,2551,2553,2555,2557,2559,2561,2563,2565,2567],{"class":906,"line":961},[904,2548,1186],{"class":914},[904,2550,1189],{"class":945},[904,2552,1192],{"class":910},[904,2554,1195],{"class":927},[904,2556,839],{"class":910},[904,2558,1201],{"class":1200},[904,2560,915],{"class":914},[904,2562,1206],{"class":927},[904,2564,1209],{"class":910},[904,2566,1212],{"class":914},[904,2568,1215],{"class":910},[904,2570,2571,2573,2575,2577],{"class":906,"line":993},[904,2572,1230],{"class":910},[904,2574,915],{"class":914},[904,2576,1235],{"class":945},[904,2578,1966],{"class":910},[904,2580,2581],{"class":906,"line":1023},[904,2582,1181],{"emptyLinePlaceholder":1180},[904,2584,2585],{"class":906,"line":1053},[904,2586,1975],{"class":1262},[904,2588,2589,2591,2593,2595],{"class":906,"line":1084},[904,2590,1591],{"class":914},[904,2592,1354],{"class":910},[904,2594,1357],{"class":914},[904,2596,1599],{"class":910},[904,2598,2599,2601,2603,2605,2607,2609,2611,2613],{"class":906,"line":1259},[904,2600,1990],{"class":910},[904,2602,940],{"class":927},[904,2604,1370],{"class":910},[904,2606,915],{"class":914},[904,2608,1375],{"class":945},[904,2610,1378],{"class":910},[904,2612,940],{"class":927},[904,2614,1256],{"class":910},[904,2616,2617],{"class":906,"line":1390},[904,2618,1181],{"emptyLinePlaceholder":1180},[904,2620,2621],{"class":906,"line":1395},[904,2622,2013],{"class":1262},[904,2624,2625,2627,2629,2631,2633,2635],{"class":906,"line":1406},[904,2626,1247],{"class":945},[904,2628,1250],{"class":910},[904,2630,1253],{"class":945},[904,2632,1570],{"class":910},[904,2634,928],{"class":927},[904,2636,1256],{"class":910},[1719,2638,2030],{},{"title":826,"searchDepth":921,"depth":921,"links":2640},[2641,2642,2643,2644,2645],{"id":1754,"depth":921,"text":1755},{"id":1767,"depth":921,"text":1768},{"id":1812,"depth":921,"text":1813},{"id":1887,"depth":921,"text":1888},{"id":1915,"depth":921,"text":1916},{},[],{"title":1748,"description":2038},{"id":2046,"title":2047,"body":2650,"description":2403,"extension":1735,"meta":2957,"navigation":1741,"path":2405,"seo":2958,"stem":2407,"__hash__":2408},{"type":591,"value":2651,"toc":2955},[2652,2654,2656,2658,2660,2678,2680,2682,2720,2722,2724,2729,2741,2743,2745,2747,2819,2825,2827,2831,2879,2883,2885,2887,2919,2921,2923,2925,2943,2945,2947,2953],[2051,2653,305],{"id":2053},[599,2655,2056],{},[2058,2657],{},[2051,2659,2063],{"id":2062},[873,2661,2662,2666,2670,2674],{},[876,2663,2068,2664,2072],{},[603,2665,2071],{},[876,2667,2068,2668,2078],{},[603,2669,2077],{},[876,2671,2068,2672,2083],{},[603,2673,813],{},[876,2675,2086,2676],{},[603,2677,2089],{},[2058,2679],{},[2051,2681,2095],{"id":2094},[638,2683,2684,2694],{},[641,2685,2686],{},[644,2687,2688,2690,2692],{},[647,2689,735],{},[647,2691,738],{},[647,2693,741],{},[654,2695,2696,2704,2712],{},[644,2697,2698,2700,2702],{},[659,2699,748],{},[659,2701,751],{},[659,2703,754],{},[644,2705,2706,2708,2710],{},[659,2707,759],{},[659,2709,762],{},[659,2711,765],{},[644,2713,2714,2716,2718],{},[659,2715,770],{},[659,2717,751],{},[659,2719,754],{},[2058,2721],{},[2051,2723,796],{"id":795},[820,2725,2727],{"className":2726,"code":2141,"language":825,"meta":826},[823],[828,2728,2141],{"__ignoreMap":826},[873,2730,2731,2733,2739],{},[876,2732,2148],{},[876,2734,2151,2735,1784,2737,2156],{},[828,2736,838],{},[828,2738,842],{},[876,2740,2159],{},[2058,2742],{},[2051,2744,1792],{"id":2164},[599,2746,2167],{},[820,2748,2749],{"className":898,"code":2170,"language":900,"meta":826,"style":826},[828,2750,2751,2759,2787,2815],{"__ignoreMap":826},[904,2752,2753,2755,2757],{"class":906,"line":907},[904,2754,911],{"class":910},[904,2756,915],{"class":914},[904,2758,918],{"class":910},[904,2760,2761,2763,2765,2767,2769,2771,2773,2775,2777,2779,2781,2783,2785],{"class":906,"line":921},[904,2762,924],{"class":910},[904,2764,928],{"class":927},[904,2766,931],{"class":910},[904,2768,934],{"class":927},[904,2770,839],{"class":910},[904,2772,940],{"class":927},[904,2774,931],{"class":910},[904,2776,751],{"class":945},[904,2778,839],{"class":910},[904,2780,950],{"class":927},[904,2782,931],{"class":910},[904,2784,955],{"class":927},[904,2786,958],{"class":910},[904,2788,2789,2791,2793,2795,2797,2799,2801,2803,2805,2807,2809,2811,2813],{"class":906,"line":961},[904,2790,924],{"class":910},[904,2792,928],{"class":927},[904,2794,931],{"class":910},[904,2796,970],{"class":927},[904,2798,937],{"class":910},[904,2800,940],{"class":927},[904,2802,931],{"class":910},[904,2804,762],{"class":945},[904,2806,839],{"class":910},[904,2808,950],{"class":927},[904,2810,931],{"class":910},[904,2812,988],{"class":927},[904,2814,958],{"class":910},[904,2816,2817],{"class":906,"line":993},[904,2818,1087],{"class":910},[599,2820,2243,2821,2246,2823,629],{},[828,2822,1805],{},[828,2824,2249],{},[2058,2826],{},[2051,2828,2255,2829],{"id":2254},[828,2830,1271],{},[820,2832,2833],{"className":898,"code":2260,"language":900,"meta":826,"style":826},[828,2834,2835,2841,2845,2869],{"__ignoreMap":826},[904,2836,2837,2839],{"class":906,"line":907},[904,2838,1172],{"class":914},[904,2840,1175],{"class":910},[904,2842,2843],{"class":906,"line":921},[904,2844,1181],{"emptyLinePlaceholder":1180},[904,2846,2847,2849,2851,2853,2855,2857,2859,2861,2863,2865,2867],{"class":906,"line":961},[904,2848,1186],{"class":914},[904,2850,1189],{"class":945},[904,2852,1192],{"class":910},[904,2854,1195],{"class":927},[904,2856,839],{"class":910},[904,2858,1201],{"class":1200},[904,2860,915],{"class":914},[904,2862,1206],{"class":927},[904,2864,1209],{"class":910},[904,2866,1212],{"class":914},[904,2868,1215],{"class":910},[904,2870,2871,2873,2875,2877],{"class":906,"line":993},[904,2872,1230],{"class":910},[904,2874,915],{"class":914},[904,2876,1235],{"class":945},[904,2878,1966],{"class":910},[599,2880,2309,2881,629],{},[828,2882,1805],{},[2058,2884],{},[2051,2886,2317],{"id":2316},[820,2888,2889],{"className":898,"code":2320,"language":900,"meta":826,"style":826},[828,2890,2891,2901],{"__ignoreMap":826},[904,2892,2893,2895,2897,2899],{"class":906,"line":907},[904,2894,1591],{"class":914},[904,2896,1354],{"class":910},[904,2898,1357],{"class":914},[904,2900,1599],{"class":910},[904,2902,2903,2905,2907,2909,2911,2913,2915,2917],{"class":906,"line":921},[904,2904,1990],{"class":910},[904,2906,940],{"class":927},[904,2908,1370],{"class":910},[904,2910,915],{"class":914},[904,2912,1375],{"class":945},[904,2914,1378],{"class":910},[904,2916,940],{"class":927},[904,2918,1256],{"class":910},[599,2920,2353],{},[2058,2922],{},[2051,2924,2359],{"id":2358},[873,2926,2927,2931,2935,2939],{},[876,2928,2151,2929,2366],{},[828,2930,842],{},[876,2932,2369,2933,2372],{},[828,2934,1657],{},[876,2936,2375,2937],{},[828,2938,1685],{},[876,2940,2380,2941],{},[828,2942,1698],{},[2058,2944],{},[2051,2946,2388],{"id":2387},[599,2948,2949,2394,2951,2397],{},[603,2950,2393],{},[828,2952,1271],{},[1719,2954,2400],{},{"title":826,"searchDepth":921,"depth":921,"links":2956},[],{},{"title":2047,"description":2403},1788035580071]