Participer au site avec un Tip
Rechercher
 

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 :

Manipulation de valeurs flottantes en Python

Base binaire et opérations bit à bit Les chaînes de caractères


Accès rapide :
La vidéo
Utilisation du type float
Utilisation du caractère de séparation de groupes de chiffres
Les opérateurs utilisables sur vos valeurs flottantes
Les opérateurs arithmétiques
Les opérateurs de comparaisons
Les opérateurs d'affectation
Travaux pratiques
Les énoncés
Les corrections

La vidéo

Cette vidéo vous montre comment manipuler des données de type float dans vos programmes Python. Différents opérateurs et fonctions applicables aux valeurs flottantes vous seront présentés.


Manipulation de valeurs flottantes en Python

Utilisation du type float

Bien entendu, le langage Python permet aussi de manipuler des valeurs flottantes. C'est la classe float qui permet de représenter ce type de valeurs. Lancez un interpréteur en mode interactif et testez ces quelques lignes de code python.

>>> pi = 3.41592654
>>> type(pi)
<class 'float'>
>>> print(pi)
3.41592654
>>> 
Exemple de définition d'une variable contenant une valeur flottante.

Notez tout de même que deux notations peuvent être utilisées pour définir vos valeurs flottantes : soit la notation décimale classique, soit la notation exponentielle. Voici un exemple d'utilisation de ces deux notations.

>>> first = 0.001
>>> print(first)
0.001
>>> second = 1e-3
>>> print(second)
0.001
>>> 
Exemple d'utilisation des deux notations pour vos valeurs flottantes.
la notation utilisée pour l'affichage d'une valeur flottante est dépendante de la complexité de cette valeur.
>>> print(1e-3)
0.001
>>> print(1e-6)
1e-06
>>> 
Notations utilisées pour l'affichage de vos valeurs flottantes.

Si vous souhaitez contrôler la notation utilisée pour l'affichage de vos valeurs flottantes, il faudra utiliser des affichages formatés, comme le montre l'exemple ci-dessous.

>>> a = 0.001
>>> print(f"{a} - {a:e} - {a:.2e}")
0.001 - 1.000000e-03 - 1.00e-03
>>> 
>>> b = 5.2e-3
>>> print(f"{b} - {b:e} - {b:.2e}")
0.0052 - 5.200000e-03 - 5.20e-03
>>> 
Exemple d'affichages formatés de vos valeurs flottantes.
la syntaxe f"" permet de définir une chaîne de caractères formatées. Pour injecter une valeur dans une chaîne formatée, on utiliser une paire d'accolades. Si on place un caractère : dans les accolades, on peut alors contrôler le format (type d'affichage, nombre de chiffres utilisés...). Nous reviendrons sur ces possibilités d'affichages formatés dans des prochains chapitres.

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 flottante, il faudra donc convertir la chaîne de caractères en une instance de la classe float. Voici comment procéder.

>>> str_value = input("Veuillez saisir une valeur numérique flottante : ")
Veuillez saisir une valeur numérique flottante : 3.14
>>> value = float(str_value)        # La conversion est faite ici
>>> value
3.14
>>> 
Exemple de saisie d'une valeur flottante à partir de la console.

Utilisation du caractère de séparation de groupes de chiffres

Tout comme pour les entiers, il est possible d'utiliser le caractère de séparation de groupes de chiffres. Vous pouvez l'utiliser aussi bien pour la partie entière que pour la partie flottante. Vous pouvez aussi l'utiliser avec la notation exponentielle. Voici un exemple d'utilisation.

>>> pi = 3.141_592_654
>>> print(pi)
3.141592654
>>> price = 1_000_000.99
>>> print(price, "euros")
1000000.99 euros
>>> 
Exemple d'utilisation du caractère de séparation de groupes de chiffres.
personnellement, je trouve que cette possibilité est surtout utile pour la partie entière. Cela permet d'avoir, plus facilement, l'ordre de grandeur des valeurs manipulées.

Les opérateurs utilisables sur vos valeurs flottantes

A l'instar des entiers, vos valeurs flottantes peuvent être manipulées avec divers opérateurs. Vous disposez, bien entendu, des opérateurs arithmétiques, des opérateurs de comparaisons et des opérateurs d'affectations combinés. Voici quelques exemples d'utilisation.

>>> 3.7 + 1.7
5.4
>>> 1.5 / 1.2
1.25
>>> 2.1 ** 3.6       # Elévation à une puissance donnée
14.454046949052714
>>> 5.0 % 3.0        # Reste de la division entière par 3.0
2.0
>>> 2.1 == 1.8       # Opérateur d'égalité
False
>>> 2.1 != 1.8       # Opérateur de différence
True
>>> a = 15.5
>>> a += 3.8
>>> a
19.3
>>> 
Exemple d'utilisation de quelques opérateurs.

