Transcription of Mémento Python 3 - LIMSI
1 Indexation conteneurs s quencesTypes de baseM mento Python 3 2012-2017 - Laurent PointalLicence Creative Commons Paternit 4 Derni re version sur : "Un\nDeux"'L\' me'str"""X\tY\tZ1\t2\t3""" 10-6tabulation chapp eretour la ligne chapp Cha ne multiligne :Types conteneurslist[1,5,9]["x",11, ]["mot"][]tuple(1,5,9)11,"y", ("mot",)()dict{1:"un",3:"trois",2:"deux" , :" "}{"cl ":"valeur"}set{}{1,9,3,0} s quences ordonn es, acc s par index rapide, valeurs r p tablesset() conteneurs cl s, sans ordre a priori, acc s par cl rapide, chaque cl unique{"cl 1","cl 2"}Valeurs non modifiables (immutables)x= +8+sin(y)y,z,r= , ,0 suivi de accents possibles mais viter mots cl s du langage interdits distinction casse min/MAJ expression juste avec des virgules tupledictionnaireensembleentier,flottant ,bool en,cha ne,octets a toto x7 y_max BigOne 8y and forx+=3x-=2incr mentation x=x+3 d cr mentation x=x-2 Conversionspour les listes, tuples, cha nes de caract res, int("15") 15type(expression)int("3f",16) 63sp cification de la base du nombre entier en 2nd param treint( ) 15troncature de la partie d cimalefloat(" ") ( ,1) 1 d cimale (0 d cimale nb entier)bool(x)False pour x z ro, x conteneur vide, x None ou False ; True pour autres x str(x) ".
2 "cha ne de repr sentation de x pour l'affichage (cf. Formatage au verso)chr(64) '@'ord('@') 64code caract rerepr(x) ".."cha ne de repr sentation litt rale de xbytes([72,9,64]) b'H\t@'list("abc") ['a','b','c']dict([(3,"trois"),(1,"un")] ) {1:'un',3:'trois'}set(["un","deux"]) {'un','deux'}str de jointure et s quence de str str assembl e':'.join(['toto','12','pswd']) 'toto:12:pswd'str d coup e sur les blancs list de str"des mots espac s".split() ['des','mots','espac s']str d coup e sur str s parateur list de str"1,4,8,2".split(",") ['1','4','8','2']s quence d'un type list d'un autre type (par liste en compr hension)[int(x) for x in ('1','29','-3')] [1,29,-3]lst=[10, 20, 30, 40, 50]lst[1] 20lst[-2] 4001234-5-4-3-1-2 Acc s individuel aux l ments par lst[index]index positifindex n gatif012354-5-4-3-1-2tranche n gativetranche positiveAcc s des sous-s quences par lst[tranche d but:tranche fin:pas]len(lst) 5lst[1:3] [20,30]lst[::2] [10,30,50]lst[-3:-1] [30,40]lst[:3] [10,20,30]lst[:-1] [10,20,30,40]lst[3:] [40,50]lst[1:-1] [20,30,40]lst[:] [10,20,30,40,50]Indication de tranche manquante partir du d but / jusqu' la les s quences modifiables (list), suppression avec del lst[3:5] et modification par affectation lst[1:4]=[15,25]Instruction conditionnelleif age<=18: etat="Enfant"elif age>65: etat="Retrait "else: etat="Actif"instruction parente: bloc d'instructions instruction parente: bloc d'instructions instruction suivante apr s bloc 1indentation !
3 Comparateurs: < > <= >= == != = a and ba or bnot aet logiqueou logiquenon logiquel'un ou l'autre ou les deuxles deux en m me tempsif condition logique: bloc d'instructionsun bloc d'instructions ex cut ,uniquement si sa condition est vraieCombinable avec des sinon si, sinon et un seul sinon final. Seul le bloc de la premi re condition trouv e vraie est ex cut .lst[-1] 50lst[0] 10 le dernier le premierx=Nonevaleur constante non d fini MathsOp rateurs : + - * / // % ** enti rereste abfrom math import sin, (pi/4) (2*pi/3) (81) log(e**2) ( ) 13floor( ) 12' chapp nombres valeurs approch es !angles en radians(1+ )*2 ( ) ( ,1) (4,3) noms de variables,fonctions, modules, mento (s quences ordonn es de caract res / d'octets)(couples cl /valeur) pi ge : and et or retournent la valeur de a ou de b (selon l' valuation au plus court). s'assurer que a et b sont bool ens.(r sultats bool ens)a=b=c=0affectation la m me valeuraffectations multiplesa,b=b,a change de valeursa,*b=seq*a,b=seqd paquetage de s quence en l ment et listebytesbytesb"toto\xfe\775"hexad cimaloctal0b0100xF30o642binaireoctalhexa ""videdict(a=3,b=4,k="v")Nombre d' l ments cl s=valeurs hachables (types base, )TrueFalseconstantes Vrai/Faux r gler l' diteur pour ins rer 4 espaces la place d'une tabulation d' [::-1] [50,40,30,20,10]lst[::-2] [50,30,10]1) valuation de la valeur de l'expression de droite2) affectation dans l'ordre avec les noms de gauche= affectation association d'un nom une valeur immutablesSur les s quences modifiables (list), suppression avec del lst[3] et modification par affectation lst[4]=25del xsuppression du nom xb""@ matricielle +numpy index partir de 0(de 0 4 ici)frozenset ensemble immutablePriorit s (.
4 Priorit s usuellesmodules math, statistics, random,decimal, fractions, numpy, modules/nomsfrom monmod import nom1,nom2 as fctmodule truc fichier acc s direct aux noms, renommage avec asimport monmod acc s via .. modules et packages cherch s dans le Python path (cf. )?ouinoncopie superficielle de la s quence?ouinonet*=/=%=.. avec une variable x:if bool(x)==True: if x:if bool(x)==False: if not x:raise ExcClass(..)Signalisation :Traitement :try: bloc traitement normalexcept ExcClass as e: bloc traitement erreurtraitementnormaltraitementerreurtr aitementerreurraiseraise X()z ro bloc finally pour traitements finaux dans tous les & affectationLogique bool enneExceptions sur erreursBlocs d'instructions"modele{} {} {}".format(x,y,r)"{s lection:formatage!conversion}" S lection : 2 nom 4[cl ] 0[2]strAffichageprint("v=",3,"cm :",x,",",y+4)Options de print: sep=" "s parateur d' l ments, d faut espace end="\n"fin d'affichage, d faut fin de ligne file= vers fichier, d faut sortie standard l ments afficher : valeurs litt rales, variables, expressionsboucle sur dict/set boucle sur s quence des cl sutilisation des tranches pour parcourir un sous-ensemble d'une s quenceInstruction boucle conditionnellebloc d'instructions ex cut tant que la condition est vraiewhile condition logique: bloc d'instructionss = 0i = 1while i <= 100: s = s + i**2 i = i + 1print("somme:",s)initialisations avant la bouclecondition avec au moins une valeur variable (ici i)s= i=1i=100i2 faire varier la variable de condition !
5 Bloc d'instructions ex cut pour chaque l ment d'un conteneur ou d'un it rateurfor var in s quence: bloc d'instructionss = "Du texte"cpt = 0for c in s: if c == "e": cpt = cpt + 1print("trouv ",cpt,"'e'")Parcours des valeurs d'un conteneurAlgo : comptage du nombre de e dans la cha des index d'un conteneur s quence changement de l' l ment la position acc s aux l ments autour de la position (avant/apr s)lst = [11,18,9,12,23,4,17]perdu = []for idx in range(len(lst)): val = lst[idx] if val > 15: (val) lst[idx] = 15print("modif:",lst,"-modif:",perdu)Alg o: bornage des valeurs sup rieures 15,m morisation des valeurs perdues. attention aux boucles sans fin !initialisations avant la bouclevariable de boucle, affectation g r e par l'instruction forOp rations sur cha nesvaleurs formaterdirectives de formatages = input("Directives:") input retourne toujours une cha ne, la convertir vers le type d sir (cf. encadr Conversions au recto).
6 Range(5) 0 1 2 3 4range(2,12,3) 2 5 8 11range(3,8) 3 4 5 6 7range(20,5,-5) 20 15 10range(len(s q)) s quence des index des valeurs dans s q range fournit une s quence immutable d'entiers construits au besoinrange([d but,] fin [,pas])f = open(" ","w",encoding="utf8")stockage de donn es sur disque, et relecturemode d'ouverture 'r' lecture (read) 'w' criture (write) 'a' ajout (append) ..'+' 'x' 'b' 't'encodage des caract res pour lesfichiers textes:utf8 ascii latin1 ..nom du fichiersur le disque(+ )variable fichier pourles op ("coucou") (list de lignes)en critureen ([n]) caract res suivantssi n non sp cifi , lit jusqu' la fin ! ([n]) list lignes () ligne suivantewith open(..) as f: for ligne in f : # traitement de lignecf modules os, et () ne pas oublier de refermer le fichier apr s son utilisation !Tr s courant : ouverture en bloc gard (fermeture automatique) et boucle de lecture des lignes d'un fichier finition de fonctiondef fct(x,y,z): """documentation""" # bloc instructions, calcul de res, etc.
7 Return resnom de la fonction (identificateur)valeur r sultat de l'appel, si pas de r sultat calcul retourner : return None les param tres et toutes les variables de ce bloc n'existent que dans le bloc et pendant l'appel la fonction (penser bo te noire )param tres nomm sAppel de fonctionr = fct(3,i+2,2*i)Op rations g n riques sur conteneurs lit cha ne vide si fin de fichierlen(c) nb d' l mentsmin(c) max(c) sum(c)sorted(c) list copie tri eval in c bool en, op rateur in de test de pr sence (not in d'absence)enumerate(c) it rateur sur (index, valeur)zip(c1, ) it rateur sur tuples contenant les l ments de m me index des ciall(c) True si tout l ment de c valu vrai, sinon Falseany(c) True si au moins un l ment de c valu vrai, sinon ()supprime le contenu des dictionnaires, ensembles, listes modification de la liste (val)ajout d'un l ment la (seq) ajout d'une s quence d' l ments la (idx,val)insertion d'un l ment une (val)suppression du premier l ment de valeur ([idx]) valeursupp.
8 & retourne l'item d'index idx (d faut le dernier) () ()tri / inversion de la liste sur place"{:+ }".format( ) '+ '"{1:>10s}".format(8,"toto") ' toto'"{x!r}".format(x="L'ame") '"L\'ame"' d but d faut 0, fin non compris dans la s quence, pas sign et d faut 1 Conversion : s (texte lisible) ou r (repr sentation litt rale)< > ^ =0 au d but pour remplissage avec des 0entiers : b binaire, c caract re, d d cimal (d faut), o octal, x ou X : e ou E exponentielle, f ou F point fixe, g ou G appropri (d faut), cha ne : s ..% pourcentage Formatage cision~ + - espaceOp rations sur dictionnairesOp rateurs : | union (caract re barre verticale) & intersection - ^ diff rence/diff. sym trique < <= > >= relations d'inclusionLes op rateurs existent aussi sous forme de m (d2)mise jour/ajout des couplesNote: Pour dictionnaires et ensembles, ces op rations travaillent sur les cl s. Sp cifique aux conteneurs de s quences ordonn es (listes, tuples, cha nes, )reversed(c) it rateur invers c*5 duplicationc+c2 concat (val) (val) nb d'occurencesd[cl ]=valeurd[cl ] () () ()del d[cl ] vues it rables sur lescl s / valeurs / (cl [,d faut]) () (cl ,valeur) (cl [,d faut]) (cl [,d faut]) (s2) () (cl ) (cl ) (cl ) ()Contr le de bouclebreak sortie imm diatecontinueit ration suivante bloc else en sortie normale de simultan index et valeurs de la s quence :for idx,val in enumerate(lst): bonne habitude : ne pas modifier la variable de boucleAvanc : def fct(x,y,z,*args,a=3,b=5,**kwargs):*args nb variables d'arguments positionnels ( tuple), valeurs par d faut, **kwargs nb variable d'arguments nomm s ( dict)une valeur d'argument par param trestockage/utilisation de la valeur de retourAlgo.
9 () criture du () positionlecture/ criture progressent s quentiellement dans le fichier, modifiable avec (position[,origine]) ([taille])retaillageFormatageAvanc : *s quence ** (prefix[,d but[,fin]]) (suffix[,d but[,fin]]) ([caract res]) (sub[,d but[,fin]]) (sep) (avant,sep,apr s) (sub[,d but[,fin]]) (sub[,d but[,fin]]) () tests sur les cat gories de caract res (ex. ()) () () () () () () ([larg,rempl]) ([larg,rempl]) ([larg,rempl]) ([larg]) (codage) ([sep]) (s q)? (c) copie superficielle du (c) copie en profondeur du conteneur c'est l'utilisation du nom de la fonction avec les parenth ses qui fait l'appelfct()fctfct par d faut mode texte t (lit/ crit str), mode binaire b possible (lit/ crit bytes). Convertir de/vers le type d sir !FichiersOp rations sur ensemblesOp rations sur listesInstruction boucle it rativeS quences d'entiers