Accès rapide :
La vidéo
Utilisation du type int
Les opérateurs arithmétiques
Les opérateurs de comparaisons
Les opérateurs d'affectation
Utilisation du caractère de séparation de groupes de chiffres
Les bases numériques supportées pour exprimer une valeur entière
Travaux pratiques
Les énoncés
Les corrections
Cette vidéo vous montre comment manipuler des données de type int dans vos programmes Python. Différents opérateurs et fonctions applicables aux entiers vous seront présentés.
Nous avons déjà utilisé le type int (la classe int, si vous préférez) : il permet d'exprimer des valeurs entières. Pour rappel, voici comment définir une variable contenant une valeur entière.
>>> value = 123 >>> print(value) 123 >>> type(value) <class 'int'> >>>
Contrairement à d'autres langages de programmation, en Python, un entier n'est pas limité dans sa plage de valeurs. Vous pouvez manipuler des valeurs entières nécessitant des milliers de chiffres pour être exprimé. A titre d'exemple, voici un l'entier correspondant au calcul de 2 élevé à la puissance 1000.
1 2 3 4 |
>>> value = 2 ** 1000 >>> print(value) 10715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376 >>> |
Vous pouvez utiliser la fonction input
pour demander la saisie d'une
valeur à partir de la console. Mais attention, cette fonction renvoie une chaîne de caractères. Si vous souhaitez obtenir une valeur entière,
il faudra donc convertir la chaîne de caractères en une instance de la classe
int
. Voici comment procéder.
>>> str_value = input("Veuillez saisir une valeur numérique entière : ") Veuillez saisir une valeur numérique entière : 3 >>> value = int(str_value) # La conversion est faite ici >>> value 3 >>>
Vous vous en doutez, de nombreux opérateurs peuvent être utilisés pour réaliser toutes sortes de calculs. Le tableau ci-dessous vous propose quelques opérateurs arithmétiques que vous pouvez utiliser sur vos valeurs entières.
Opérateur | Description | Exemple |
---|---|---|
+ | Réalise l'addition de deux valeurs | value = 3 + 7 # 10 |
- | Réalise la soustraction de deux valeurs | value = 10 - 5 # 5 |
* | Réalise la multiplication de deux valeurs | value = 10 * 5 # 50 |
** | Elève une valeur à une puissance donnée | value = 2 ** 8 # 256 |
/ | Réalise la division de deux valeurs | value = 10 / 5 # 2 |
// | Réalise la division entière de deux valeurs | value = 5 // 3 # 1 |
% | Calcule le reste de la division entière de deux valeurs | value = 5 % 3 # 2 |
Vous pouvez comparer deux entiers entre eux. Pour ce faire, différents opérateurs vous sont proposés. Voici la liste des six opérateurs de comparaison.
Opérateur | Description | Exemple |
---|---|---|
== | Vérifie si deux valeurs sont identiques | 3 == 7 # C'est faux |
!= | Vérifie si deux valeurs sont différentes | 3 != 7 # C'est vrai |
< | Vérifie si une valeur est inférieure à une autre | 3 < 7 # C'est vrai |
<= | Vérifie si une valeur est inférieure ou égale à une autre | 3 <= 7 # C'est vrai |
> | Vérifie si une valeur est supérieure à une autre | 3 > 7 # C'est faux |
>= | Vérifie si une valeur est supérieure ou égale à une autre | 3 >= 7 # C'est faux |
Et voici un petit exemple d'utilisation.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# A partir du module standard random.py, on importe la fonction randint. # Cette fonction permet de calculer une valeur pseudo-aléatoire. from random import randint # On demande une valeur pseudo-aléatoire entre 1 et 5 compris. searched_value = randint(1, 5) # On demande la saisie d'une valeur (la conversion de str vers int est faite à la volée. value = int(input("Veuillez saisir un entier : ")) # On compare les deux valeurs grâce à l'instruction if. if value == searched_value: print("Trop fort, vous avez gagné :-)") else: print("Désolé, ce n'est pas la bonne valeur :-(") print("Il fallait trouver", searched_value) |
if / else
permet de tester si une condition est vraie ou non (dans notre cas, la comparaison).
Si la condition est vraie, c'est le bloc en retrait sous le if
qui sera exécuté.
Dans le cas contraire, c'est le bloc en retrait sous le else
qui sera exécuté.
Et voici un exemple d'utilisation de ce programme.
$> python game.py Veuillez saisir un entier : 3 Désolé, ce n'est pas la bonne valeur :-( Il fallait trouver 4 $>
Vous pouvez à tout moment changer la valeur de votre variable. Soit vous procédez à une nouvelle affectation, soit vous faite varier la valeur par rapport à son état actuel : deux nombreux opérateurs sont là pour cela. Voici une liste d'opérateurs permettant de changer la valeur d'un entier.
Opérateur | Description | Exemple | Equivalent à |
---|---|---|---|
= | Modifie le contenu d'une variable. | value = 10 |
|
+= | Ajoute au contenu d'une variable une autre valeur. | value += 1 |
value = value + 1 |
-= | Soustrait au contenu d'une variable une autre valeur. | value -= 2 |
value = value - 2 |
*= | Multiplie le contenu d'une variable par une valeur et stocke le résultat dans la variable. | value *= 2 |
value = value * 2 |
**= | Elève le contenu d'une variable à une puissance donnée et stocke le résultat dans la variable. | value **= 3 |
value = value ** 3 |
/= | Divise le contenu d'une variable par une valeur et stocke le résultat dans la variable. | value /= 2 |
value = value / 2 |
//= | Effectue la division entière du contenu d'une variable par une valeur et stocke le résultat dans la variable. | value //= 2 |
value = value // 2 |
%= | Calcule le reste de la division entière du contenu d'une variable par une valeur et stocke le résultat dans la variable. | value %= 2 |
value = value % 2 |
Voici un exemple d'utilisation de l'un de ces opérateurs. Il permet de réitérer un bloc d'instructions, tant qu'une variable n'aura pas atteint la valeur 0.
1 2 3 4 5 6 7 8 9 10 11 12 |
# On déclare la valeur d'un compteur counter = 10 # On fait une boucle tant que le compteur est supérieur à 0. while counter > 0: # On affiche la valeur du compteur print(counter) # On décrémente le compteur de 1 counter -= 1 print("Boooouuuummmmm !") |
Et voici le résultat produit par ce programme.
10 9 8 7 6 5 4 3 2 1 Bye bye
Parfois on doit manipuler des grands nombres : plus vos valeurs seront grandes et plus elles seront difficiles à déchiffrer.
A titre d'exemple, quelle est la valeur stockée dans la variable counter
suivante ?
1 |
counter = 10000000000 |
Depuis Python 3.6, une nouvelle syntaxe permet de définir des grands nombres avec un caractère de séparation de groupes de chiffres. Entre chaque groupe de chiffres, vous pouvez placer un caractère _ (underscore). Voici un exemple d'utilisation : vous conviendrez, cette fois-ci la valeur est plus facilement déchiffrable.
1 |
counter = 10_000_000_000 |
Le langage Python permet d'exprimer des valeurs entières en utilisant diverses bases numériques. Bien entendu, la plupart du temps, vous travaillerez en base décimale (avec dix chiffres de 0 à 9).
Mais parfois, d'autres bases numériques peuvent être utiles : je pense à la base binaire (avec les deux chiffres 0 et 1), la base octale (avec les huit chiffres de 0 à 7) et la base hexadécimale (avec seize chiffre de 0 à 9 puis de a à f). Les bases numériques binaire et hexadécimale pourront notamment être utiles si vous cherchez à programmer une carte Raspberry Pi. En effet quand on communique avec du matériel (hardware), il est nécessaire de maîtriser le binaire et l'hexadécimale, car elles sont utiles pour représenter le fonctionnement de l'électronique numérique. La base numérique octale, quant à elle, peut être utile pour la gestion des droits d'accès sur un système de fichiers Linux/Unix.
En Python, une valeur entière exprimée en base binaire commence par le préfixe 0b
.
De même, une valeur entière exprimée en base octale commence par le préfixe 0o
.
Enfin, une valeur entière exprimée en base hexadécimale commence par le préfixe 0x
.
Voici quelques exemples d'utilisation des bases numériques supportées en Python.
>>> a = 255 >>> b = 0b1111_1111 >>> c = 0xff >>> print(a, b, c) 255 255 255 >>> color = 0xff_00_FF # Les trois parties représentent les composantes RGB >>> print(color) # (Red/Green/Blue) d'une couleur. 16711935 >>> d = 0o10 >>> print(d) 8 >>>
A titre d'information, sachez qu'il existe trois fonctions de base en Python qui permettent de calculer la chaîne de caractères de représentation binaire, octale ou hexadécimale d'une valeur entière.
La fonction bin permet de calculer la représentation binaire d'un entier.
La fonction hex permet de calculer la représentation hexadécimale d'un entier.
La fonction oct permet de calculer la représentation octale d'un entier.
Voici quelques exemples d'utilisation :
>>> value = 15 >>> bin(value) '0b1111' >>> hex(value) '0xf' >>> oct(value) '0o17' >>> >>> value = 64 >>> bin(value) '0b1000000' >>> hex(value) '0x40' >>> oct(value) '0o100' >>> >>> bin(3.5) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'float' object cannot be interpreted as an integer >>>
Exercice 1 : écrire un programme qui déclare deux variables a
et b
. Ces variables doivent être initialisées avec des
entiers aléatoires compris entre 0 et 9. Affichez ensuite le contenu de ces variables. Puis, faire en sorte de permuter le contenu des deux variables.
Enfin, affichez de nouveau le contenu des deux variables. Evitez de regarder directement la correction ci-dessous.
Exercice 2 : afficher les carrés des entiers compris entre 1 et 10 en utilisant une boucle while
.
Evitez de regarder directement la correction ci-dessous.
Exercice 1 : cette correction en fait un peu plus que demandé dans le sens ou je vous y propose deux manières de permuter le contenu de vos variables.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# A partir du module standard random.py, on importe la fonction randint. # Cette fonction permet de calculer une valeur pseudo-aléatoire. from random import randint # On initialise nos deux variables et on les affiche. a = randint(0, 9) b = randint(0, 9) print("a =", a, "- b =", b) # Première technique pour permuter deux variables (avec un troisième variable). temp = a a = b b = temp print("a =", a, "- b =", b) # Seconde technique (on utilise un tuple - on comprendra mieux ça plus tard). a, b = (b, a) print("a =", a, "- b =", b) |
Exercice 2 : cet exercice étant assez simple, je vous laisse regarder la correction.
1 2 3 4 5 6 7 |
counter = 1 while counter <= 10: print(counter, " => ", counter ** 2) counter += 1 print("Trop facile ;-)") |
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :