La leçon 7 est composée de trois parties, A, B, C qui peuvent être complétées dans n'importe quel ordre.
Jusqu'à présent, nous avons fait des calculs mathématiques en utilisant les opérateurs Python +
, -
, *
, /
et les fonctions max
et min
. Dans cette leçon, nous allons voir d'autres opérateurs et fonction et apprendre comment faire des calculs plus complexes.
Opérateurs Mathématiques
Nous avons déjà vu les opérateurs pour l'addition (a + b
), la soustraction (a - b
), la multiplication (a * b
) et la division (a / b
). Nous allons maintenant voir trois opérateurs supplémentaires:
- L'opérateur exponentiel
a ** b
calculeab
(a
multiplié par lui-mêmeb
fois). Par exemple,2 ** 3
donne8
(2×2×2). - L'opérateur division entière
a // b
calcule le "quotient" dea
divisé parb
et ignore le reste. Par exemple,14 // 3
donne4
. - L'opérateur modulo (ou reste)
a % b
calcule le reste de la division dea
parb
. Par exemple,14 % 3
donne2
.
L'opérateur modulo peut être utilisé pour de nombreuses tâches. On peut l'utiliser pour répondre à des questions comme:
- S'il est 10h maintenant, quelle heure sera-t-il dans 100 heures? (nécessite l'opération modulo 12)
- Est-ce que 2032 sera une année bissextile? (nécessite les opérations modulo 4, 100 et 400)
Vérifier les années bissextile est un exemple de test de divisibilité; dans le prochain exercice, nous vous demandons d'écrire un programme qui implémente un test de divisibilité en général.
Fonctions Mathématiques
Python peut calculer la plupart des fonctions mathématiques que l'on trouve sur une calculatrice scientifique:
sqrt(x)
calcule la recine carrée dex
.exp(x)
etlog(x)
sont les fonctions exponentielles et logarithme naturel.sin(x)
,cos(x)
,tan(x)
et les autres fonctions trigonométriques sont disponibles.pi
, la constante mathématique3.1415...
, est également inclue.
Quand Python utilise les fonctions trigonométriques, l'angle x doit être exprimé en radians, pas en degrés. |
Python propose un grand nombre de fonctions qui sont organisées en groupes appelés modules. Les fonctions ci-dessus appartienne au module math
. Avant de pouvoir utiliser un module, il faut l'importer comme indiqué dans l'exemple ci-dessous. Pour utiliser une fonction d'un module, vous devez taper le nom du module, suivi d'un point puis le nom de la fonction.
Mettre tout ensemble
Comme vous l'avez vu dans l'exercice précédent, vous pouvez construire des expressions mathématiques en combinant des opérateurs. Python évalue les opérateurs en utilisant la "priorité des opérations" que vous avez vu en cours de maths:
Parenthèses d'abord, ensuite Exposants, puis Division et Multiplication, et enfin Addition et Soustractions,
dont on peut se souvenir avec l'acronyme "PEDMAS". La division entière et le modulo appartiennent à la catégorie "Division et Multiplication". Par exemple, l'expression
3 * (1 + 2) ** 2 % 4est évaluée en calculant l'addition entre paranthèses (1+2 = 3), puis l'exposant (3 ** 2 = 9) , puis la multiplication (3 * 9 = 27), et enfin le modulo, qui donne le résultat final de 27 % 4 =
3
.
6 - 52 // 5 ** 2
Division entière de nombres négatifs: Les expressions a // b
et int(a / b)
sont les mêmes quand a
et b
sont positifs. Par contre, quand a
est negatif, a // b
utilise "l'arrondi au plus grand entier inférieur" et int(a / b)
utilise "l'abaissement à zàro ou troncature."
Entiers et Nombres à Virgule
Le résultat d'une expression mathématique est un nombre. Comme nous l'avons vu auparavant, chaque nombre est stocké avec comme deux types possibles: int
ou float
. Le type int
représente les entiers, positifs et negatifs, qui peuvent être aussi grands que vous le souhaitez.
Python n'accepte pas les nombres écrits sous la forme 1 000 000 ou 1,000,000 . Tapez 1000000 à la place. |
Le type float
représente les nombres décimaux. De la même manière qu'une calculatrice stocke 1/3
sous la forme de sa valeur approchée 0.33333333
, Python stocke également les nombres décimaux sous la forme de leur valeur approchée.
Comme Python utilise des valeurs approchées, certaines équations qui sont mathématiquement vraies ne le seront peut être pas en Python.
Il est donc important pour cette raison de garder une certaine tolérance pour ces approximations lorsque l'on compare des valeurs de type float . Par exemple, pour le "grader" interne utilisé pour ce site web, chaque sortie de type float est considérée comme correcte si elle est approximativement égale à la réponse attendue. |
Nous terminons avec quelques exercices.
Félicitations! Après avoir complétés ces exercices, vous êtes prêt pour la prochaine leçon.