Vous êtes sur une version archivée de lyceum.fr de l'année 2023/2024. Revenir au présent.

Chapitre 2: Types

Contenus Capacités attendues Commentaires
Constructions élémentaires Mettre en évidence un corpus de constructions élémentaires. boucles non bornées, appels de fonction. Séquences, affectation, conditionnelles, boucles bornées,

Dans un programme informatique, on manipule des données sur lesquelles on effectue des calculs.

Lorsqu’un langage traite des données, celles-ci sont codées sous forme binaire et le langage doit savoir à quel type de valeur correspond ce codage binaire.

Par exemple, le code binaire 0100 0001 sur un octet peut désigner:

  • Le nombre 65 s’il s’agit d’un entier non signé(entier positif).
  • La lettre A s’il s’agit d’un caractère(en codage ASCII/UTF-8).

En fonction du type d’objet (ou de donnée), on peut appliquer certaines opérations et d’autres non.

1 Quelques types d’objets simples

Voici quelques types d’objets simples:

  • int: integer en anglais représentent les entiers. ex: 3
  • float: floating point en anglais représentent les réels. ex: 3.14
  • str: string en anglais représentent les chaînes de caractères. ex: "Bonjour!"
  • bool: booleans en anglais représentent les booléens. Il ne peuvent avoir que deux valeurs: True ou False (Vrai ou faux)

On a parfois besoin de créer une variable vide, on utilise alors la valeur None qui a pour type NoneType sans type en anglais.

2 Comment connaître le type d’un objet ?

Pour connaître le type d’un objet on peut utiliser la fonction type() de Python:

type(3)
int
type(3.14)
float
type("Toto")
str
type(False)
bool

3 Changer le type d’un objet

Il est possible de modifier le type d’un objet en utilisant des fonctions Python, en anglais on appelle ça le casting.

3.1 Convertir en chaîne de caractère str()

str(5)
'5'

Comme vous le voyez la présence de guillemets indique qu’il s’agit d’une chaîne de caractères.

En Python, on peut utiliser indifféremment les simples ' et doubles guillemets ".

3.2 Convertir un entier en réel: float()

float(5)
5.0

3.3 Convertir un réel en entier: int() et round()

int(3.95)
3

Comme vous le voyez on a conservé que la partie entière du nombre, mais on n’a pas effectué un arrondi, si on souhaite faire un arrondi il faut utiliser la fonction round.

round(3.49)
3
round(3.5)
4

Les langages étudiés cette année sont dynamiques, c’est-à-dire que l’on peut changer le type des valeurs et variables. Il n’est de pas nécessaire de déclarer le type de variable avant leur utilisation(typage statique) ce qui rend le programme plus court et simple.

4 Combiner des objets avec des opérations

Lorsque l’on combine des objets avec des opérations on crée ce que l’on appelle une expression, si la syntaxe de votre expression est correcte, elle retourne une valeur qui a comme tout objet un type.

La syntaxe est de la forme:

<objet> <opérateur> <objet>

Par exemple:

3 + 2
5
3.0 + 2
5.0

Comme vous le voyez l’expression retourne une valeur dont le type dépend du type de données.

C’est encore plus étonnant avec les chaînes de caractères:

"TO" + "TO"
'TOTO'
"TO" * 2
'TOTO'

Voici les opérations à connaître:

  • addition: +
  • soustraction: -
  • multiplication: *
  • division: /
  • division entière: // renvoie la partie entière du quotient de la division. p.ex: 5 // 2 -> 2
  • modulo: %: renvoie le reste de la division entière. p.ex: 5 % 2 -> 1
  • puissance: **

Ordre de priorité des opérateurs(dite règle «PEMDAS»):

Parenthèses > Exposants > Multiplication > Division > Addition > Soustraction

On ne peut pas combiner les types n’importe comment en cas d’opération impossible, l’interpréteur Python lève une exception TypeError.

"python" / 3

>>sortie

TypeError: unsupported operand type(s) for /: 'str' and 'int'