fiche mémo : 1.3. Types de données.¶

Découvrez les entiers, les nombres flottants, les booléens et les chaînes.¶

Vincent GODARD - V1- 23/01/2025¶

Cours Introduction à la programmation¶

Département de géographie - L3 - Université de Paris 8¶

Traduction librement (largement) inspirée de : https://www.kaggle.com/code/alexisbcook/data-types

Sources :

Kaggle : https://www.kaggle.com/learn

Python Tutorial : https://www.w3schools.com/python/default.asp

Cours de Python : https://python.sdv.u-paris.fr/00_avant_propos/

Téléchargement des documents nécessaires :

Dossier compressé à télécharger => ici.

Chaque fois que vous créez une variable en Python, elle possède une valeur avec un type de données correspondant. Il existe de nombreux types de données différents, tels que les entiers, les flottants, les booléens et les chaînes, que nous aborderons tous dans cette leçon. (Ce n'est qu'un petit sous-ensemble des types de données disponibles - il existe également des dictionnaires, des ensembles, des listes, des tuples et bien plus encore.)

1. Introduction¶¶

Les types de données sont importants, car ils déterminent les types d'actions que vous pouvez effectuer avec eux. Par exemple, vous pouvez diviser deux flottants, mais vous ne pouvez pas diviser deux chaînes. Par exemple, 12.0/2.0 a du sens, mais "chat"/"chien" n'en a pas.

Pour éviter les erreurs, nous devons nous assurer que les actions correspondent aux types de données dont nous disposons.

2. Les entiers (Integers)¶¶

Les entiers sont des nombres sans partie fractionnaire et peuvent être positifs (1, 2, 3, ...), négatifs (-1, -2, -3, ...) ou nuls (0).

