Valeurs et types#

Dans cette feuille, nous allons utiliser Jupyter comme une calculatrice et introduire quelques concepts sous-jacents : valeurs, opérations, expressions, types.

À faire

Question: à quoi ça sert d’avoir le type d’un objet?

Expressions et premiers calculs#

  1. 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 : Expression

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.

  1. Exécutez la cellule suivante pour calculer la valeur de l’expression :

3 * (1 + 3) + (1 + 4) * (2 + 4)
42
  1. Modifiez l’expression dans la cellule précédente et exécutez-la de nouveau.

  1. 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 :

En Python, chaque valeur a un type (type) qui décrit sa nature. Ce type spécifie en outre :

  • La structure de donnée : comment la valeur est représentée en mémoire.

  • La sémantique des opérations.

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)

5

addition

17 + 5

22

soustraction

17 - 5

12

multiplication

17 * 5

85

puissance

2 ** 3

8

division entière

17 / 5

3

reste de la division entière

17 % 5

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
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

3 <= 5

True

comparaison stricte

3 < 5

True

comparaison stricte

3 > 5

False

égalité

3 == 5

False

inégalité

3 != 5

True

négation logique

not 3 <= 5

False

et

3 < 5 and 3 > 5

False

ou inclusif

3 < 5 or  3 > 5

True

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

À faire

Déplacer cette note à un endroit où ce sera immédiatement mis en application.

Astuce

Note

Pour éviter de fausses manœuvres, nous configurons de nombreuses cellules, telles celles ci-dessus, 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.

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.

  1. 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
  1. Type : int, bool, ou float ? Valeur : 12 ou 12.5 ?

    BEGIN SOLUTION

    int, 12

    END SOLUTION

25 / 2
12.5
type(25 / 2)
float
  1. 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
  1. 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
  1. 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
  1. 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
  1. Type : int, bool, double ? Valeur : 1, 0, true, false ?

    BEGIN SOLUTION

    bool, false

    END SOLUTION

True and False
False
type(True and False)
bool
  1. Type : int, bool, double ? Valeur : 1, 0, True, False ?

    BEGIN SOLUTION

    bool, false

    END SOLUTION

True or False
True
type(True or False)
bool
  1. 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
  1. 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.

Astuce

Aparté : syntaxe, sémantique et algorithme

  • 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 les variables.

Vous pouvez maintenant revenir à la page d’accueil et cocher cette feuille.