tag>cours dev python}}
====== Python: Portée des variables ======
Un *bloc de code* est un ensemble ... e ''%%x = 1%%'', on dit que vous définissez votre variable x. Ccette notion de définition veut dire qu'une variable référence un objet. Nous avons plusieurs sy... sés de manière interchangeable. La **portée d'une variable** détermine de quel endroit du code on peut
sque nous avons parlé de la notion de **portée de variable**, nous avons expliqué que nous pouvions avoir une variable d'un nom donné, par exemple une variable *x*, qui coexiste dans le même fichier à l'intérieur d... iqué que les modules isolaient complètement leurs variables.
Ce **mécanisme d'isolation des variables
rtée ======
Précédemment la notion de portée de variable et notamment la règle LEGB qui permet de trouver les variables que l'on référence ont été abordées. Une variable définie dans une fonction est locale à cette... On présente ici **comment modifier la portée des variables avec les instructions global et nonlocal**
s avons parlé des chaînes de caractères, je vous avais dit qu'il était très important de maîtriser vot... rêmement simple puisque c'est l'objet fichier qui va se charger d'encoder et de décoder les chaînes de... built-in open. Créons un fichier donc je fais une variable f qui est égale à open et je vais ouvrir un fichier, alors je vais dire que mon fichier est dan
o.
Commençons par créer un fichier `spam.py` qui va uniquement contenir `x = 1`. Et je vais créer un deuxième fichier, `egg.py`, qui contient uniquement ... ces modules, vous pouvez utiliser **l'instruction vars** qui est équivalente à l'**instruction globals** dans ce contexte ; et si vous voulez voir l'espac
mple qui suit, on l'appelle simplement *f*, et on va lui passer des arguments ( on peut lui passer un ... ère '**:**' après les arguments signifie que l'on va introduire un bloc de code, ce sera le bloc de co... tient une seule instruction, appelant *print* qui va simplement afficher ses trois arguments.
Lorsque la définition est évalué par python, un objet fonction est créé et le n
>>> a = 3
</code>
À gauche, j'ai l'espace de mes variables, que l'on appellera **espace de nommage** ... bjets** créés dans mon programme. Donc **a = 3**, va faire les opérations suivantes:
* Création de l'entier 3 dans l’espace objet (allocation de l’espa... mps importants, un **compteur de références** qui va représenter le nombre de variables qui référencen
fonction qui prend deux arguments a et b, et qui va juste faire un print de a divisé par b. Absolumen... ons que les divisions par 0 sont impossibles ; je vais donc avoir une erreur d'exécution. Regardons ce... e.
Je vois en effet une erreur d'exécution et on va prendre quelques instants pour la détailler. La d... n'est pas une fatalité, je peux la capturer et on va regarder comment capturer cette exception.
Dans
les séquences sont numérotées à partir de 0. s[9] va me permettre d'accéder au dernier élément de ma s... on **built-in len**. Donc je fais un len(s) et ça va me retourner que j'ai effectivement dix éléments ... isque je peux faire : est-ce que 'egg' in s et ça va me retourner vrai, effectivement, la chaîne de ca... in s, qui est le test de non appartenance, et qui va me retourner faux, puisque, effectivement, 'egg'
ça crée deux chaînes de caractères totalement équivalentes. Maintenant, je vais affecter ma chaîne de caractères à une variable pour pouvoir la manipuler. Les chaînes de caractère... istent sur les chaînes de caractères. Python a l'avantage d'être un langage auto-documenté, ça veut di
is que vous appellerez votre classe, votre classe va créer de nouvelles instances. Et vous allez avoir... et la classe**. Ce qui veut dire que l'**instance va pouvoir hériter, observer tous les attributs qui ... "
attr_phrase = 'Je fais un MOOC Python.' # variable de classe partagée par toutes les instances... it un attribut qui s'appelle "attr_phrase" et qui va référencer une chaîne de caractères qui vaut 'Je
**. Regardons un exemple pour illustrer cela.
Je vais utiliser l'instruction *timeit*, qui me permet ... uler le temps d'exécution d'une expression, et je vais regarder si la chaîne de caractères 'x' est dans range de 100. En fait, range de 100 va produire des entiers allant de 0 à 99, x n'étant pas dedans, je vais être obligé de parcourir chaque élément pour vé
change en cours d'exécution, la fonction de hash va faire un calcul qui va être différent et par conséquent, votre table de hash va devenir inconsistante. C'est pourquoi en Python a... la notation accolades. Regardons cet exemple. Je vais écrire *age = {}*et j'ai bien créé un objet qui
odules**, c'est-à-dire les différentes étapes que va suivre l'interpréteur Python du moment où on tape...
# Après interprétation de cette instruction, une variable
# os est disponible elle référence un objet... ction ''import'', ici ''os'' a deux rôles:
- Il va définir le nom du fichier qui va être cherché sur le disque dur, qui va s'appeler ''os.py'' ( la plup
ons
# de la fonction sum
# ...
</code>
Les variables *a* et *b* sont désignés **paramètres de l... le la fonction, par exemple avec *sum(x, y)*, les variables *x* et *y* représentent ce qu'on appelle l... l):
""" retourne un dictionnaire contenant les valeurs passées
en paramètre """
return {'nom'... 'est pas passé spécifié, on souhaite définir une valeur par défaut comme un point d'interrogation.
<