Indexation des séquences Types de base Mémento Bases Python 3 ©2012-2013 - Laur
Indexation des séquences Types de base Mémento Bases Python 3 ©2012-2013 - Laurent Pointal Licence Creative Commons Paternité 2 Documentation officielle Python sur http://docs.python.org/py3k 0 783 -192 int 9.23 -1.7e-6 0.0 float True False bool "Un\nDeux" 'L\'âme' str """X\tY\tZ 1\t2\t3""" 10-6 tabulation retour à la ligne multiligne Types Conteneurs list [1,5,9] ["x",11,8.9] ["mot"] [] tuple (1,5,9) 11,"y",7.4 ("mot",) () dict {1:"un",3:"trois",2:"deux",3.14:"π"} {"clé":"valeur"} set {} {1,9,3,0} ◾ séquences ordonnées, accès index rapide, valeurs répétables set() ◾ sans ordre a priori, clé unique, accès par clé rapide ; clés = types de base ou tuples {"clé1","clé2"} non modifiable Affectation de variables x = 1.2+8+sin(0) y,z,r = 9.2,-7.6,"bad" valeur ou expression de calcul nom de variable (identificateur) a‥zA‥Z_ suivi de a‥zA‥Z_0‥9 ◽ accents possibles mais à éviter ◽ mots clés du langage interdits ◽ distinction casse min/MAJ expression juste avec des virgules non modifiable, séquence ordonnée de caractères dictionnaire ensemble entier, flottant, booléen, chaîne conteneur de plusieurs valeurs (ici un tuple) noms de variables Identificateurs ☺ a toto x7 y_max BigOne ☹ 8y and x+=3 x-=2 incrémentation décrémentation Conversions pour les listes, tuples, chaînes de caractères,… int("15") float("-11.24e8") bool str(78.3) repr("Texte") on peut spécifier la base du nombre entier en 2nd paramètre int(15.56) troncature de la partie décimale (round(15.56) pour entier arrondi) et pour avoir la représentation littérale type(expression) utiliser des comparateurs (avec ==, !=, <, >, …), résultat logique booléen voir au verso le formatage de chaînes, qui permet un contrôle fin ":".join(['toto','12','pswd']) 'toto:12:pswd' chaîne de jointure séquence de chaînes "des mots espacés".split() ['des','mots','espacés'] "1,4,8,2".split(",") ['1','4','8','2'] chaîne de séparation dict([(3,"trois"),(1,"un")]) {1:'un',3:'trois'} list("abc") ['a','b','c'] utilise chaque élément de la séquence en paramètre set(["un","deux"]) {'un','deux'} utilise chaque élément de la séquence en paramètre lst=[11, 67, "abc", 3.14, 42, 1968] lst[1]→67 lst[-2]→42 0 1 2 3 5 4 -6 -5 -4 -3 -1 -2 accès individuel aux éléments par [index] index positif index négatif 0 1 2 3 5 4 6 -6 -5 -4 -3 -1 -2 tranche négative tranche positive accès à des sous-séquences par [tranche début:tranche fin:pas] len(lst) 6 lst[1:3]→[67,"abc"] lst[::2]→[11,"abc",42] lst[-3:-1]→[3.14,42] lst[:3]→[11,67,"abc"] lst[:-1]→[11,67,"abc",3.14,42] lst[4:]→[42,1968] lst[1:-1]→[67,"abc",3.14,42] lst[:]→[11,67,"abc",3.14,42,1968] Indication de tranche manquante → à partir du début / jusqu'à la fin. Instruction conditionnelle if x==42: # bloc si expression logique x==42 vraie print("vérité vraie") elif x>0: # bloc sinon si expression logique x>0 vraie print("positivons") elif bTermine: # bloc sinon si variable booléenne bTermine vraie print("ah, c'est fini") else: # bloc sinon des autres cas restants print("ça veut pas") Logique booléenne Blocs d'instructions instruction parente: bloc d'instructions 1… ⁝ instruction parente: bloc d'instructions 2… ⁝ instruction suivante après bloc 1 indentation ! Comparateurs: < > <= >= == != ≠ = ≥ ≤ a and b a or b not a et logique ou logique non logique l'un ou l'autre ou les deux les deux en même temps if expression logique: bloc d'instructions bloc d'instructions exécuté uniquement si une condition est vraie True False valeur constante vrai valeur constante faux combinable avec des sinon si, sinon si... et un seul sinon final, exemple : lst[-1]→1968 lst[0]→11 le dernier le premier x=None valeur constante « non défini » Maths Opérateurs: + - * / // % ** × ÷ ÷ entière reste ÷ ab from math import sin,pi… ' échappé abs(-3.2)→3.2 round(3.57,1)→3.6 ☝ nombres flottants… valeurs approchées ! sin(pi/4)→0.707… cos(2*pi/3)→-0.4999… sqrt(81)→9.0 √ log(e**2)→2.0 angles en radians acos(0.5)→1.0471… etc. (cf doc) (1+5.3)*2→12.6 pour noms de variables, fonctions, modules, classes… Mémento v1.2.2 Sur les séquences modifiables, utilisable pour suppression del lst[3:5] et modification par affectation lst[1:4]=['hop',9] str en tant que séquence ordonnée de caractères couples clé/valeur "modele{} {} {}".format(x,y,r) "{sélection:formatage!conversion}" ◽ Sélection : 2 x 0.nom 4[clé] 0[2] str Affichage / Saisie print("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=f (print vers fichier, défaut sortie standard) éléments à afficher : valeurs littérales, variables, expressions boucle sur dict/set = boucle sur séquence des clés Instruction boucle conditionnelle bloc d'instructions exécuté tant que la condition est vraie while expression logique: bloc d'instructions s = 0 i = 1 while i <= 100: # bloc exécuté tant que i ≤ 100 s = s + i**2 i = i + 1 print("somme:",s) initialisations avant la boucle condition avec au moins une valeur variable (ici i) s= ∑ i=1 i=100 i 2 ☝ faire varier la variable de condition ! Instruction boucle itérative bloc d'instructions exécuté pour chaque élément d'un conteneur ou d'un itérateur for variable in séquence: bloc d'instructions s = "Du texte" cpt = 0 for c in s: if c == "e": cpt = cpt + 1 print("trouvé",cpt,"'e'") Parcours des valeurs de la séquence Comptage du nombre de e dans la chaîne. Parcours des index de la 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: perdu.append(val) lst[idx] = 15 print("modif:",lst,"-modif:",perdu) Bornage des valeurs supérieures à 15, mémorisation des valeurs perdues. ☝ attention aux boucles sans fin ! initialisations avant la boucle variable de boucle, valeur gérée par l'instruction for utilisation des tranches pour parcourir un sous-ensemble de la séquence résultat de calcul après la boucle Formatage de chaînes valeurs à formater directives de formatage Génération de séquences d'entiers Fichiers s = input("Directives:") ☝ input retourne toujours une chaîne, la convertir vers le type désiré (cf encadré Conversions au recto). très utilisé pour les boucles itératives for range retourne un « générateur », faire une conversion en liste pour voir les valeurs, par exemple: print(list(range(4))) range(5) 0 1 2 3 4 range(3,8) 3 4 5 6 7 range(2,12,3) 2 5 8 11 range([début,] fin [,pas]) f = open("fic.txt","w",encoding="utf8") stockage de données sur disque, et relecture mode d'ouverture ◽ 'r' lecture (read) ◽ 'w' écriture (write) ◽ 'a' ajout (append)… encodage des caractères pour les fichiers textes: utf8 ascii latin1 … nom du fichier sur le disque (+chemin…) variable fichier pour les opérations f.write("coucou") en écriture ☝ fichier texte → lecture / écriture de chaînes uniquement, convertir de/vers le type désiré en lecture s = f.read(4) for ligne in f : bloc de traitement de la ligne cf fonctions des modules os et os.path si nb de caractères pas précisé, lit tout le fichier s = f.readline() lecture ligne suivante f.close() ☝ ne pas oublier de refermer le fichier après son utilisation ! Fermeture automatique Pythonesque : with open(…) as f: très courant : boucle itérative de lecture des lignes d'un fichier texte : Définition de fonction def nomfct(p_x,p_y,p_z): """documentation""" # bloc instructions, calcul de res, etc. return res nom 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 (« boite noire ») paramètres nommés Appel de fonction r = nomfct(3,i+2,2*i) un argument par paramètre récupération du résultat retourné (si nécessaire) Opérations sur conteneurs chaîne vide si fin de fichier len(c) min(c) max(c) sum(c) sorted(c) reversed(c) ☝ modification de la liste originale lst.append(item) lst.pop(idx) lst.sort() lst.reverse() "{:+2.3f}".format(45.7273) →'+45.727' "{1:>10s}".format(8,"toto") →' toto' "{!r}".format("L'ame") →'"L\'ame"' non compris par défaut 0 ◽ Conversion : s (texte lisible) ou r (représentation littérale) < > ^ = 0 au début pour remplissage avec des 0 entiers: b binaire, c caractère, d décimal (défaut), o octal, x ou X hexa… flottant: e ou E exponentielle, f ou F point fixe, g ou G approprié (défaut), % pourcentage chaîne : s … ◽ Formatage : car-rempl. alignement signe larg.mini.précision~larg.max type + - espace c.index(val) c.count(val) → nb d'éléments → copie triée → itérateur inversé → position → nb d'occurences lst.extend(seq) ajout d'un élément à la fin ajout d'une séquence d'éléments à la fin lst.insert(idx,val) insertion d'un élément à une position lst.remove(val) suppression d'un élément à partir de sa valeur suppression de l'élément à une position et retour de la valeur tri / inversion de la liste sur place Opérations sur dictionnaires Opérations sur ensembles Opérateurs: | → union (caractère barre verticale) & → intersection - ^ → différence/diff symétrique < <= > >= → relations d'inclusion d.update(d2) mise à jour/ajout des couples Note: Pour dictionnaires et ensembles, ces opérations travaillent sur les clés. Spécifique aux conteneurs de séquences (listes, tuples, chaînes) : val in c → booléen, opérateur in de test de présence (not in d'absence) Opérations sur listes d[clé]→valeur del d[clé] d[clé]=valeur d.keys() d.clear() d.items() d.values() vues sur les clés, valeurs, couples Exemples d.pop(clé) s.update(s2) s.add(clé) s.remove(clé) s.discard(clé) c*5 → duplication c+c2 → concaténation Contrôle de boucle break continue sortie immédiate itération suivante Parcours simultané index et valeur de la séquence: for idx,val in enumerate(lst): enumerate(c)→ itérateur sur (index,valeur) ©2010…2012 - Laurent Pointal Abrégé v1.3.1 Licence Creative Commons Paternité 2 Abrégé Dense Python 3.2 Abrégé nécessairement incomplet pour tenir sur une feuille, voir sur http://docs.python.org/py3k. Symbolique de l'Abrégé ☄ instructions optionnelles, ☈ instruction répétables, ⚷ valeur immutable (non modifiable), ⇢ conteneur ordonné (⇝ non ordonné), constante, variable, uploads/Litterature/ physiaue.pdf
Documents similaires
-
18
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Dec 20, 2022
- Catégorie Literature / Litté...
- Langue French
- Taille du fichier 1.3003MB