Coding for KidsCoding for Kids
Niveaux CréatifsDéfisGuide de l'Enseignant
Voter pour les fonctionnalités
Cours avancé de développement Python
Chapitre
>
Niveau

Modules mathématiques
Introduction au module de mathématiques

Objectif

Vérifiez les actes de propriété et les limites des terrains dans la ferme, vérifiez et calculez les chiffres en utilisant les fonctions du module math.

Dans le bureau situé à l'extrémité du bâtiment principal se trouve une archive de vieux plans du bâtiment et d'actes de propriété. Des projets d'agrandissement de la ferme vers l'est sont en cours, mais il est important de mettre de l'ordre dans toute la paperasse avant de décider d'examiner des plans de construction. Cela se fera en utilisant le module math de python.

import math

Comme le module statistiques précédemment, le module math comporte une collection de fonctions mathématiques que nous pouvons utiliser pour étendre la bibliothèque intégrée de python :

  • math.isnan(): Vérifie si la valeur entrée n'est pas un nombre

  • math.isinf(): Vérifie si la valeur entrée est un nombre infini

  • math.isfinite(): Vérifie si la valeur entrée est finie

  • math.prod(): Multiplie tous les arguments fournis

  • math.pow(): Prend deux arguments et renvoie la valeur du premier argument élevé à la puissance du deuxième argument.

  • math.trunc(): Tronque l'argument fourni, c'est-à-dire qu'il enlève la partie décimale d'un nombre à virgule flottante, le transformant en entier. (Ne réalise pas d'arrondi, il supprime simplement la décimale)

  • math.copysign(): Prend deux arguments, copie le signe (- ou +) du deuxième argument et l'applique au premier.

  • math.factorial(): Prend un argument et calcule le produit de ce nombre en le multipliant par chacun de ses prédécesseurs jusqu'à 1. Par exemple, si la valeur est 5, cela effectue : 5 x 4 x 3 x 2 x 1 et produit un résultat.

Nous allons utiliser ces fonctions pour examiner et consigner certaines données afin de préparer les projets de développement. Il existe trois constantes listes contenant des schémas pour la ferme nommées : red_schematics, green_schematics, blue_schematics. Ces schémas contiennent des valeurs non numériques et inutilisables, utilisez les fonctions math pour identifier les éléments et trouver les données utilisables afin que nous puissions les consigner.

Premièrement, rendez-vous à la marque X sombre sur le tapis rouge, et utilisez une boucle pour parcourir les éléments de la constante liste red_schematics afin d'identifier les éléments utilisables.

for x in red_schematics: y = math.isnan (float(x)) if y == True: player.speak("Not a Number") else: y = math.isinf(float(x)) if y == True: player.speak("Is infinite") else: player.speak(x)

La boucle parcourra tous les éléments de la liste, la fonction math.isnan() identifiera les entrées non numériques, et math.isinf() identifiera les valeurs infinies qui ne peuvent pas être utilisées pour la collecte de données. Créez une nouvelle liste nommée red_values et utilisez une compréhension de liste pour enlever les éléments indésirables en employant math.isfinite() pour les filtrer, de la manière suivante : red_values = [x for x in red_schematics if math.isfinite(float(x))].

Ensuite, additionnez tous les nombres grâce à la fonction math.prod() qui additionne tous les éléments présents dans la liste, comme ceci : red_values = math.prod(red_values).

Effectuez le même processus de filtrage sur les marques X sombres placées sur les tapis vert et bleu, en utilisant les constantes listes green_schematics et blue_schematics et en consolidant les éléments dans des listes nommées green_values et blue_values.

Rendez-vous à la marque X dorée, faites face au bureau et utilisez la fonction write() pré-écrite dans l'éditeur pour consigner les données du schéma utilisable. Une fois que tout est réuni, rendez-vous à la marque X claire et utilisez la fonction open() pour accéder à la pièce suivante.

Une fois dans la pièce suivante, vous trouverez quelques bureaux avec des actes de propriété et des coordonnées. Il est judicieux de consigner quelques données avant de passer à la vérification des nouvelles additions à la ferme dans la zone située de l'autre côté du pont. Rendez-vous à la marque X claire devant la caisse contenant des cartes, à côté du premier bureau, et utilisez la fonction read() pour acquérir les données d'index des actes de propriété.

Rendez-vous à la marque X sombre sur le tapis violet, créez une variable nommée purple_data et utilisez la fonction math.pow() pour multiplier les données acquises afin d'obtenir des informations sur les coordonnées. Élevez l'index à la puissance de 3, comme ceci : purple_data = math.pow( -index data- , 3 ), en veillant à ajouter les données d'index lues précédemment. Utilisez math.trunc() pour retirer la partie décimale de la variable, comme ceci : purple_data = math.trunc(purple_data). Une fois terminé, à la marque X, utilisez la fonction write() pré-écrite avec purple_data pour consigner les données stockées dans la variable.

Pour finaliser, rendez-vous à la marque X claire en face du meuble à dossiers situé à côté du bureau supérieur. Utilisez la fonction read() pour récupérer à nouveau les données d'index ; ces données doivent être décomposées afin de révéler davantage d'informations sur les coordonnées du terrain. Créez une variable nommée white_data pour stocker la valeur de données trouvée dans le fichier et une variable nommée sign pour stocker le nombre de signe trouvé dans le fichier. Rendez-vous à la marque X sombre sur le tapis blanc et utilisez la fonction math.copysign() en utilisant les deux variables créées comme arguments et assignez la valeur à white_data, comme ceci : white_data = math.copysign(white_data,sign).

Une fois cela terminé, avec white_data, utilisez math.factorial() pour multiplier l'index, convertissez white_data en entier et utilisez-le avec la fonction, de cette manière : white_data = math.factorial(int(white_data)). Utilisez la fonction write() pré-écrite pour consigner white_data afin de compléter le niveau.

Livre de Code