Chapitre 1.1 - Variables
I. Les affectationsâïž
Exemple d'affectation
Dans la console saisir :
Affectation
Vous venez de faire deux choses en mĂȘme temps :
- Vous avez défini une variable que vous avez nommé
a
- Vous avez affectĂ© la valeur 1 Ă
a
Exemple d'affichage
Dans la console saisir :
Python affiche la valeur 2 mais la variable a
n'a pas été modifiée. Vérifiez le en ajoutant dans la console précédente :
a
n'a pas été modifié.
Ajoutons 1 Ă notre variable
Dans la console saisir :
Il ne s'affiche rien, c'est normal, nous avons juste fait une affectation.
Ajouter dans la console précédente :
La variable a
a bien été modifiée.
Des chaĂźnes de caractĂšres
Dans la console saisir :
Concaténation
Il s'affiche "Hello World".
đ Vous avez crĂ©Ă© 2 variables, a
et b
đ Vous avez en mĂȘme temps affectĂ© des valeurs Ă ces deux variables, puis vous avez affichĂ© a + b
qui n'est pas une addition, car a
et b
ne sont pas des nombres.
đ On dit qu'on a rĂ©alisĂ© une concatĂ©nation.
II. DĂ©rouler un codeâïž
Plus haut, nous avons exposé comment affecter une valeur une variable, et abordé la notion du type. Un code comprend généralement plusieurs affectations, de plusieurs variables, et effectue des opérations avec ces variables. Il est exécuté ligne par ligne, mais pas forcément dans l'ordre ou elles sont écrites.
Toutefois, pour le moment, nous n'utiliserons pas encore de boucle ou d'instructions conditionnelles, que nous verrons ensuite. Les lignes sont donc interprétées et exécutées dans l'ordre ou elles sont écrites.
Pour lire un code, ou pour mettre au point un code, il est déterminant de savoir le dérouler à la main, sur une feuille.
Il n'existe pas de format standard pour écrire le déroulé d'un code, mais nous allons adopter une de ces deux présentations que nous utiliserons toute l'année. ci-dessous un petit exemple :
âïž A noter : MĂ©thode 1âïž
A gauche nous indiquons le numéro de ligne, à droite les affectations.
Le numéro de ligne est peu utile dans cet exemple trÚs simple, puisqu'elles sont exécutées dans l'ordre ou elles sont écrites, mais ne perdez pas de vue que ce n'est pas toujours le cas.
âïž A noter : MĂ©thode 2âïž
Le tableau indique l'état de toutes les variables aprÚs exécution de chaque ligne.
III. Exercicesâïž
Pour résoudre ces exercices, il est demandé de dérouler le code sur papier.
Exercice 1
Que contient la variablex
Ă la fin du code ?
Solution
Déroulé du code ligne par ligne
L1 : x = 5
L2 : x = 10
L3 : x = 5
A la fin on a x = 5
Exercice 2
Que s'affiche-t-il ?Solution
Il s'affiche :
4
3
7
Exercice 3
Python | |
---|---|
Donner la valeur finale de toutes les variables Ă la fin du programme
Solution
- PremiÚre présentation possible :
L1 : premier = 4
L2 : deuxieme = 6
L3 : troisieme = 24
L4 : deuxieme = 20
L5 : premier = 48
L6 : troisieme = 960
A la fin on a :
premier = 48
deuxieme = 20
troisieme = 960
- Présentation à privilégier :
ligne | premier | deuxieme | troisieme |
---|---|---|---|
L1 | 4 | ||
L2 | 4 | 6 | |
L3 | 4 | 6 | 24 |
L4 | 4 | 20 | 24 |
L5 | 48 | 20 | 24 |
L6 | 48 | 20 | 960 |
Exercice 4 - sur papier : l'algorithme d'Ă©change
Solution
IV. A retenirâïž
Variable
Une variable est une zone de la mémoire de l'ordinateur dans laquelle une valeur est stockée. Aux yeux du programmeur, cette variable est définie par un nom, alors que pour l'ordinateur, il s'agit en fait d'une adresse, c'est-à -dire d'une zone particuliÚre de la mémoire.
đ En Python on ne "dĂ©clare" pas les variables. Une variable est crĂ©e en lui affectant une valeur.
La fonction print()
permet d'afficher dans la console.
V. DĂ©couverte des typesâïž
Les types
C'est une notion fondamentale en Python (comme dans tout les langages).
Dans les exemples qui précÚdent, nous avons utilisé des nombres entiers a = 1
puis des chaĂźnes de caractĂšres a = "Hello"
Ce ne sont pas les mĂȘmes objets.
Les objets
Qu'est-ce qu'un objet en python ?
Python est un langage orienté objet. Une variable est un mot (ou une simple lettre) qui réfÚre à une valeur. par exemple, si on entre a = 1, la variable a
réfÚre à la valeur 1.
La valeur est ici un entier et le type de la variable a
est un entier.
ConnaĂźtre un type
On peut connaitre le type d'une variable avec la fonction type()
. Essayez en saisissant ceci dans la console :
Vous obtenez : <class 'int'>
La fonction type
nous permet de savoir que le type de la variable est int
ce qui est l'abréviation de integer qui signifie entier en anglais.
Exercice 1
Créer une variable nommée mot
Ă laquelle vous affecterez la valeur "Bonjour" et faites afficher, dans la console, le type de cette variable.
Exercice 2
Créer une variable nommée nombre
Ă laquelle vous affecterez la valeur 5.5
et faites afficher, dans la console, le type de cette variable.
Les types d'objets et les méthodes attachées
Le type d'un objet est important, car chaque objet dispose de méthodes. Les méthodes sont des fonctions spéciales, utilisable spécifiquement avec un type d'objet. Par exemple, les objet de type chaßne de caractÚres (type str
) disposent d'une méthode upper()
qui permet de convertir l'objet en majuscule.
Recopier dans la console :
False
Recopier dans la console :
True
Recopier dans la console :
Résumé
Les valeurs des variables sont stockĂ©es quelque part dans un emplacement non spĂ©cifiĂ© dans la mĂ©moire de lâordinateur sous forme de zĂ©ros et de uns.
Notre programme nâa pas besoin de connaĂźtre lâemplacement exact oĂč une variable est stockĂ©e; il peut simplement sây rĂ©fĂ©rer par son nom.
Ce que le programme doit savoir, câest le type de donnĂ©es stockĂ©es dans la variable. Stocker un entier simple nâest pas la mĂȘme chose que stocker une lettre ou un grand nombre Ă virgule flottante.
MĂȘme sâils sont tous reprĂ©sentĂ©s par des zĂ©ros et des uns, ils ne sont pas interprĂ©tĂ©s de la mĂȘme maniĂšre et, dans de nombreux cas, ils nâoccupent pas la mĂȘme quantitĂ© de mĂ©moire.
Les types de données fondamentaux
Ce sont des types de base implĂ©mentĂ©s directement par le langage qui reprĂ©sentent les unitĂ©s de stockage de base prises en charge de maniĂšre native par la plupart des systĂšmes. Ils peuvent principalement ĂȘtre classĂ©s en:
Type | représente | exemples | remarque |
str | chaĂźne de caractĂšres | 'Aâ â$â 'bonjour' | chaque caractĂšre est codĂ© sur 1 Ă 4 octet. |
int | Entiers numĂ©riques | 0 -1 102 | Ils existent en diffĂ©rentes tailles et peuvent ĂȘtre signĂ©s ou non signĂ©s, selon quâils supportent des valeurs nĂ©gatives ou non. |
float | Nombres à virgule flottante | 3.14 ou 0.01 | Dans de nombreux langages, on peut choisir le niveaux de précision, en fonction du type utilisé pour les trois types à virgule flottante. |
bool | BoolĂ©en | True False | Ne peut reprĂ©senter quâun des deux Ă©tats, vrai ou faux. |
Exécuter le code
Exécuter le code
Ci-dessus, tout s'est bien passĂ©. đ” Mais regardons maintenant :
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
Ă comprendre
đ Le message d'erreur parle de type(s)
En effet les variables prenom_1
, prenom_2
, age_2
sont en quelque sorte des "mots".
On le voit car ils sont entre guillemets. La variable age_1
est un nombre.
Différents types
đ Il existe diffĂ©rents types de valeurs, et on doit toujours veiller Ă ne pas mĂ©langer des choux avec des carottes.
On sait facilement calculer 1 + 3 ou mĂȘme 1 + 3.5 mais on ne sait que faire de 1 + "Albert"
En effet 1 est un nombre entier, et "Albert" est une chaine de caractĂšre.
Albert
et "Albert"
â ïž Bien faire la diffĂ©rence entre Albert
et "Albert"
.
Exécuter ci-dessous
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
Que s'est-il passé ?
Nous obtenons une erreur une erreur NameError
qui nous indique que la variable Albert
n'existe pas (pas définie).
đ Retenez bien :
- Albert désigne une variable.
- "Albert" désigne la chaine de caractÚre "Albert".
L'opérateur ==
==
est utilisĂ© pour dĂ©terminer si deux objets python ont la mĂȘme valeur
â ïž Il ne faut pas confondre =
qui sert Ă faire une affectation avec ==
Exécuter ci-dessous
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
Ăgaux ou identiques ?
- Les nombres 1 et 1.0 sont Ă©gaux car ils ont la mĂȘme valeur
- đ” Les nombres 1 et 1.0 ne sont pas identiques car ils sont de types diffĂ©rents
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
QCM à refaire tant que nécessaire ...
-
Que vaut la variable
somme
aprÚs exécution du code ci-dessous ?- 8
- le code génÚre une erreur de type ValueError
- le code génÚre une erreur de type TypeError
-
'a + b'
-
L'instruction ci-dessous est :
- une affectation
- une expression
- un calcul
- cette instruction ne signifie rien
-
Le code ci-dessous :
- n'affiche rien
- génÚre une erreur
- affiche 3
-
affiche
True
-
L'instruction ci-dessous :
- n'a pas de sens
- est une affectation
- est une expression
- est une égalité
-
L'instruction ci-dessous :
- n'a pas de sens
- est une affectation
- est une expression
- est une égalité
-
Si on exécute le code ci-dessous, il s'affiche :
- SyntaxError
- TypeError
- 4
-
2*2
VI. Les variables : entrĂ©es et sorties au clavierâïž
Un programme sert en gĂ©nĂ©ral Ă quelque chose : il effectue une tĂąche prĂ©cise, rĂ©pĂ©titive, et peut recommencer avec des donnĂ©es d'entrĂ©e diffĂ©rentes. MĂȘme un programme trĂšs simple peut interagir avec l'utilisateur. Par exemple :
input()
Tester le script ci-dessous
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
Tester le script ci-dessous
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
Ce code va afficher le carré de x
et ici x = 16
.
Mais si on veux le carrĂ© d'un autre nombre il faut modifier le programme lui mĂȘme, et ce n'est pas satisfaisant.
Tester le script ci-dessous
Nous allons utiliser input
comme nous l'avons vu.
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
Que s'est-il passé ?
Nous obtenons un message d'erreur :
Nous avons parler des type plus haut, et dans le code ci-dessous nous avons une erreur de type : TypeError
Il est important de commencer Ă apprendre Ă lire les messages d'erreurs. L'interpreteur Python vous donne 2 informations :
Le fichier en cause et le numéro de la ligne ou l'erreur s'est produite suivit de contenu de cette ligne.
Une description de l'erreur composée de trois parties (séparées par :) :
1. TypeError : il s'agit donc d'une erreur de type
2. unsupported operand type(s) for **
or pow() : les types des opérandes de la fonction puissance (pow() ou **
) sont incorrects.
3. 'str' et 'int' : vous avez utilisé la fonction puissance avec x
de type str
et 2
de type int
Conclusion: x**2
n'a pas pu ĂȘtre Ă©valuĂ©, car x
est de type str
alors qu'il aurait dĂ» ĂȘtre de type int
x = input()
permet de lire une valeur au clavier, mais la valeur lue sera toujours de type str
(chaĂźne de caractĂšre)
Saisir des entiers : version 1
Evidement il est possible de saisir aussi des valeurs numériques! Mais il faut pour cela, convertir la valeur saisie dans le type souhaité. Python convertira si c'est possible :
- si vous entrez "bonjour" et demandez de convertir en un nombre, vous aurez une erreur.
- mais si vous entrez 12, il lit "12" et vous pouvez convertir "12" en 12.
Tester :
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
La ligne x = int(x)
convertit la chaine de caractĂšre x
en int
Saisir des entiers et afficher : version 2
Tester :
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
On peut condenser en une seule ligne x = int(input())
Saisir des entiers et afficher : version 3
Tester :
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
Saisir des entiers et afficher : version 4
Tester :
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
Ă vous de jouer
Corriger l'erreur. Votre programme doit afficher l'Ăąge de Monsieur Dupont qui est le double du vĂŽtre.
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
Que s'est-il passé ?
Si age
est de type chaine de caractĂšres, il est possible de faire 2 * age
. Cela revient en fait Ă faire age + age
.
On dit qu'on a fait une concaténation des chaines de caractÚres. Cela revient tout simplement à les juxtaposer.
Solution
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
VII. Les opĂ©rateursâïž
Avec les nombresâïž
Tester les opérateurs sur les nombres
Le type d'un objet est important, car chaque objet dispose de méthodes. Les méthodes sont des fonctions spéciales, utilisable spécifiquement avec un type d'objet. Par exemple, les objet de type chaßne de caractÚres (type str
) disposent d'une méthode upper()
qui permet de convertir l'objet en majuscule.
Recopier dans la console :
Pré-requis : division euclidienne
Rappelons ce qu'est une division euclidienne
Opérations avec des nombres
Nom | Symbole mathématique | syntaxe python | Exemple |
Addition | + | + | 3 + 2 = 5 |
Soustraction | - | - | 3 - 2 = 1 |
Multiplication | \(\times\) | * | 3 * 2 = 6 |
Division | / | / | 7 / 2 = 3.5 |
Division entiĂšre (quotient) | // | 7 // 2 = 3 | |
Modulo (reste de la division entiĂšre) | % | 7 % 2 = 1 |
A savoir
Prenez bien note des opérateurs **, % et //, qui sont d'usage trÚs fréquent.
-
\(3\ \%\ 2\) se lit \(3\) modulo \(2\).
Par exemple \(38 = 5 \times 7+3\) donc \(38\ \%\ 5\) renvoie 3. -
\(3\ //\ 2\) se lit \(3\) division entiĂšre par \(2\).
Par exemple \(38 = 5 \times 7+3\) donc \(38\ //\ 5\) renvoie 7. -
\(3\)**\(2\) se lit \(3\) puissance \(2\)
Sur papier
Effectuez, sans calculatrice et sans Python, les opérations suivantes
- 14 // 3 =
- 5 % 2 =
- 1237 % 2 =
- 1238 % 2 =
Solution
- 14 // 3 = 4
- 5 % 2 = 1
- 1237 % 2 = 1
- 1238 % 2 = 0
Ă vous de jouer
Evaluer mentalement le résultat, puis excuter pour vérifier
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
Ă vous de jouer
Faire vos propres essais.
Evaluer mentalement le résultat, puis excuter pour vérifier
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
La racine carré
Comment calculer par exemple \(\sqrt{2}\) ? On a besoin de la fonction racine carré. En python, elle existe, mais il faut pour en disposer, importer un module : le module math (sans s)
On dispose alors d'une fonction sqrt()
, mais nous reparlerons des fonctions prochainement.
Tester :
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
Avec des chaĂźnes de caractĂšresâïž
Opérations avec des chaßnes de caractÚres
Nom | Exemple |
Concaténation | "Bonjour " + "!" = "Bonjour !" |
Répétition | "Aie"*3 = "AieAieAie" |
Ă vous de jouer
Exécuter, puis expliquer ce qui s'est passé
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
Solution
abc == "abc"
est évalué à False
car abc vaut "bonjour", mais l'expression est valide.
Ă vous de jouer
Exécuter, puis expliquer ce qui s'est passé
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
Solution
"abc" == bonjour
: ici l'expression ne peut pas ĂȘtre Ă©valuĂ©e, bonjour est une variable (qui n'existe pas) => NameError
Sur papier
Evaluer les expressions suivantes sur papier, sans utiliser Python
"a" + "b"
"hahaha" == 3 * "ha"
Solution
"ab"
True
la chaĂźne vide
Pour les nombres, il existe le zéro qui est un nombre particulier.
Pour les chaines de caractÚres, il y a une sorte de zéro : la chaine vide
Et de la mĂȘme façon que zĂ©ro est souvent utilisĂ© en arithmĂ©tique, la chaine vide est aussi frĂ©quement utile dans le monde des chaĂźnes de caractĂšres.
La chaĂźne de caractĂšres vide sâĂ©crit ""
Bilanâïž
Résumé
-
Bien retenir les opérateurs // et % qui donnent respectivement le quotient et le reste de la division euclidienne.
-
Retenir aussi :
- concaténation
"Aie" + "!"
qui donne"Aie!"
- et répétition
"Aie"*3
qui donne"AieAieAie"
.
- concaténation
VIII. Des erreursâïž
Variable non définie
Tester puis corriger l'erreur
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
Erreur d'indentation
Tester puis corriger l'erreur :
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
On appelle indentation les décalages vers la droite. En Python ils font partie de la syntaxe.
Erreur de type
Tester puis corriger l'erreur :
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
IX. Exercicesâïž
Exercice 1 : la fĂȘte
Ecrivez un code qui compte les tĂȘtes, les Ă©paules, les genoux et les orteils Ă une fĂȘte.
Le correcteur va automatiquement définir une variable personnes
pour vous, elle contiendra le nombre de personnes Ă la fĂȘte.
Cette variable se trouve dans du code caché.
Votre code doit définir quatre variables :
- une appelée
tetes
- une appelée
epaules
- une appelée
genoux
- et une appelée
orteils
Ces variables doivent respectivement ĂȘtre Ă©gales au nombre de tĂȘtes, Ă©paules, genoux et orteils Ă la fĂȘte. Votre programme ne doit pas gĂ©nĂ©rer de sortie (pas d'affichage)
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
Exercice 2 : la vitesse
Vous assistez à une course cycliste qui monte et descend une colline. Le correcteur automatique définira trois variables pour vous : distance_montee
, distance_descente
donnant la distance (en km) des deux parties de la course, et temps_total
donnant le temps (en minutes) mis au total.
On veut Ă©crire un programme qui indique la vitesse moyenne (en km/min) pour toute la course.
Cliquez et glissez avec la souris pour réarranger les lignes qui sont en désordre.
Indice
Le programme a dĂ©fini trois variables. Assurez-vous que les lignes soient dans le bon ordre afin que chaque nouvelle variable soit bien dĂ©finie avant d'ĂȘtre utilisĂ©e.
Exercice 3 : Ă©change
Compléter ci-dessous pour échanger les contenus de deux variables x
et y
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
QCM à refaire tant que nécessaire ...
-
Quel message affiche lâordinateur lorsque l'utilisateur saisit 8.5 ?
- L'ordinateur affiche une erreur
- 17
- 16.0
- 16
-
On a exécuté le code suivant :
On obtient le message suivant :
Traceback (most recent call last):
File '<module1>', line 3, in <module>
NameError: name 'nombre_de_courrier' is not defined
Que signifie ce message d'erreur ?
- On a fait une erreur de syntaxe
- On effectue une opération incorrecte entre deux valeurs de types différents
- ProblĂšme d'indentation du code
- On utilise une variable non définie
-
On a exécuté le code suivant :
On obtient le message suivant :
Traceback (most recent call last):
File '<module1>', line 2, in <module>
TypeError: unsupported operand type(s) for ** or pow(): 'str' and 'int'
Que signifie ce message d'erreur ?
- On effectue une opération impossible entre deux valeurs de types différents
- On a mal indenté le code
- On a utilisé une variable qui n'est pas définie
- On a fait une erreur de syntaxe
-
On a exécuté le code suivant :
Quel type de message d'erreur va-t-on obtenir ?
- TypeError
- NameError
- SyntaxError
- IndentError
-
Quel message affiche lâordinateur lorsque l'utilisateur saisit 5 ?
- 15
- 15.0
- 555
- nombrenombrenombre
X. Expressions et affectationsâïž
Exemple
Lorsque l'on Ă©crit en python :
ou bien avec une expression dans le membre de droite :
đ Si ma_variable
n'existe pas déjà , l'interpréteur python fait 3 choses :
1. Il Ă©value le membre de droite. (ici, il vaut trivialement 1 dans le 1er exemple, ou 14 dans le second)
2. dans un emplacement de la mémoire, il écrit la valeur. Cet emplacement est repréré par une adresse, par exemple, l'adresse 3005392 qui est un simple numéro qui situe un emplacement dans la mémoire.
3. il crée aussi une variable nommée ma_variable
qui est un mot utilisable dans le code, qui réfÚre à l'emplacement mémoire.
Le programmeur n'a pas à se soucier de l'emplacement mémoire, il n'utilise que le nom de la variable.
đ Si au contraire, ma_variable
existe déjà :
1. Il Ă©value le membre de droite.
2. Dans l'emplacement de la mémoire correspondant à ma_variable
, il Ă©crit la valeur.
â ïž Ce qui se trouvait avant Ă cet emplacement lĂ est donc supprimĂ©. (On dit parfois "Ă©crasĂ©")
đ Ce n'est pas Python qui choisit l'emplacement mĂ©moire, c'est le systĂšme d'exploitation qui gĂšre cela. En fait python envoie une requĂȘte Ă l'OS pour stocker une valeur, l'OS choisit un emplacement vide, stocke la valeur et renvoie Ă l'interprĂ©teur python l'adresse mĂ©moire utilisĂ©e.
Expression
Une Expression est quelque chose que python peut Ă©valuer.
Mais nous en verrons bien d'autres qui ressembleront par exemple Ă :
Toutes ces expressions peuvent ĂȘtre evaluĂ©es, c'est Ă dire que l'interprĂ©teur python peut calculer la valeur de l'expression.
Résumé - Expression
une expression est quelque chose qui peut ĂȘtre Ă©valuĂ© par l'interprĂ©teur python.
Affectation
Exemple
Une affectation est faite dans toutes les instructions du type ma_variable = expression
Le signe =
n'a donc pas la mĂȘme signification qu'en maths, il signifie affecter le rĂ©sultat de lexpression de droite Ă la variable indiquĂ©e Ă gauche.
Cela consiste donc Ă :
- Evaluer le membre de droite
- stocker le résultat dans un emplacement mémoire
- Cette valeur sera par la suite accessible en utilisant le nom de la variable
Adresses mémoires
Exécuter :
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
Situation 1 : =
Attention
Ne perdez pas de vue que le signe =
est une affectation, et non une égalité.
Les instructions comme :
sont trÚs fréquentes dans nos codes.
- Python Ă©value le membre de droite
- puis affecte la valeur Ă la variable Ă gauche du signe
=
Ainsi : x = x + 1
n'a pas du tout le sens d'une égalité. Si la valeur de x
Ă©tait 4, par exemple :
- on Ă©value x + 1 (ce qui vaut 5)
- on affecte le résultat à x (donc maintenant x vaut 5)
Situation 2 : = et ==
Attention
Ne perdez pas de vue que le signe =
est une affectation, et non une égalité.
Voila une affection avec une expression booléenne :
==
est un test d'égalité.x == 2
est une expression booléenne.
L'expression x == 2
vaut True
si x
vaut 2
et False
sinon.
Rapellons que, lors d'une affectation :
- Python Ă©value l'expression Ă droite du signe
=
- puis affecte la valeur Ă la variable Ă gauche du signe
=
Ainsi ici, python Ă©value l'expression x == 2
puis affecte le résultat à la variable vrai_ou_faux
vrai_ou_faux
prendra la valeurTrue
six
est bien Ă©gal Ă2
- Sinon,
vrai_ou_faux
prendra la valeurFalse
XI. Bonnes pratiques de nommageâïž
Ce qui est autorisĂ© et ce qui ne l'est pasâïž
Pour nommer correctement une variable, il existe des rĂšgles Ă respecter.
Les rĂšgles
-
le nom de la variable peut contenir les caractĂšres suivants :
- des lettres non accentuées (attention, minuscule et majuscule sont des caractÚres différents)
- des chiffres (mais pas comme premier caractĂšre)
- le tiret du bas _ (underscore, tiret du 8)
-
le nom de la variable ne doit pas commencer par un chiffre
- le nom de la variable ne doit pas contenir d'espace
- le nom de la variable ne doit pas ĂȘtre un mot-clĂ© du langage.
Liste des mots-clés réservés par Python
and | as | assert | break | class | continue | def | del |
elif | else | except | False | finally | for | from | global |
if | import | in | is | lambda | None | not | or |
pass | raise | return | True | try | while | with | yield |
Du sens, du sens, du sensâïž
Hormis pour les indices (de boucles, de tableaux...) un nom de variable (dans un programme destinĂ© Ă ĂȘtre lu, par vous ou quelqu'un d'autre) doit impĂ©rativement avoir du sens :
RĂšgle d'or
On ne donne jamais un nom de variable au hasard, on le choisit pour qu'il soit explicite.
Oui mais pour donner du sens, il faut souvent plusieurs mots...
La longueur du nom de la variable («c'est trop long à taper») n'est plus un problÚme depuis que la grande majorité des IDE propose la complétion automatique.
Mais comment former ces longs mots ?
Syntaxe des noms Ă rallongeâïž
Comment accoler des mots
- S'il est composĂ©, le nom peut ĂȘtre de la forme:
snake_case
: les mots sont séparés par des underscores. Conseillé en Python.camelCase
: les mots sont séparés par des majuscules mais la 1Úre lettre est minuscule. Conseillé en Javascript.PascalCase
: les mots sont séparés par des majuscules et la 1Úre lettre est majuscule. Conseillé en C.kebab-case
: les mots sont séparés par des tirets courts. Conseillé en HTML - CSS.
Sans surprise, en Python, nous utiliserons donc le snake_case
.
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)