Maison développement back-end Tutoriel Python Explication détaillée de la façon de faire en sorte que Python prenne en charge les types de fractions (en utilisant le module de fractions de la bibliothèque standard)

Explication détaillée de la façon de faire en sorte que Python prenne en charge les types de fractions (en utilisant le module de fractions de la bibliothèque standard)

Aug 11, 2017 pm 02:04 PM
python Fraction 类型

J'ai récemment rencontré le traitement des fractions au travail. J'ai recherché des informations pertinentes et j'ai découvert qu'il pouvait être implémenté à l'aide de la classe Fraction. L'article suivant vous présente donc principalement les informations pertinentes sur l'utilisation du module de fractions de la bibliothèque standard pour prendre en charge Python. types de fractions.Dans l'article L'introduction via un exemple de code est très détaillée, les amis dans le besoin peuvent s'y référer.

Préface

Vous n'aurez peut-être pas besoin de gérer les fractions souvent, mais lorsque vous le ferez, la classe Fraction de Python vous apportera beaucoup d'aide. . Cet article vous donnera une introduction détaillée à l'utilisation du module de fractions de la bibliothèque standard pour permettre à Python de prendre en charge les types de fractions, et de le partager pour votre référence et votre étude. Je ne dirai pas grand-chose ci-dessous, jetons un coup d'œil à l'introduction détaillée. :

module de fractions

le module de fractions prend en charge les types de fractions.

Classe Fraction

Cette classe est le cœur du module fractions. Elle hérite de la classe numbers.Rational et implémente toutes les méthodes de cette classe.

Le constructeur n'est pas compliqué :


class fractions.Fraction(numerator=0, denominator=1) 
class fractions.Fraction(int|float|str|Decimal|Fraction)
Copier après la connexion

Vous pouvez fournir à la fois un numérateur et un dénominateur au constructeur pour instancier la classe Fraction, mais les deux doivent être de type int ou numbers.Rational en même temps, sinon une erreur de type sera générée. Lorsque le dénominateur est 0, une exception ZeropisionError sera levée lors de l'initialisation.

Si un seul paramètre est fourni, les cinq types ci-dessus peuvent être utilisés pour l'initialisation. Lorsqu'il est initialisé avec une chaîne, le module fractions utilise la correspondance d'expressions régulières intégrée. Lors de l'initialisation avec des nombres à virgule flottante ou décimal, le module de fractions appellera as_integer_ratio() en interne.

L'exemple de code suivant est tiré de la documentation officielle, montrant différentes façons d'instancier Fraction :


>>> from fractions import Fraction
>>> Fraction(16, -10)
Fraction(-8, 5)
>>> Fraction(123)
Fraction(123, 1)
>>> Fraction()
Fraction(0, 1)
>>> Fraction('3/7')
Fraction(3, 7)
>>> Fraction(' -3/7 ')
Fraction(-3, 7)
>>> Fraction('1.414213 \t\n')
Fraction(1414213, 1000000)
>>> Fraction('-.125')
Fraction(-1, 8)
>>> Fraction('7e-6')
Fraction(7, 1000000)
>>> Fraction(2.25)
Fraction(9, 4)
>>> Fraction(1.1)
Fraction(2476979795053773, 2251799813685248)
>>> from decimal import Decimal
>>> Fraction(Decimal('1.1'))
Fraction(11, 10)
Copier après la connexion

Dénominateur limité

fractions.Fraction.limit_denominator(max_denominator=1000000)

Parfois, l'utilisation de nombres à virgule flottante ou décimaux comme données d'initialisation des instances Fraction peut rencontrer des problèmes d'erreur d'arrondi. Par exemple, le. L'exemple ci-dessus ne renvoie pas Fraction(1.1) lors de l'appel de Fraction(11, 10). À l'heure actuelle, la classe Fraction fournit une méthode d'instance limit_denominator() pour réduire cette erreur. Cette méthode visait à l'origine à obtenir une valeur approximative en limitant le dénominateur, mais elle rendait en réalité le résultat plus précis lorsque des erreurs d'arrondi se produisaient, comme dans l'exemple suivant :


>>> from fractions import Fraction
>>> Fraction(1.1)
Fraction(2476979795053773, 2251799813685248)
>>> Fraction(1.1).limit_denominator()
Fraction(11, 10)
Copier après la connexion

Utilisez Fraction pour les opérations arithmétiques, les opérations relationnelles et diverses autres opérations

Comme mentionné ci-dessus, la classe Fraction hérite de la classe numbers.Rational et implémente toutes les méthodes de cette classe. Par conséquent, la classe Fraction surcharge de nombreuses fonctions spéciales afin que ses instances puissent être directement utilisées pour diverses opérations arithmétiques.

Non seulement prend en charge les opérations arithmétiques, la classe Fraction prend également en charge les opérations relationnelles, les modules pickle, les modules de copie et les calculs de valeurs de hachage.


>>> from fractions import Fraction
>>> x = Fraction(1, 2)
>>> y = Fraction(1, 3)
>>> x + y
Fraction(5, 6)
>>> x - y
Fraction(1, 6)
>>> x * y
Fraction(1, 6)
>>> x / y
Fraction(3, 2)
>>> x ** 2
Fraction(1, 4)
>>> -x
Fraction(-1, 2)
>>> abs(x)
Fraction(1, 2)
>>> round(x)
0
>>> import math
>>> math.floor(x)
0
>>> math.ceil(x)
1
>>> x == y
False
>>> x > y
True
Copier après la connexion

Autres fonctions


fractions.Fraction.from_float(flt) 
fractions.Fraction.from_decimal(dec)
Copier après la connexion

