Bonjour
Ceci est le premier volet d’une série de cours approfondis sur Python. Il s’agit ici de comprendre Python à un niveau plus avancé.
Alors, de quoi parle ce cours? Eh bien, nous allons parler des variables et de la mémoire en Python.
J'espère donc que cela vous permettra d’acquérir une expertise sur ce sujet.
Comme je vous l’ai précisé, cette formation est un apprentissage d'un niveau intermédiaire voire avancé de Python, vous devriez donc déjà connaître les fondamentaux du langage, mais seulement au niveau débutant, vous n'avez pas besoin de tout savoir. Vous devez connaître les types de données de base comme les chaînes de caractères (strings), les entiers (integers), les floats, les tuples, les listes, les dictionnaires... Nous utiliserons dans ce cours les structures conditionnelles if, elif. Il est donc important d’en connaître l’essentiel. Nous allons également faire des boucles. Donc avoir une première approche sur les boucles for et les boucles while est nécessaire. Et il peut être utile de savoir écrire de simples classes.
Vous devez également être capable d’écrire et de lancer des programmes simples en utilisant au choix :
- la ligne de commande
- un IDE comme PyCharm
- ou Jupyter Notebook
Je ne vais pas de mon côté revenir sur les bases de Python dans cette formation. Je vais aller directement dans le vive du sujet car l’idée ici est d’avoir une approche sur l’aspect approfondi de Python.
Cette formation fait partie d’une série de cours que je compte réaliser sur ce langage. Et toutes seront des notions approfondies de Python. J’espère donc vous retrouver également dans d’autres formation.
Donc pour ce premier volet, nous aborderons les variables et la mémoire. Nous allons parler de mémoire et de la gestion de la mémoire pour les variables. Nous examinerons dans un premier temps ce que sont réellement les variables. Nous avons tendance à considérer les variables comme des noms auxquels nous pouvons attribuer des valeurs, à partir desquels nous pouvons lire des valeurs, mais c’est plus que ça. Nous allons donc étudier les variables en ayant une approche références mémoire.
Nous aborderons ensuite la gestion de la mémoire et en particulier quelque chose appelé le comptage de références et une autre chose que l’on appelle le garbage collection. Nous verrons les différences entre les deux. Et bien entendu vous comprendrez très vite pour quelles raisons il est important de maîtriser ces concepts.
Ensuite, nous étudierons le typage dynamique par rapport au typage statique. Python est un langage typé dynamiquement par opposition à d'autres langages comme Java, Swift ou C++ qui sont des langages de type statique.
Après cela, nous examinerons la mutabilité et l'immuabilité. Vous connaissez peut être déjà ces concepts. Nous les définirons et verrons quel est leur impact sur notre code.
Nous verrons également ce que sont les références partagées. C'est la façon dont les variables partagent la même zone en mémoire, le même objet. Nous allons donc voir ce que cela implique pour les variables mais aussi pour les fonctions. Que se passe-t-il lorsque nous appelons des fonctions et leur passons des variables ? Que se passe-t-il en coulisses ?
Aussi nous aborderons l'égalité des variables. Nous avons tendance à penser que l'égalité des variables ne concerne que l’égalité des valeurs, mais il peut aussi y avoir d'autres formes d’égalité qui ne concernent pas les valeurs. Nous allons donc voir l'égalité des variables et les références mémoire.
Nous verrons également le fait qu'en Python, tout est un objet…les entiers, les chaînes de caractères, les listes… sont des objets mais tout le reste est aussi un objet. Les fonctions sont des objets. Les classes sont évidemment des objets lorsque vous les instanciez, mais les classes elles-mêmes sont également des objets. Nous allons donc jeter un coup d’œil à ce concept en Python.
Enfin, nous parlerons des optimisations de la mémoire Python. Python fait certaines choses dans un but d’optimisation. Il essaie d'optimiser l'utilisation de la mémoire et d'optimiser la vitesse. Et pour cela, il procède à des internements. Nous verrons en quoi cela consiste.
Le programme est donc très riche. Nous allons entrer dans beaucoup de détails. Ce n’est donc pas un cours d’introduction de Python. Assurez-vous que vous connaissez les fondamentaux de Python.
Autre point important, il est nécessaire d’utiliser dans ce cours une version de Python 3.6 ou supérieure à 3.6. J’utilise pour ma part Python 3.6 tout au long de cette formation. Je vais également utiliser Jupyter Notebook pour que ce soit simple à suivre. Et pour chaque chapitre, je vous mets à disposition ces ressources qui sont téléchargeables.
J’espère vous retrouver très rapidement.
Radia A.