Programmer en Python (./)

publicité
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])
Téléchargement