Chapitre 3 :
Opérations de bases pour les types numériques et
booléens
Ce chapitre va nous permettre de commencer à utiliser le langage Python.
Nous nous limiterons pour commencer à des opérations basiques comme des
opérations mathématiques.
1 Les types numériques Réels et Entiers
Parmi les nombres, Python définit des types plus précis répertoriés dans le
tableau ci-dessous :
Type Exemple
Integer 1, −2, 568742
Float 1.0, 3.12, −5.6, 15522.17885
Decimal Decimal(’0.1’)
Fraction Fraction(1, 2)
Table 3.1 - Principaux types de nombres
Python fait une distinction entre les nombres entiers (int) et les nombres
réels (float).
>>> a = 2
>> b = 2.0
>>> type(a)
<class ’int’>
>>> type(b)
<class ’float’>
Les fonctions int() et float() permettent elles de convertir un nombre quel-
conque en entier ou réel respectivement.
>>> a = 2
>>> type(a)
<class ’int’>
>>> b=float(2)
>>> type(b)
<class ’float’>
2 Opérations
2.1 Opérations classiques
Les valeurs de ces variables peuvent être modifiées au moyen d’une série
d’opérations.
1
Les commandes Python associées aux opérations mathématiques classiques sont
les suivantes :
1. — pour l’addition
2. — pour la soustraction
3. — pour la multiplication
4. ** pour la puissance
5. / pour la division
6. // pour le quotient de la division euclidienne
7. % pour le reste de la division euclidienne
2.2 Opérations augmentées
Python offre également la possibilité d’effectuer des affectations augmentées :
Les deux instructions de l’exemple suivant sont équivalentes :
>>>a=2
>>> a= a+3
>>> a
5
>>> a = 2
>>> a += 3 # affectation augmentée
>>> a
5
Les affectations augmentées fonctionnent avec tous les types de données et
tous les opérateurs standards : += -= *= /= //= % etc.
2.3 Constantes et puissances
Les constantes usuelles π, e, etc ne sont pas directement accessibles. Il faut
pour les manipuler importer la bibliothèque Numpy (La notion de bibliothèque
et Numpy en particulier seront vu dans les prochains chapitres).
On utilisera la lettre e pour signaler un exposant en base 10. Ainsi 2 e 1
signifie 2 ∗ 101 et représente donc 20 .
>>> 2e1
20.0
2
3 Les types numériques Décimal et Fractions
3.1 Décimal
Python possède également un type decimal qui permet de gérer des nombres
décimaux avec une précision définie par l’utilisateur.
>>> 0.1 + 0.1 + 0.1- 0.3
5.551115123125783e-17
Cela est du au fait que la valeur réellement stockée par l’ordinateur derrière
0.1 n’est pas exactement 0.1 (les flottants sont arrondis en langage machine).
Pour le voir il importer la fonction Decimal du module decimal (La notion de
module sera présentée après) :
>>> from decimal import Decimal
>>> Decimal(0.1)
Decimal(’0.10000000000000000055511151231257827021181583404541015625’)
Pour manipuler le nombre décimal 0.1 , il faut utiliser cette même fonction
Decimal mais avec des apostrophes :
>>> Decimal(’0.1’) +Decimal(’0.1’) + Decimal(’0.1’) - Decimal(’0.3’)
Decimal(’0.0’)
Si l’on ne souhaite juste afficher 0.0 et non Decimal(’ 0.0 ’), on peut utiliser
la commande print :
>>> print(Decimal(’0.1’) +Decimal(’0.1’) + Decimal(’0.1’) - Decimal(’
0.3’))
0.0
3.2 Fractions
De même que pour la manipulation des décimaux, la manipulation des frac-
tions sans perte de précision (c’est à dire en gardant l’écriture fractionnaire)
nécessite d’utiliser la fonction Fraction du module Fraction :
>>> from fractions import Fraction
>>> Fraction(1 , 3) + Fraction(1, 2)
Fraction(5, 6)
>>> print(Fraction(1 , 3) + Fraction(1, 2))
5/6
Le résultat renvoyé est la fraction 5/6 que l’on peut comparer pour vérifier
avec l’écriture décimale en utilisant la commande float :
>>> 1 ./3 + 1 ./2
0.8333333333333333
>>> float(Fraction(1, 3) + Fraction(1, 2))
0.8333333333333333
3
3.4 Le type booléen
Le terme booléen s’applique à un langage informatique binaire, inventé par
le mathématicien George Boole, qui consiste à programmer des variables qui ne
peuvent prendre que deux états (généralement notés vrai et faux), destinés à
représenter les valeurs de vérité de la logique.
En Python ces deux états sont True et False.
>>> type(True)
<class ’bool’>
En Python, les booléens True et False ont le même comportement que les
entiers 1 et 0 .
>>> float(True)
1.0
>>> float(False)
0.0
>>> int(True)
1
>>> int(False)
0
Et peuvent donc être manipuler comme tel.
>>> False + 5
5
>>> True*2
2
3.5 Opérateurs logiques et de comparaison
Opérateur Signification
> Supérieur
< Inférieur
>= Supérieur ou égal
<= Inférieur ou égal
== Egal
! = ou <> Différent de
is Objet identique
is not Objet différent
A and B vrai si A et B sont vrai
A or B est vrai si A ou B est vrai
not A vrai si A est faux
Table 3.2 - Quelques opérateurs classiques
A noter que Python comprend les conditions sous forme de double encadre-
ment.
4
>>> (3<1)
False
>>>(4==2*2)
True
>> not 3==2
True
>>> (4 ==2*2) and (not 3==2)
True
>>>(3<1) or (4==2*2)
True
>>>(3<1) or ( 4==5)
False
Ne pas confondre = (affectation) avec == (test)
>> $4=2$
SyntaxError: cannot assign to literal
>> $4==2$
False
Ainsi on ne confondra pas x = 2 (affectation de la valeur 2 à x ) et x == 2
(condition vraie si x égale 2).