Les opérateurs arithmétiques

Le tableau ci-dessous vous propose quelques opérateurs arithmétiques que vous pouvez utiliser sur vos valeurs flottantes.

Opérateur Description Exemple
+ Réalise l'addition de deux valeurs value = 3.1 + 7.2        # 10.3
- Réalise la soustraction de deux valeurs value = 10.4 - 5.2       # 5.2
* Réalise la multiplication de deux valeurs value = 10.0 * 5.5       # 55.0
** Elève une valeur à une puissance donnée value = 2.1 ** 8.2       # 438.73
/ Réalise la division de deux valeurs value = 10.5 / 2.4       # 4.375
% Calcule le reste de la division entière de deux valeurs flottantes value = 5.0 % 3.0        # 2.0

Les opérateurs de comparaisons

Vous pouvez comparer deux flottants 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.1 == 7.2       # C'est faut
!= Vérifie si deux valeurs sont différentes 3.1 != 7.2       # C'est vrai
< Vérifie si une valeur est inférieure à une autre 3.1 < 7.2        # C'est vrai
<= Vérifie si une valeur est inférieure ou égale à une autre 3.1 <= 7.2       # C'est vrai
> Vérifie si une valeur est supérieure à une autre 3.1 > 7.2        # C'est faut
>= Vérifie si une valeur est supérieure ou égale à une autre 3.1 >= 7.2       # C'est faut

Les opérateurs d'affectation

Voici la liste des opérateurs d'affectation combinés.

Opérateur Description Exemple Equivalent à
= Modifie le contenu d'une variable. value = 10.2
+= Ajoute au contenu d'une variable une autre valeur. value += 1.1 value = value + 1.1
-= Soustrait au contenu d'une variable une autre valeur. value -= 2.5 value = value - 2.5
*= Multiplie le contenu d'une variable par une valeur et stocke le résultat dans la variable. value *= 2.3 value = value * 2.3
**= Elève le contenu d'une variable à une puissance donnée et stocke le résultat dans la variable. value **= 3.7 value = value ** 3.7
/= Divise le contenu d'une variable par une valeur et stocke le résultat dans la variable. value /= 2.5 value = value / 2.5
%= 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.0 value = value % 2.0

Travaux pratiques

Les énoncés

Préambule : on transforme une température exprimée en degré Celsius en degré Fahrenheit en appliquant la formule suivante : fahrenheit = celsius * 9/5 + 32. Il en découle la formule inverse celsius = (fahrenheit - 32) * 5/9, qui permet de convertir une température exprimée en degré Fahrenheit en degré Celsius.

Exercice 1 : écrire un programme qui demande à l'utilisateur de saisir, à partir de la console, une température exprimée en degré Celsius et qui la convertie en une température en degré Fahrenheit.

Exercice 2 : écrire le programme inverse du précédent, qui demande à l'utilisateur de saisir une température exprimée en degré Fahrenheit et qui la convertie en une température en degré Celsius.

Bien entendu, essayez de faire ces exercices sans regarder directement la correction ci-dessous. ;-)

Les corrections

Exercice 1 : voici ma version d'un programme de conversion de degré Celsius en degré Fahrenheit.

 1 
 2 
 3 
 4 
temp_celsius = float(input("Veuillez saisir en température en degré Celsius : "))
temp_fahrenheit = temp_celsius * 9 / 5 + 32

print(temp_celsius, "°C =", temp_fahrenheit, "°F" )
Conversion de degré Celsius en degré Fahrenheit

Et voici les résultats produit par cet exemple de code.

$> python conversion.py
Veuillez saisir en température en degré Celsius : 10.5
10.5 °C = 50.9 °F
$> 

Exercice 2 : et voici ma version d'un programme de conversion de degré Fahrenheit en degré Celsius.

 1 
 2 
 3 
 4 
temp_fahrenheit = float(input("Veuillez saisir en température en degré Fahrenheit : "))
temp_celsius = (temp_fahrenheit - 32) * 5 / 9

print(temp_fahrenheit, "°F =", temp_celsius, "°C" )
Conversion de degré Fahrenheit en degré Celsius

Et voici les résultats produit par cet exemple de code.

$> python conversion.py
Veuillez saisir en température en degré Fahrenheit : 50.9
50.9 °F = 10.5 °C
$> 


Base binaire et opérations bit à bit Les chaînes de caractères