Avant Python 3.2, la classe Fraction ne prenait pas en charge l'obtention d'instances en transmettant des nombres à virgule flottante et des décimales au constructeur. Au lieu de cela, les deux méthodes de classe ci-dessus sont fournies pour générer des instances en appelant les méthodes de classe. Ces deux méthodes de classe existent toujours dans la version actuelle (Python 3.6.1).


fractions.gcd(a, b)
Copier après la connexion

est utilisé pour calculer le plus grand diviseur commun. Cette fonction est obsolète après Python 3.5 et la recommandation officielle est d'utiliser math.gcd() .

Résumé

Il n'y a rien à résumer... Je peux seulement dire que Python est trop pratique... D'ailleurs, ceci le blog est en fait une fouille. Je suis bloqué depuis longtemps. Je n'avais pas compris une partie du code source auparavant, donc je ne l'ai pas encore publié. Haha, la série suivante d'apprentissage de bibliothèque standard continuera d'être mise à jour !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Le plan Python de 2 heures: une approche réaliste Le plan Python de 2 heures: une approche réaliste Apr 11, 2025 am 12:04 AM

Vous pouvez apprendre les concepts de programmation de base et les compétences de Python dans les 2 heures. 1. Apprenez les variables et les types de données, 2. Flux de contrôle maître (instructions et boucles conditionnelles), 3. Comprenez la définition et l'utilisation des fonctions, 4. Démarrez rapidement avec la programmation Python via des exemples simples et des extraits de code.

Python: Explorer ses applications principales Python: Explorer ses applications principales Apr 10, 2025 am 09:41 AM

Python est largement utilisé dans les domaines du développement Web, de la science des données, de l'apprentissage automatique, de l'automatisation et des scripts. 1) Dans le développement Web, les cadres Django et Flask simplifient le processus de développement. 2) Dans les domaines de la science des données et de l'apprentissage automatique, les bibliothèques Numpy, Pandas, Scikit-Learn et Tensorflow fournissent un fort soutien. 3) En termes d'automatisation et de script, Python convient aux tâches telles que les tests automatisés et la gestion du système.

Méthode de Navicat pour afficher le mot de passe de la base de données MongoDB Méthode de Navicat pour afficher le mot de passe de la base de données MongoDB Apr 08, 2025 pm 09:39 PM

Il est impossible de visualiser le mot de passe MongoDB directement via NAVICAT car il est stocké sous forme de valeurs de hachage. Comment récupérer les mots de passe perdus: 1. Réinitialiser les mots de passe; 2. Vérifiez les fichiers de configuration (peut contenir des valeurs de hachage); 3. Vérifiez les codes (May Code Hardcode).

Comment utiliser Aws Glue Crawler avec Amazon Athena Comment utiliser Aws Glue Crawler avec Amazon Athena Apr 09, 2025 pm 03:09 PM

En tant que professionnel des données, vous devez traiter de grandes quantités de données provenant de diverses sources. Cela peut poser des défis à la gestion et à l'analyse des données. Heureusement, deux services AWS peuvent aider: AWS Glue et Amazon Athena.

Comment démarrer le serveur avec redis Comment démarrer le serveur avec redis Apr 10, 2025 pm 08:12 PM

Les étapes pour démarrer un serveur Redis incluent: Installez Redis en fonction du système d'exploitation. Démarrez le service Redis via Redis-Server (Linux / MacOS) ou Redis-Server.exe (Windows). Utilisez la commande redis-Cli Ping (Linux / MacOS) ou redis-Cli.exe Ping (Windows) pour vérifier l'état du service. Utilisez un client redis, tel que redis-cli, python ou node.js pour accéder au serveur.

Comment lire la file d'attente redis Comment lire la file d'attente redis Apr 10, 2025 pm 10:12 PM

Pour lire une file d'attente à partir de Redis, vous devez obtenir le nom de la file d'attente, lire les éléments à l'aide de la commande LPOP et traiter la file d'attente vide. Les étapes spécifiques sont les suivantes: Obtenez le nom de la file d'attente: Nommez-le avec le préfixe de "Fitre:" tel que "Fitre: My-Quyue". Utilisez la commande LPOP: éjectez l'élément de la tête de la file d'attente et renvoyez sa valeur, telle que la file d'attente LPOP: My-Queue. Traitement des files d'attente vides: si la file d'attente est vide, LPOP renvoie NIL et vous pouvez vérifier si la file d'attente existe avant de lire l'élément.

Comment afficher la version serveur de redis Comment afficher la version serveur de redis Apr 10, 2025 pm 01:27 PM

Question: Comment afficher la version Redis Server? Utilisez l'outil de ligne de commande redis-Cli --version pour afficher la version du serveur connecté. Utilisez la commande Info Server pour afficher la version interne du serveur et devez analyser et retourner des informations. Dans un environnement de cluster, vérifiez la cohérence de la version de chaque nœud et peut être vérifiée automatiquement à l'aide de scripts. Utilisez des scripts pour automatiser les versions de visualisation, telles que la connexion avec les scripts Python et les informations d'impression.

Dans quelle mesure le mot de passe de Navicat est-il sécurisé? Dans quelle mesure le mot de passe de Navicat est-il sécurisé? Apr 08, 2025 pm 09:24 PM

La sécurité du mot de passe de Navicat repose sur la combinaison de cryptage symétrique, de force de mot de passe et de mesures de sécurité. Des mesures spécifiques incluent: l'utilisation de connexions SSL (à condition que le serveur de base de données prenne en charge et configure correctement le certificat), à la mise à jour régulièrement de NAVICAT, en utilisant des méthodes plus sécurisées (telles que les tunnels SSH), en restreignant les droits d'accès et, surtout, à ne jamais enregistrer de mots de passe.

See all articles