ProgrammerenPython(./) Bienvenudanscecourssurl’apprentissagedelaprogrammationenPython.Cecoursseconcentresurunbut:apprendrelesbasesde programmation.Enfait,l’accentestmissurlaprogrammationdite«impérative»,oùunprogrammedécritlasuited’ordresquel’ordinateurdoit exécuter. Pouratteindrecebut,cecoursdébuteavecl’interpréteurbashmaisutiliseprincipalementlelangagePython3.Ilexistedenombreux(excellents) langagesdeprogrammation,etlechoixdulangagePython3estmotivéparlespointssuivants: 1. lapratiqueesttrèsimportantepourapprendreàprogrammer,ilfautdoncforcémentfaireunchoixdelangage, 2. Pythonestgratuit,proposeunetrèsbonnedocumentationetfonctionnepresquesurtouslesordinateurs, 3. Pythonaunetrèsgrandecommunauté(encoreenpleinecroissance)etestutilisétrèslargement,delacréationdesiteswebsàdenombreux domainesscientifiques, 4. l’expérienceamontréqu’ilestplusfacilepourlesdébutantsd’apprendrePythonquelaplupartdesautreslangagesdeprogrammation, 5. bienquelesversions2et3dePythonexistentetsoientactives,laversion3dePython(parexemple,Python3.5)estpluscohérentepour l’apprentissageetplusdurablequelaversion2(parexemplePython2.7). PourquoiApprendreàProgrammer Pourlaplupartdesgens,programmern’estpasunefinensoi.Apprendrelesbasesdeprogrammationestcependanttrèsutiledansquasimenttous lesdomaines.Savoirprogrammerpermet: d’automatiserdestâchesrépétitives,faisantgagnerparfoisplusieursjoursdetravailparmois, detraiterdesgrandsvolumesdedonnéesetdelesmettreenforme, d’améliorersescapacitésderésolutiondeproblème, deréaliserdescréationsinteractives(animations,simulations,jeux,etc.), demieuxcomprendrelestechnologiesquinousentourent, etc. Prérequis Pourprofiteraumaximumdececours,l’apprenantdoitpréalablement: savoirutiliserunordinateur, êtrefamiliersavecaveclesnotionsdefichieretderépertoire(appeléaussidossier), avoiraccèsàunordinateurpourexpérimenteraveclesprogrammesquiserontécrits(voirlapartieinstallation(./installation/)sivousvoulez utilisezvotreordinateur). Plandudocument 00:00 Introduction Qu’estcequelaprogrammationimpérative? Quelestladifférenceentreinformatiqueetprogrammation? Pourquoienseignerl’informatiqueàtous? 00:00 LeTerminaletBash Qu’estcequeleterminal? Qu’estcequebash? 00:00 ArborescencesdeFichieretBash Qu’estcequiconstituelenomd’unfichier? Commentdésigner/référencerunfichierdanslerépertoirecourant? Commentdésigner/référencerunfichierailleurs? 00:00 UnPremierProgramme CommentetoùécrireunprogrammeenPython? Commentlancer/exécuterceprogrammePython? 00:00 OpérationssurdesNombres QuelssontlesopérationspossiblesenPython? Commentcontrôlerplusfinementcequiestaffichéavecprint? 00:00 VariablesetTypes Commentrendrepluslisiblesdesexpressionscompliquées? Commentmémoriserdesvaleursintermédiaire? Peux-onajouterdeschouxetdescarottes? 00:00 Apprendreparl'Erreur Queltyped’erreurspeuventsemanifesterdansunprogramme? Commentlirelesmessagesd’erreurs? Commentchercheretrésoudreunproblèmedansunprogramme? 00:00 FonctionsPrédéfiniesetAide D’oùviennentlesfonctionsprint(…),min(…),len(…),etc? Y-a-t-ilunmanueld’utilisationpourcesfonctions? 00:00 BibliothèquesetImportationdeFonctions Commentfairedescalculsmathématiquespluscomplexescommedelatrigonométrie? Oùtrouverd’autresfonctionsexistantes? Commentréférencerdesfonctionsexistantes? 00:00 BibliothèqueGraphiqueqtido Commentalleraudelàdeprint(…)pourinteragiravecl’utilisateur? Commenttracerdesformesgéométriquesdansunefenêtre? Commentexporterundessindansunfichierjpegoupng? 00:00 EntréesUtilisateur Commentrecevoirdesentréestextuellesdel’utilisateur? Commentrecevoirdesentréesnumériquesdel’utilisateur? 00:00 InstructionsConditionnelles Commentn’exécutercertainespartiesduprogrammequedanscertainscas? 00:00 InstructionsConditionnelles(2) Commentexécuterunepartieduprogrammeoul’autre? Commentlimiterlenombred’instructionsconditionnelles? 00:00 Boucleswhile(tantque) Commentrépeterdesinstructionsàl’infini? Commentrépeterdesinstructionsplusieursfois? 00:00 ListesdeValeurs Commentgrouperdesvaleursdansuneliste? Commentlireetmodifieruneliste? 00:00 ListesdeValeurs(2) Commenttestersiunevaleurssetrouvedansuneliste? Commentextrairedesstatistiquesd’uneliste? 00:00 Bouclesfor Commentappliquerunmorceaudeprogrammesurchaqueélémentd’uneliste? Commentévitercertainscopier/collerdansunprogramme? 00:00 Finish ProgrammerenPython(../) Introduction (../02-terminal-et-bash/) Aperçu Teaching:0min Exercises:0min Questions Qu’estcequelaprogrammationimpérative? Quelestladifférenceentreinformatiqueetprogrammation? Pourquoienseignerl’informatiqueàtous? Objectifs Avoiruneidéeglobaledecequ’estlaprogrammation. Comprendrel’intérêtd’uncoursd’informatique. Programmationimpérative Unordinateurestcomposédedifférentespartieset,d’unpointdevuematériel,esttrèscompliqué.Ilnerestecependantqu’unsimpleautomatequi réaliselesordresqu’onluidonne.Unordinateurnesaitenfaitréaliserquedesordres(ouinstructions)trèssimplessurdesnombres:addition, soustraction,multiplication,division,lectureenmémoire,écritureenmémoire.Tousleslogicielsetlesprogrammesquenousutilisonsaujourd’huiont étécréésàpartirdecesinstructionssimples. ordinateurprogetlangagesprogimp Informatiqueetprogrammation LaSIF(SociétéInformatiquedeFrance)définiel’informatiquedelafaçonsuivante: L’informatiqueestlascienceetlatechniquedelareprésentationdel’informationd’origineartificielleounaturelle,ainsiquedesprocessus algorithmiquesdecollecte,stockage,analyse,transformation,communicationetexploitationdecetteinformation,exprimésdansdes langagesformelsoudeslanguesnaturelleseteffectuéspardesmachinesoudesêtreshumains,seulsoucollectivement. L’informatiqueestdonclelargedomainequiconcernelareprésentationetletraitementd’informationsdetoutessortes.Danscecours,l’objectifest deseconcentrersurl’apprentissagedelaprogrammation,quiestunesouspartiedel’informatiquequiconsisteàutiliserunlangageformel(Python) pourdécriredestraitements.Audelàdelaprogrammation(écritureduprogramme),nousseronsamenésànousposercertainesquestions fondamentalescomme: Quelleinformationreprésenter? Commentstocker/représentercetteinformation? Quelleestlatâche,queveutonfairedecesinformations? Quelalgorithmepermetderésoudrecettetâche? Pourquoienseignerl’informatiqueàtous SergeAbitebouldonnelesmotivationssuivantepourenseigner/apprendrel’informatique: Pourcomprendrelemondedanslequelnousvivons. Pourmaîtriserplutôtquedesubirlesnouveauxoutils. Pourpouvoircréer,ens’appuyantsurdenouvellestechniques. Pouravoirunechancedefaireavancerlarecherche(danslaplupartdessciences). Pouravoirunechancedeparticiperàl’innovationdansdespansentiersdel’industrie. PointsClés Leslangagesdeprogrammationserventàexprimercequel’onveutquel’ordinateurfasse. Laprogrammationestunesouspartiedel’informatique. L’informatiqueestunecompétencecapitalepourl’innovationdanstouteslesdisciplines. (../01-introduction/) ProgrammerenPython(../) LeTerminaletBash (../03-bash-et-chemins/) Aperçu Teaching:0min Exercises:0min Questions Qu’estcequeleterminal? Qu’estcequebash? Objectifs Comprendrecequel’onappelleterminaletl’interpréteurdecommandesbash. Comprendrelesinteractionsentreleterminal,l’interpréteurdecommandebashetl’utilisateurhumain. Savoirlancerunterminaletdemanderàbashd’exécuterquelquescommandes. PointsClés Leterminalestunprogrammequiouvreunefenêtreetyexécuteunautreprogramme(parexempleuninterpéteurdecommande). Leterminallitcequiesttapéauclavieretl’envoieauprogrammelancé. Leterminalaffichelasortieduprogrammelancé. Bashestuninterpréteurdecommandes(dontlenomestlepremiermottapédansunecommande). LaplupartdescommandesBashsontd’autresprogrammes(comme ls ). Bashaaussidescommandesinternes(comme pwd et cd ). Bashàunenotionderépertoirecourant:ilse«promène»dansl’arborescencederépertoires. (../02-terminal-et-bash/) ProgrammerenPython(../) ArborescencesdeFichieretBash (../04-python-intro/) Aperçu Teaching:0min Exercises:0min Questions Qu’estcequiconstituelenomd’unfichier? Commentdésigner/référencerunfichierdanslerépertoirecourant? Commentdésigner/référencerunfichierailleurs? Objectifs Insistersurlanotionderépertoirecourant. Comprendrelescheminsrelatifs. Comprendrelescheminsabsolus. Connaitreslesrépertoiresspéciaux . et .. . PointsClés Uncheminquicommencepar / estuncheminabsolu. Toutautrecheminestuncheminrelatifaurepertoirecourant. Lescheminsselisentdegaucheàdroite,avec / commeséparateur. Lerépertoirespécial . représentetoujourslerépertoirecourant. Lerépertoirespécial .. représenteleparentdurépertoireconcerné. (../03-bash-et-chemins/) ProgrammerenPython(../) UnPremierProgramme (../05-operations-arith/) Aperçu Teaching:0min Exercises:0min Questions CommentetoùécrireunprogrammeenPython? Commentlancer/exécuterceprogrammePython? Objectifs Savoirécrireunprogrammedansunfichiertextebrut. Savoirutilisezlacommande python3 pourlancer/exécuterleprogramme. SavoirafficherunnombreetdutexteenPython. SavoirécrireuncommentaireenPython. Syntaxe:commentaires Toutelignequicommencepar # (dièse)estignoréeparPython. Toutcequisuitun # estignoréparl’interpréteurPython(saufdansunechaînedecaractères). #Toutecetteligneestuncommentaire print("Bonjour")#Ceciestuncommentaire print("Suivez#python!(etcen'estpasuncommentaire).") PointsClés UnprogrammePythonestunfichiertextebrut. L’extensionnormalepourlesprogrammesPythonest .py ,parexemple nomDuFichier.py . UnprogrammePythons’exécuteavec python3nomDuFichier.py . EnPython, print(…) permetdeproduireunesortiequiseraaffichéedansleterminal. Laplupartdesespaces(caractère``)sontinsignifiant,saufendébutdeligne. Du«texte»estaussiappeléune«chaînedecaractères»oustring(enanglais). EnPython, len(…) permetd’obtenirlalongueurd’unechaînedecaractères(lenombredecaractèresqu’ellecontient). EnPython,unechaînedecaractèredoitêtreentreguillemets. Onpeututiliserauchoixlesguillemetssimples 'toto' oulesdoubles "toto" pourleschaînesdecaractères. (../04-python-intro/) ProgrammerenPython(../) OpérationssurdesNombres (../06-variables-et-types/) Aperçu Teaching:0min Exercises:0min Questions QuelssontlesopérationspossiblesenPython? Commentcontrôlerplusfinementcequiestaffichéavec print ? Objectifs ConnaîtrelesopérateursusuelsenPython. Savoirutiliserles«paramètresnommés» sep et end delafonction print(...) . PointsClés Pythonpermetd’utiliserlesopérateursmathématiquesusuels + , - , * (uneétoilepourmultiplication)et / . Laprioritédesopérateursestlamêmequ’enmathématiques. L’opérateur ** estutilisépourlapuissance,etmarcheaussiavecdespuissancesnon-entières. L’opérateur // estutilisépourladivisionentière. L’opérateur % (appelé«modulo»)estutilisépourobtenirlerestedeladivisionentière. Pardéfaut, print(…,…,…) affichesesparamètresséparéspardesespaces,etensuiteunefindeligne. ilestpossibledechangerleséparateurenutilisant print(…,…,…,sep='et') (pourutiliser`et`commeséparateur). ilestpossibleparexpempled’enleverleretouràlaligneenutilisant print(…,…,…,end='') (chaînevidepour end ). (../05-operations-arith/) ProgrammerenPython(../) VariablesetTypes (../07-erreurs/) Aperçu Teaching:0min Exercises:0min Questions Commentrendrepluslisiblesdesexpressionscompliquées? Commentmémoriserdesvaleursintermédiaire? Peux-onajouterdeschouxetdescarottes? Objectifs Comprendrelanotiondevariable. Comprendrelanotiondeprogrammationimpérative. PointsClés Unprogrammeestexécutédehautenbas. Chaquevaleurenpythonauntype,parexemple int (entier)ou float (nombreàvirguleflottante)ou str (string,chaînedecaractères). Ilestpossibled’associer/d’affecterunevaleuràunnom,onappellecelaunevariable. Unevariablechangedevaleuruniquementquandluiréaffecteunenouvellevaleur. Onpeutconnaîtreletyped’unevaleuravec type(…) . Lenomd’unevariablesn’apasd’importancepourl’ordinateur. Ilestcependantprimordialdechoisirdesnomsdevariablespertinentspouraideràla(re)lectureduprogramme. Unprogrammeestécritpourêtrecomprisàlafoisparl’ordinateuretparl’humain. (../06-variables-et-types/) ProgrammerenPython(../) Apprendreparl'Erreur (../08-fonction-et-aide/) Aperçu Teaching:0min Exercises:0min Questions Queltyped’erreurspeuventsemanifesterdansunprogramme? Commentlirelesmessagesd’erreurs? Commentchercheretrésoudreunproblèmedansunprogramme? Objectifs Comprendrelesdifférentessourcesd’erreurs:erreurstatique,erreurdynamique. Apprendreàlirelesmessagesd’erreurs. Apprendreàutiliserinternetencasdeproblèmepersistent. PointsClés C’estenfaisantdeserreursquel’onapprend. Unprogrammepeutêtreerronédepartsastructure. Unprogrammepeutgénérerdeserreurssicertainesopérationssontutiliséesavecdestypesoudesvaleursinadaptées. Mêmesilesmessagesd’erreurssontenanglaisetparfoiscompliqués,ilspointentrelativementprécisémentl’erreurdansleprogramme. Leserreurssontsouventdumêmetypeetildevientdeplusenplusfaciledecomprendrelesmessagesd’erreur. Quandunmessaged’erreurestrelativementoriginal,ilestpossibledelecopiercollerdansunmoteurderecherchepourtrouverdespistesde solution. (../07-erreurs/) ProgrammerenPython(../) FonctionsPrédéfiniesetAide (../09-import-biblio/) Aperçu Teaching:0min Exercises:0min Questions D’oùviennentlesfonctions print(…) , min(…) , len(…) ,etc? Y-a-t-ilunmanueld’utilisationpourcesfonctions? Objectifs Sefamiliariseravecleconceptd’appeldefonctionfonction. Comprendreleconceptde«valeurderetour»d’unefonction. Savoirafficherlemanueld’unefonction. la_doc=min.__doc__ print(la_doc) PointsClés Pythonfourniunensembledefonctionsprédéfiniestellesque print , abs , min , max , len , help . On«appelle»lafonction(onl’exécute)quandonécritsonnomsuividevaleursdeparamètresentreparenthèses. Unefonctionpeutaccepterunnombrearbitrairedeparamètres(ycomprisaucunparamètre). Chaquefoisquel’onappelleunefonction,unevaleurestretournée. Lavaleurspéciale None représenteunevaleurvide. Lafonctionprédéfinie help(…) permetd’afficher«interactivement»lemanueld’unefonction. (../08-fonction-et-aide/) ProgrammerenPython(../) BibliothèquesetImportationdeFonctions (../10-biblio-qtido/) Aperçu Teaching:0min Exercises:0min Questions Commentfairedescalculsmathématiquespluscomplexescommedelatrigonométrie? Oùtrouverd’autresfonctionsexistantes? Commentréférencerdesfonctionsexistantes? Objectifs Comprendreleconceptde«bibliothèque»(appeléaussi«module»). Découvrirles3façonspossiblesd’utiliserunefonctiond’unebibliothèque. Syntaxe:utilisationde import pourutiliserunebibliothèque. importationdumodule importmath print(math.sqrt(100)) importationd’unefonctionenparticulier frommathimportsqrt print(sqrt(100)) importationdetouteslesfonctionsd’unmodule frommathimport* print(sqrt(100)) PointsClés Unebibliothèquefourniunensembledefonctionsetconstantesutiles. Labibliothèque math fournidesfonctions( sin , log ,etc)etdesconstantestellesque pi et e . Ilestnécessaired’installerunebibliothèqueavantdepouvoirimportersesfonctions. Certainesbibliothèquessontinstalléespardéfaut. Lanotation truc.machin veutdirequel’onaccèdeà machin quisetrouveàl’intérieurde truc ,icilafonction machin danslemodule truc . Ilestpossibled’importerunmodule,unefonctionenparticulieroul’ensembledesfonctionsd’unmodule. (../09-import-biblio/) ProgrammerenPython(../) BibliothèqueGraphiqueqtido (../11-input-conversion/) Aperçu Teaching:0min Exercises:0min Questions Commentalleraudelàde print(…) pourinteragiravecl’utilisateur? Commenttracerdesformesgéométriquesdansunefenêtre? Commentexporterundessindansunfichierjpegoupng? Objectifs Savoirinstalleretimporterlabibliothèqueqtido. Découvrirlesfonctionsproposéesparqtido. Comprendrelesystèmedecoordonnéesutiliséespourletracerdedessins. Labibliothèque qtido permetdetracerdesdessinsdansunefenêtregraphique.Deuxmodessontproposés:unmode«tortue»trèssimpleavec seulementquelquesinstructions,etunmode«normal»proposantbeaucoupplusdefonctionnalités.Unepartiedédiéedonneunelistedesfonctions de qtido (../reference-qtido). Donnerdesordresàunetortuepourtracer Onimagineunetortuequiporteunstyloetsedéplaceentraçantuntraitsursonchemin.Audépartlatortueesttournéeversladroite.Latortue acceptederecevoirdifférentsordrespouravancer(d’unnombredepixels),tourner(d’unangleendegrés)oulever/baisserlestylo. Voiciunexemple,oùlatortuetraceuntriangleéquilatéraldecoté100pixels. fromqtidoimport* f=creer(800,600) t=creer_tortue(f) t.tortue_avance(100) t.tortue_droite(120) t.tortue_avance(100) t.tortue_droite(120) t.tortue_avance(100) Etuntrianglerectangle? Tracerdesfiguresgéométriques Lescoordonnéespourtouteslesopérationsdetracésontexpriméesdansunrepèresenpixels.Contrairementauxrepèresenmathématiques: lepoint0,0estlepremierpixelenhautàgauchedelafenêtre, lescoordonnéesYaugmenteverslebas. Ainsileschémasuivant: 0 5 X 15 0 3 6 Y illustrecequefaitleprogramme: fromqtidoimport* #créerunepetitefenêtrede32x13pixels f=creer(32,13) #changerlacouleurdetracéenbleu couleur(f,0,0,1)#quantitésderouge,vertetbleu #tracerunrectangleallantde5,3inclusà15,6exclus rectangle(f,5,3,15,6) #attendre1secondepourvoirledessinavantqueleprogrammenesequitte attendre_pendant(f,1000) Quelprogrammetracelafiguresuivante? PointsClés Labibliothèque qtido vousestfourniparvosenseignants. Labibliothèque qtido permetentreautredecréerdesfenêtresgraphiques,d’ytracerdesfiguresetdutexte,d’yajouterdesboutons,etde gérerlesévénementsclavieretsouris. Pourpouvoirutiliserlabibliothèque qtido ,ilfautavoirlefichier qtido.py àcotéduprogrammequil’utiliser. Lescoordonnéespourletracersontdonnéesenpixels,aveclepoint0,0enhautàgauchedelafenêtre. Labibliothèque qtido aaussiunmode«tortue». (../10-biblio-qtido/) ProgrammerenPython(../) EntréesUtilisateur (../12-condition-if/) Aperçu Teaching:0min Exercises:0min Questions Commentrecevoirdesentréestextuellesdel’utilisateur? Commentrecevoirdesentréesnumériquesdel’utilisateur? Objectifs Comprendrelanotiondeparamètresd’unprogramme. Savoircomment,dansunprogramme,demanderàl’utilisateurdetaperunechaînedecaractères. Savoirconvertirdeschaînesdecaractèresenentierouréel,etvice-versa. Multiplicationdecequiesttapé! PointsClés Quandonlanceunprogrammeilestpossibled’yajouterdesparamètres,parexemple, python3monprogramme.pytoto42 . Lavariable argv contenuedanslemodule sys permetd’accéderauparamètresduprogramme. Onpeutaccéderaunomdufichierpythonavec sys.argv[0] (quivaut monprogramme.py dansl’exemple). Onpeutaccéderaupremierparamètreduprogrammeavec sys.argv[1] (quivaut toto dansl’exemple). Avec len(sys.argv) onobtientunnombreentiercontenantlenombredeparamètres+1(ce1vientdufaitquel’onaaussiaccèsaunomdu fichierpython). Dansunprogramme,lafonction input() attendquel’utilisateurtapeunelignedetexteauclavieretrenvoiecequiaététapé. Lafonction input(…) peutaccepterunparamètreappeléleprompt,c’estàdirequ’ilseraaffichépourinciterl’utilisateuràtaper. Ilfautbiencomprendreladistinctionentrelesparamètresd’unprogramme(dans sys.argv )etlafonction input . Lesparamètressontdeschaînesdecaractères. Danstouslescas input(…) renvoieunechaînedecaractères. Onpeutconvertirunevaleurenentieravec int(…) ,enflottantavec float(…) ouenchaînedecaractèresavec str(…) (pourstring). (../11-input-conversion/) ProgrammerenPython(../) InstructionsConditionnelles (../13-conditions-else/) Aperçu Teaching:0min Exercises:0min Questions Commentn’exécutercertainespartiesduprogrammequedanscertainscas? Objectifs Comprendrel’instruction if . Comprendrecequ’estl’indentationetsonimportanceenPython. DécouvrirlesopérateursdecomparaisondisponiblesenPython. Decombienindenterunbloc? Bienqu’ilsoitpossibled’utiliserlenombred’espacequel’onveutpourindenterunbloc,ilestfortementrecommandéd’utiliser4espaces(puis8 pourlesblocsimbriqués,etainsidesuite).Lestabulationsnedoiventpasêtreutiliséespourl’indentation. Syntaxe:Instructionconditionnellesavec if Uneinsructionconditionnelledémarreparlemotclé if suivid’unecondition(appeléaussitest),suivide : puisd’unbloc. Unblocestconstituéd’uneouplusieurslignesd’unprogrammequisontindentées(toutecommençantparplusd’espacequelaligne if ettoute aveclemêmenombred’espace.);visuellementleblocestdécaléverssurladroite. if«condition»: «instruction» «instruction» «…» «…»#suiteduprogramme,aumêmeniveauquele`if` PointsClés Pythondisposedesopérateursdecomparaison == , != , < , <= , > , >= . Unecomparaisonestsoitvraie(valeur True ),soitfausse(valeur False ). L’exécutionconditionnelles’exprimegrâceaumotclé if . L’indentation(nombred’espacesendébutdeligne)estcapitaleenPythoncarelledéfiniunblocdecode. Ilestpossibled’imbriquerdes if (mettreun if dansleblocd’unautre if ). (../12-condition-if/) ProgrammerenPython(../) InstructionsConditionnelles(2) (../14-boucle-while/) Aperçu Teaching:0min Exercises:0min Questions Commentexécuterunepartieduprogrammeoul’autre? Commentlimiterlenombred’instructionsconditionnelles? Objectifs Comprendrelesmotsclés else et elif . Syntaxe: if avec else Leblocdel’instruction if peutêtresuividel’instruction else: etd’unblocquiseraexécutésilaconditionestfausse(alavaleurFalse).Ainsi,la condition: if«A»: «B»#corpsdelaboucle else: «C»#corpsduelse «D»#aprèslaboucle estéquivalenteà(sachantque not(…) permetded’inverserunevaleurbooléenne): if«A»: «B» ifnot(«A»): «C» «D» Syntaxe: if avec elif Ilestpossibled’utiliseraprèsun if (etavantlepotentiel else )lemotclé elif (pour«elseif»,signifiant«sinon,si».Laconstructionavec elif peutêtreré-écriteàl’aided’unsecond if imbriquédansle else .Ainsi,parexemple,lacondition: if«T1»: «P1» elif«T2»: «P2» elif«T3»: «P3» else: «E» «F»#aprèslaboucle estéquivalenteà: if«T1»: «P1» else: if«T2»: «P2» else: if«T3»: «P3» else: «E» «F» PointsClés Uneconditionnelle if peutêtresuivied’unouplusieurs elif etd’un else . Les elif etd’un else aidentàécriredesprogrammesplusclairs. (../13-conditions-else/) ProgrammerenPython(../) Boucleswhile(tantque) (../15-listes-base/) Aperçu Teaching:0min Exercises:0min Questions Commentrépeterdesinstructionsàl’infini? Commentrépeterdesinstructionsplusieursfois? Objectifs Savoirécrireuneboucle while . Syntaxe:Bouclesavec while Uneboucle«tantque»démarreparlemotclé while suivid’unecondition,suivide : puisd’unblocappeléaussi«corpsdelaboucle». Lecorpsdelaboucleestexécutérépétitivementtantquelaconditionestvraie(valeur True ). while«condition»: «instruction» «instruction» «…» «…»#suiteduprogramme,aumêmeniveauquele`while` Uneboucle while peutêtrevirtuellementré-écriteàl’aided’uneinfinitéde if imbriqués.Ainsi,laboucle: while«A»: «B»#corpsdelaboucle «C»#aprèslaboucle estéquivalenteà: if«A»: «B» if«A»: «B» if«A»: «B» if«A»: «B» …#àl'infini «C» PointsClés Laboucle while (tantque)permetderépéterl’exécutiond’unblocdecode. Lecorpsdelaboucle while doitêtreindenté. (../14-boucle-while/) ProgrammerenPython(../) ListesdeValeurs (../16-listes-plus/) Aperçu Teaching:0min Exercises:0min Questions Commentgrouperdesvaleursdansuneliste? Commentlireetmodifieruneliste? Objectifs Comprendreleconceptdeliste. Savoircommentcréer,lireetmodifierdeslistes. Syntaxe:créationd’uneliste Pourcréerunelisteilfautmettrelesvaleursvouluesentrecrochetsetséparéespardesvirgules.Onpeutdonccréeruneliste(etl’affecteràla variable«var»)avec: «var»=[«expression»,«expression»,«…»] Ilpeutyavoirunnombrequelconqued’expressions.Ilpeutenparticulierpossibledenemettreaucuneexpression,créantainsiuneliste,par exempleavec: «var»=[] Syntaxe:accèsàunélémentd’uneliste Ilestpossibled’accéderàunélémentd’unelisteavec: «liste»[«indice»] Cetaccèspeutserviràchangerlavaleurd’unélémentd’uneliste,avec: «liste»[«indice»]=«expression» PointsClés Uneliste(appeléeaussi«tableau»)estunconteneurd’éléments,quicontientunesuitedevaleurs. Unelisteacommetype list . Lesélémentsd’unelistepeuventêtredetypesquelconques(etpotentiellementdifférents). Lesindicescommencentà0.Lepremierélémentapourindice0,lesecondapourindice1,etc. (../15-listes-base/) ProgrammerenPython(../) ListesdeValeurs(2) (../17-boucle-for/) Aperçu Teaching:0min Exercises:0min Questions Commenttestersiunevaleurssetrouvedansuneliste? Commentextrairedesstatistiquesd’uneliste? Objectifs Découvrircertainsavantagespratiquedeslistes. Savoircréerunelisteprogressivement,enajoutantlesélémentsunparun(utiliserunelistecommeaccumulateur). Quelledifférenceentre list.append(l,e) ou l.append(e) ? Si l estunelisteet e unélémentquelconque,ilestpossibled’utiliserindifféremment list.append(l,e) ou l.append(e) .Ladeuxième versionestlaplusutiliséeparlacommunautéPython.Cesnotationestàmettreenparallèleaveccelleutiliséepourlesbibliothèques,parexemple math.sin(…) .Lanotation list.append veutdirequel’onaccèdeà append quisetrouveàl’intérieurde list ,icilafonction append dansle type list .Pourlecasde l.append onaccèdeàlafonction append denotrelisteparticulière l :lafonctionsaitdoncdéjàdequellelisteil s’agit,etonnepassedoncquel’élémentàajouter e . Syntaxe:testd’appartenanceàuneliste Ilestpossiblederegardersiunélémentestdansunelisteàl’aidedumotclé in ,parexempleicidansun if : if«el»in«list»: «instruction» PointsClés Leslistespeuventêtremanipulésdemanièrecomparableauxchaînesdecaractèresparexempleavec len(…) , * , + . Certainesfonctionscomme min(…) , max(…) , sum(…) fonctionnentaussiavecunelisteenparamètre. Lafonction list.append(l,e) permetd’ajouterunélémentàlafind’uneliste(lalisteestmodifiée). (../16-listes-plus/) ProgrammerenPython(../) Bouclesfor (../17-boucle-for/) Aperçu Teaching:0min Exercises:0min Questions Commentappliquerunmorceaudeprogrammesurchaqueélémentd’uneliste? Commentévitercertainscopier/collerdansunprogramme? Objectifs Comprendreleprincipedelaboucle for . Comprendrecommentécrireuneboucle for . Syntaxe:Bouclesavec for Uneboucle«pourchaque»démarreparlemotclé for (pour)suivid’unnomdevariable,dumotclé in (dans),d’unelisted’éléments,de : et finalementd’unblocappeléaussi«corpsdelaboucle». Pourchaqueélémentdelaliste,lavariableestaffectéàlavaleurdecetélémentetlecorpsdelaboucleestexécuté. Lecorpsdelaboucleestdoncexécutéautantdefoisqu’ilyad’élémentsdanslalistedonnée. for«var»in«liste»: «instruction» «instruction» «…» «…»#suiteduprogramme,aumêmeniveauquele`for` Parexemple,sil’onconsidèrequelalisteest [10,20,30] ,alorslaboucle: for«var»in[10,20,30]: «A» «B» estéquivalenteà: «var»=10 «A» «var»=20 «A» «var»=30 «A» «B» PointsClés Àl’aidede for ,ilestaussipossibledeparcourirlescaractèresd’unechaînedecaractères. Laboucle while permetsaussideréaliserunparcoursàlamanièrede for . Copyright©2016 Contact(mailto:[email protected])