Peuvent être de tailles très variables comme les octets (byte) signés de -128 à 127 (2^7 à 2^7 -1) ou non signés 0 à 255 (soit 2^8 -1), short integer, long integer... (https://fr.wikipedia.org/wiki/Entier_(informatique))

Dans la cellule de code ci-dessous, nous définissons une variable x sur un entier. Nous vérifions ensuite le type de données avec type() et nous devons simplement passer le nom de la variable entre parenthèses.

In [ ]:
x = 14
print(x)
print(type(x))

Dans la sortie ci-dessus, <class 'int'> fait référence au type de données entier.

3. Les flottants, ou nombres à virgule flottante (Floats)¶¶

Les flottants sont des nombres avec des parties fractionnaires. Ils peuvent avoir plusieurs nombres après la décimale.

Peuvent être en simple précision (32 bits) ou double précision (64 bits), mais ils sont considérés comme une approximation d'un nombre réel (https://fr.wikipedia.org/wiki/Virgule_flottante).

In [ ]:
nearly_pi = 3.141592653589793238462643383279502884197169399375105820974944
print(nearly_pi)
print(type(nearly_pi))

Nous pouvons également spécifier un flottant avec une fraction.

In [ ]:
almost_pi = 22/7
print(almost_pi)
print(type(almost_pi))

Une fonction particulièrement utile pour les fractions est la fonction round(). Elle permet d'arrondir un nombre à un nombre spécifique de décimales.

In [ ]:
# Arrondir à 5 décimales
rounded_pi = round(almost_pi, 5)
print(rounded_pi)
print(type(rounded_pi))

Chaque fois que vous écrivez un nombre avec un point décimal, Python le reconnaît comme un type de données flottant.

Par exemple, 1. (ou 1.0, 1.00, etc.) sera reconnu comme un nombre flottant. C'est le cas, même si ces nombres n'ont techniquement pas de partie fractionnaire !

In [ ]:
y_float = 1.
print(y_float)
print(type(y_float))

4. Les booléens (Booleans)¶

Les booléens représentent l'une des deux valeurs suivantes : True ou False. Dans la cellule de code ci-dessous, z_one est défini sur un booléen avec la valeur True.

In [ ]:
z_one = True
print(z_one)
print(type(z_one))

Ensuite, z_two est défini sur un booléen avec la valeur False.

In [ ]:
z_two = False
print(z_two)
print(type(z_two))

Les booléens sont utilisés pour représenter la valeur de vérité d'une expression. Étant donné que 1 < 2 est une affirmation vraie, z_three prend la valeur True.

In [ ]:
z_three = (1 < 2)
print(z_three)
print(type(z_three))

De même, puisque 5 < 3 est une affirmation fausse, z_four prend la valeur False.

In [ ]:
z_four = (5 < 3)
print(z_four)
print(type(z_four))

Nous pouvons changer la valeur d'un booléen en utilisant not. Ainsi, not True est équivalent à False, et not False devient True.

In [ ]:
z_five = not z_four
print(z_five)
print(type(z_five))

Les booléens seront importants dans la prochaine leçon, lorsque vous apprendrez les conditions et les instructions conditionnelles.

5. Les chaînes de caractères (Strings)¶¶

Le type de données chaîne est une collection de caractères (comme des lettres de l'alphabet, des signes de ponctuation, des chiffres ou des symboles) contenus entre guillemets. Les chaînes sont couramment utilisées pour représenter du texte.

In [ ]:
# Un classic !
w = "Hello, Python!"
print(w)
print(type(w))

Vous pouvez obtenir la longueur d'une chaîne avec len(). "Hello, Python!" a une longueur de 14, car elle contient 14 caractères, y compris l'espace, la virgule et le point d'exclamation. Notez que les guillemets ne sont pas inclus dans le calcul de la longueur.

In [ ]:
print(len(w))

Un type spécial de chaîne est la chaîne vide, qui a une longueur zéro.

In [ ]:
shortest_string = ""
print(type(shortest_string))
print(len(shortest_string))

Si vous mettez un nombre entre guillemets, il a un type de données de chaîne.

In [ ]:
my_number = "1.12321"
print(my_number)
print(type(my_number))

Si nous avons une chaîne convertible en nombre à virgule flottante, nous pouvons utiliser float().

Cela ne fonctionnera pas toujours ! Par exemple, nous pouvons convertir « 10.43430 » et « 3 » en nombres à virgule flottante, mais nous ne pouvons pas convertir « Hello, Python !» en nombre à virgule flottante.

In [ ]:
also_my_number = float(my_number)
print(also_my_number)
print(type(also_my_number))

Tout comme vous pouvez additionner deux nombres (flottants ou entiers), vous pouvez également additionner deux chaînes. Le résultat est une chaîne plus longue qui combine les deux chaînes d'origine en les concaténant.

In [ ]:
new_string = "abc" + "def"
print(new_string)
print(type(new_string))

Notez qu'il n'est pas possible d'effectuer une soustraction ou une division avec deux chaînes. Vous ne pouvez pas non plus multiplier deux chaînes, mais vous pouvez multiplier une chaîne par un entier. Cela produit à nouveau une chaîne qui n'est que la chaîne d'origine concaténée avec elle-même un nombre spécifié de fois.

In [ ]:
newest_string = "abc" * 3
print(newest_string)
print(type(newest_string))

Notez que vous ne pouvez pas multiplier une chaîne par un nombre à virgule flottante ! Si vous essayez de le faire, vous obtiendrez une erreur.

In [ ]:
will_not_work = "abc" * 3.

Dans l'erreur, la "séquence" est la chaîne "abc", et le "non-int de type 'float'" est le float (3.). Ainsi, le message d'erreur peut être reformulé pour dire "impossible de multiplier la chaîne par le float".

6. Quelques essais¶

6.1. 1er essai¶

In [ ]:
# Définir un float puis imprimez-le !
y = 1.
print(y)
print(type(y))
In [ ]:
# Convertir le float en entier avec la fonction int
z = int(y)
print(z)
print(type(z))

Qu'est-ce qui a changé ?¶

In [ ]:
## Peut-on le multiplier par 3 ?
ah = z * 3
print(ah)
In [ ]:
# Convertir le float en chaîne avec la fonction str (string)
oh = str(ah)
print(oh)
print(type(oh))
In [ ]:
## Peut-on le multiplier par 3 ?
ih = oh * 3
print(ih)
In [ ]:
## Peut-on le diviser par 3 ?
uh = ih / 3
print(ih)

Pourquoi ?¶

6.2. 2ème essai¶

In [ ]:
## Décommentez et exécutez ce code pour commencer !
# Les entiers sont-ils ceux auxquels vous vous attendiez ?
#print(int(1.2321))
#print(int(1.747))
#print(int(-3.94535))
#print(int(-2.19774))

6.3. 3ème essai¶

In [ ]:
## Décommentez et exécutez ce code pour continuer !
# Inversez les True et False pour voir la différence.
#print(3 * True)
#print(-3.1 * True)
#print(type("abc" * False))
#print(len("abc" * False))