Variables : notion Une variable permet de stocker/manipuler une donnée dans un programme avec un nom explicite Caractériser par son type (entier, flottant,...) Python utilise des espaces de noms / namespace pour stocker les données. Schématiquement : nom explicite stocké dans une table de symbole associé à un identifiant la valeur est stockée dans la table de valeurs dans un bloc de mémoire de n bits
Variables : mémoire Nom, Type, Adresse. Donnée numérique La table des noms est composée de deux parties : La table des symboles. La table des valeurs.
Variables : règle de déclaration Règles syntaxiques : Une variable en python ne peut être composée que de majuscule, de minuscules, de chiffres et du symbole tiret bas. Le nom de la variable ne peut pas commencer par un chiffre. Une variable sous Python ne peut pas porter les noms de la suite de mots clés ci-dessous : and, as, assert, break, class, continue, def, del, elif, else, except, False, finally, for, from, global, if, import, in is, lambda, None, nonlocal, not, or, pass, raise, return, True, try, while, with, yield.
Variables : affectation L’affectation: Créer et mémoriser un nom de variable Attribuer un type Créer et mémoriser une valeur Etablir un lien ; le nom de la variable pointe sur un emplacement de la mémoire contenant la valeur ? ?
Variables : quelques fonctions Exemple : >>> valeur = Python évalue 10+1 et détermine le type du résultat Le résultat est stocké en mémoire à une certaine adresse Python inscrit le nom “valeur” dans la table des symboles en précisant le type et l'adresse mémoire de la valeur (si “valeur” existe alors on modifie simplement type et l'adresse mémoire) type(valeur) : affiche le type de la variable id(valeur) : affiche l'adresse mémoire print(valeur) : affiche la valeur
Variables : expression Expression : suite d'opérations utilisant des constantes, variables, fonctions... Evaluation : chaque variable ou appelle de fonction est remplacée par sa valeur
Variables : expression Evaluation possible qu'avec des types compatibles sur une opération Affectation multiple : spécifique à Python Evaluation des différentes expressions de la gauche vers la droite PUIS affectation dans les variables
Variables : expression Affectation multiple : spécifique à Python Evaluation des différentes expressions de la gauche vers la droite PUIS affectation dans les variables
Variables : opérations Opérations dépendent du type des variables Sur les nombres, on a : Addition +, soustraction –, multiplication *, division /, mise à la puissance ** Division entière //, modulo (reste de la division entière) % Priorité PEMDAS, (),**,*,/,+,-
Variables : exercices
Types sous python Type() Des nombres Les entiers (int) Les réels à virgule flottante (float) Les complexes (complex) Les booléens (bool)
Types sous python Des séquences Les chaînes de caractères (str) Les listes (list) Les listes immuables ou n-uplet (tuple) Les listes associatives ou dictionnaire (dict) Les listes non ordonnées (set)
Types : nombres Conversion possible int() float() complex() Binaire décimal : 0b Hexadécimal : 0x Opérations: +, -, *, /, **, //, abs, % Priorité: P E MD AS
Types : chaînes de caractères PDF : fr en v · d · m frenvdm ABCDEF 000NULSOHSTXETXEOTENQACKBELBSHTLFVTFFCRSOSI 001DLEDC1DC2DC3DC4NAKSYNETBCANEMSUBESCFSGSRSUS 002SP!"#$%&'()*+,-./ :;<=>? 005PQRSTUVWXYZ[\]^_ 006`abcdefghijklmno 007pqrstuvwxyz{|}~DEL Code ASCII
Types : chaînes de caractères Opérations sur les chaînes \n provoque un retour à la ligne (retour chariot) ; \t provoque une tabulation ; \a provoque un bip système ; \" et \’ permettent d’écrire un guillemet sans ouvrir ou fermer une chaîne de caractère ; \\ permet d’écrire un antislash.
Types : chaînes de caractères Opérations sur les chaînes Indice et extraction [1] La longueur len() La concaténation + La répétition *
Types : chaînes de caractères Une chaîne de caractère : liste homogène contenant que des caractères Affectation : Opérations : Slicing :
Types : listes Une liste permet de stocker des éléments dans un ordre donné Les éléments de la liste peuvent être de type différent (liste hétérogène) Les boucle FOR boucle sur les éléments d'une liste L = [ ] #liste vide L = [1, 6, False, print, [True,2]] #une liste comprend : 2 entiers, puis un booleen, puis une fonction, puis une liste
Types : listes Opérations Addition : permet de concaténer les listes len(tous) permet de connaître la longueur de la liste
Types : listes Opérations Accès aux éléments de la liste : la liste est numérotée à partir de 0 tous[0] = 0 Slicing : tous[1:3] permet d'obtenir les éléments de la position 2 à 3 Ici renvoie [1, 2] On peut accéder au dernier élément en faisant tous[-1] On peut modifier le pas d'extraction tous[ini : fin+1 : pas] Exemple : tous[0 : 8 : 2] envoie une liste contenant les éléments de la position 0, 2, 4, 6 et surtout pas 8
Types : listes Opérations Multiplication entier n avec une liste : Concaténation de n fois la liste
Types : listes Opérations Pour aller plus loin : Affectation par tranche (d'une liste existante) Ajouter un élément : Supprimer un élément : pop ( i ) : supprimer l'élément de la position i et renvoie sa valeur remove (val) : supprimer la premiere valeur val si elle existe Insertion : insert(pos, val) Complexité des opérations en mémoire !
Types : listes Copie d'une liste – Mémoire L2 = L pour des listes, L2 est un alias de L c'est à dire qu'ils pointent vers la même zone mémoire Quand on modifie L2, on modifie L aussi (et réciproquement !) Pour copier dans une nouvelle zone mémoire : M = L[:] ou M = L.copy() ATTENTION Une liste en argument d'une fonction est passé par référence, donc toujours de manière globale !
Types : listes Séquence modifiable Méthodes sur les listes del() sort() append() Alias Copy() liste[:]
Types avances : tuples Séquence non modifiable Types avancés : dictionnaires Séquence modifiable Méthodes sur les listes remove() key()
Structure : conditions Expressions booléennes Renvoie 0 ou 1 (vrai ou faux) Comparaison Opérateurs booléens Ordre de priorité
Structure : tantque Boucle tant que Tant que la condition est vraie, on exécute les instructions Souvent besoin d'un compteur sur lequel on réalise le test
Structure : tantque Exemple : Factorielle Définition Une première version pour n supérieur ou égal à 1 Difficultés : initialisation des variables, critères d'arrêt Instruction break, else
Structure : Si…alors…sinon Instructions conditionnelles : Si la condition est vraie Alors on exécute les instructions Sinon Si une autre condition est vraie Alors on exécute...Sinon on exécute... Structure générale Où est remplacé par une expression booléenne et par une séquence d'instructions elif et else ne sont pas obligatoire Utilisation de elif mieux que plein de if pour détecter des cas disjoints
Structure : Si…alors…sinon Exemple factorielle : Une deuxième implémentation prenant en compte n=0
Structure bouclée Boucle For Pour chaque élément i dans la liste, exécuter les instructions La variable peut être utilisée dans la séquence d'instructions Commande range(début, fin, pas) Permet de créer une séquence d'éléments : Commençant à début Finissant à fin – 1 Par pas de pas Exemple : range(3, 11, 2) → [3, 5, 7, 9] Difficulté du FOR ne pas se planter dans RANGE !
Structure bouclée Exemple : factorielle Factorielle peut aussi être calculé directement avec un FOR
Structure : try… except Programmation AVANCEE (pour la culture) : En cas de problème, Python renvoie un message d'erreur avec un type d'erreur On peut intercepter cette erreur afin de la traiter, pour éviter de faire planter le programme
Structure : exercices
fonctions Une fonction est un algorithme prenant des arguments en entrées, puis réalise une suite d'instructions et renvoie éventuellement un résultat Exemple Puis dans la console :
Fonctions De manières générales Il faut mettre les 2 points : Et penser à l’indentation Typographie : Commence par “def” pour définir la fonction Puis le nom de la fonction suivie des différents arguments, puis : Chaine de caractère optionnelle permettant de décrire ce que fait la fonction. help(nom_fonction) renvoie cette chaine Suite des instructions agissant sur les arguments généralement La fin de la fonction est souvent terminée par return val
Fonctions Return : La fonction se termine dès qu'elle rencontre ce mot clé Sans return, la fonction ne renvoie aucun résultat, on parle de procédure
Fonctions :variables locales Fonctions : Les variables déclarées dans une fonction sont des variables locales en général Lors de l'appel d'une fonction, Python crée une table des symboles/valeurs locales à la fonction Lors de l'utilisation d'une variable dans une fonction, Python : Regarde dans la table des symboles locales si la variable existe Sinon regarde dans la table globale de Python Sinon il envoie un message d'erreur Attention : si la fonction 1 est appelé par une fonction 2, pour les instructions de la fonction 1, Python regarde dans la table locale de la fonction 1 puis la table globale.
Fonctions Exemples:
Fonctions : variables locales Pour utiliser une variable de la table globale, on peut utiliser le mot clé global Exemples : MAIS C'EST VRAIMENT PAS BIEN DE FAIRE CA !
Fonction : conclusions Prendre des notations différentes pour les variables :