Valeurs et types#
Dans cette feuille, nous allons utiliser Jupyter comme une calculatrice et introduire quelques concepts sous-jacents : valeurs, opérations, expressions, types.
Expressions et premiers calculs#
Cliquez sur la cellule suivante puis exécutez-la en appuyant sur les touches Maj+Entrée :
1 + 1
2
Techniquement parlant, votre navigateur web a envoyé le contenu de l”expression 1+1
de la cellule à un
noyau (kernel) (kernel en anglais) qui l’a
exécutée (execution), avant de renvoyer le résultat à afficher. Le noyau
que nous utilisons (Python3
) permet de travailler en Python
. Il existe des noyaux
pour beaucoup d’autres langages de programmation.
Définition : Expressions, valeurs et opérations
Une expression (expression) est une combinaison de valeurs par des opérations (operation) donnant une nouvelle valeur.
Exemple
L’expression 3 * (1 + 3) + (1 + 4) * (2 + 4)
vaut 42
.
Exécutez la cellule suivante pour calculer la valeur de l’expression :
3 * (1 + 3) + (1 + 4) * (2 + 4)
42
Modifiez l’expression dans la cellule précédente et exécutez-la de nouveau.
Utilisez la cellule suivante pour calculer la surface d’un rectangle de largeur 25 et de longueur 37 :
### BEGIN SOLUTION
25 * 37
### END SOLUTION
925
Notion de type#
Une valeur peut représenter des données de natures très différentes, comme un nombre entier, un nombre réel, un booléen, mais aussi un texte, un relevés de notes, une images, une musique, etc.
Définition : Types
En Python, chaque valeur a un type (type) qui décrit sa nature. Ce type spécifie en outre :
La structure de données : comment la valeur est représentée en mémoire.
La sémantique des opérations.
Les types de données en programmation sont essentiels car ils permettent aux ordinateurs de déterminer la nature des informations qu’ils doivent traiter, stocker ou manipuler. Ils définissent les propriétés et les opérations possibles sur les données représentées, et indiquent commment ces données sont stockées en mémoire.
Les types imposent des contraintes qui contribuent à renforcer l’exactitude des données. De plus, les types sont utiles aux développeurs pour raisonner sur la structure des logiciels.
Définition : Types de base
Les types de base en Python sont :
Les entiers (integer) (type
int
pour integer)
Exemples : 1, 42, -32765
les réels (float) (type
float
)
Exemples : 10.43, 1.0324432e22
les chaînes de caractères (string) (type
str
pour string), entre guillemets ou apostrophes :
Exemples : « bonjour », “Alice aime Bob”
les booléens (Boolean type) (type
bool
pour boolean)
Exemples :True
(vrai),False
(faux)
Les entiers, les caractères et les booléens forment les types ordinaux (ordinal type).
Exemple
La fonction type
permet d’obtenir le type d’une valeur, comme dans les exemples
suivants :
type("Jean")
str
type(23)
int
type(1.70)
float
type(23.)
float
type(True)
bool
Opérations arithmétiques sur les entiers
Opération |
Exemple |
Résultat |
---|---|---|
opposé |
|
5 |
addition |
|
22 |
soustraction |
|
12 |
multiplication |
|
85 |
puissance |
|
8 |
division entière |
|
3 |
reste de la division entière |
|
2 |
Exercice
Les cellules suivantes vous présentent des exemples de calculs. Exécutez-les en observant bien la valeur du résultat ainsi que son type.
3 * (1 + 3) + (1 + 4) * (2 + 4)
42
type(3 * (1 + 3) + (1 + 4) * (2 + 4))
int
42 / 2
21.0
type(42 / 2)
float
42 / 5
8.4
type(42 / 5)
float
42. / 5
8.4
type(42. / 5)
float
42 % 5
2
type(42 % 5)
int
Astuce
Note
Pour éviter de fausses manœuvres, nous configurons de nombreuses cellules, telles celles
ci-dessous, pour qu’elles soient non modifiables. Pour faire vos propres expérimentations
ou pour prendre des notes personnelles, vous pouvez à tout moment insérer de nouvelles
cellules. Insérez maintenant une cellule ci-dessous en utilisant le bouton +
sous les
onglets. Dans la barre d’outil de cette feuille, sélectionnez Markdown
à la place de
Code
pour en faire une cellule de texte.
1 + 1.
2.0
type(1 + 1.)
float
42 == 6*7
True
type(42 == 6*7)
bool
41 == 2*21
False
type(41 == 2*21)
bool
Remarque
Dans les dernières cellules précédentes, nous avons testé l’égalité entre deux
valeurs. Le résultat était selon le cas «vrai» ou «faux», donc de type bool
. C’est un
exemple d’expression booléenne.
Notez l’utilisation d’un double égal ==
pour le test d’égalité. Nous verrons
bientôt la signification en Python du simple égal =
.
Définition : Expressions booléennes (conditions)
Une expression booléenne (Boolean expression) est une expression dont la valeur est «vrai» ou «faux» (type : bool).
Une expression booléenne est aussi appelée une condition (condition).
Exemples :
True
True
False
False
regarde() == Vide
x > 3.14
2 <= n and n <= 5
Opérations booléennes usuelles
Opération |
Exemple |
Résultat |
---|---|---|
comparaison |
|
|
comparaison stricte |
|
|
comparaison stricte |
|
|
égalité |
|
|
inégalité |
|
|
négation logique |
|
|
et |
|
|
ou inclusif |
|
|
Exercice
Pour chacune des cellules suivantes, déterminez de tête la valeur de l’expression booléenne, puis vérifiez la en exécutant la cellule.
1 < 2
True
2 > 3
False
1 < 2 and 2 > 3
False
1 < 2 or 2 > 3
True
Exercice
Pour chacune des expressions suivantes, déterminez de tête le type et la valeur du
résultat, et donnez votre réponse à l’endroit indiqué dans la cellule de texte sous la
forme type
, valeur
; puis vérifiez en exécutant les cellules.
Type : int, bool, ou float ? Valeur : 7, 9, 11, ou 21 ?
BEGIN SOLUTION
int, 11
END SOLUTION
3 * 2 + 5
11
type(3 * 2 + 5)
int
Type : int, bool, ou float ? Valeur : 12 ou 12.5 ?
BEGIN SOLUTION
int, 12
END SOLUTION
25 / 2
12.5
type(25 / 2)
float
Type : int, bool, ou float ? Valeur : 6, 7, 6.0000, ou 7.0000?
BEGIN SOLUTION
int, 7.0000
END SOLUTION
3.5*2
7.0
type(3.5*2)
float
Type: int, bool, ou float ? Valeur : 5, 4, ou 4.66667 ?
BEGIN SOLUTION
double, 4.66667
END SOLUTION
14. / 3
4.666666666666667
type(14. / 3)
float
Type : int, bool, ou float ? Valeur : 3,7,21, true, ou false ?
BEGIN SOLUTION
bool, true
END SOLUTION
3*7 == 21
True
type(3*7 == 21)
bool
Type : int, bool, double ? Valeur : 21, 25, true, false ?
BEGIN SOLUTION
bool, true
END SOLUTION
(3*7 == 21) and (4.2 > 5.3 or 4*4 == 8*2)
True
type((3*7 == 21) and (4.2 > 5.3 or 4*4 == 8*2))
bool
Type : int, bool, double ? Valeur : 1, 0, true, false ?
BEGIN SOLUTION
bool, false
END SOLUTION
True and False
False
type(True and False)
bool
Type : int, bool, double ? Valeur : 1, 0, True, False ?
BEGIN SOLUTION
bool, false
END SOLUTION
True or False
True
type(True or False)
bool
Type : int, bool, double ? Valeur : 1, 0, true, false ?
BEGIN SOLUTION
bool, True
END SOLUTION
(False and False) or True
True
type((False and False) or True)
bool
Type : int, bool, double ? Valeur : 1, 0, True, False ?
BEGIN SOLUTION
bool, False
END SOLUTION
False and (False or True)
False
type(False and (False or True))
bool
Conclusion#
Bravo, vous avez terminé cette première feuille où nous avons exploré les expressions, opérations, valeurs et types. Nous avons également vu les types de base : int, string, etc.
Nous avons notamment vu que Python détermine le type d’une valeur littérale en fonction
de sa syntaxe; ainsi 42
est de type entier (int
), tandis que 42.
ou 42.0
est
de type réel (float
). Nous avons aussi vu que le type d’une valeur détermine la
sémantique des opérations que l’on applique dessus : ainsi 17 / 5
calcule la
division euclidienne des deux entiers, tandis que 17. / 5
calcule leur division comme
nombres réels.
Aparté : syntaxe, sémantique et algorithme
Ces trois notions – syntaxe, sémantique et algorithme – sont essentielles pour bien spécifier et comprendre le comportement d’un programme. Elles permettent d’exprimer précisément comment un programme doit être écrit, ce qu’il est censé accomplir et de quelle manière il atteint son objectif. En maîtrisant ces concepts, on peut écrire du code plus correct, compréhensible et maintenable, ce qui est fondamental pour tout développement informatique.
Syntaxe (syntax) : comment cela s’écrit
Sémantique (semantics) : ce que cela fait
Algorithme (algorithm) : comment c’est fait
Exemple
Syntaxe : 17 / 5
Sémantique : calcule la division entière de 17 par 5
Algorithme : division euclidienne
Dans la feuille suivante, vous aborderez quelques fonctions mathématiques préexistantes en python.