[PYTHON] Le nombre est-il équivalent à un entier?

introduction

Les valeurs numériques telles que 1,23 et 34,5 sont de petits nombres, n'est-ce pas? Ce n'est pas un entier. 1.0 et 34.0 sont également fractionnaires, mais ils peuvent être appelés entiers.

Les fractions telles que 1/3 ne sont pas non plus des nombres entiers. Une fraction 3/3 peut être considérée comme un entier.

Ici, nous définissons un entier comme celui-ci. "En plus de 1 et 34, les nombres avec 0 après la virgule décimale comme 1,0 et 3,0 et les fractions avec la même molécule et le même dénominateur"

Dans cet article, nous verrons comment déterminer les littéraux fractionnaires ou fractionnaires, mais également entiers.

En premier lieu, quelle est la méthode d'expression des fractions?

Pour les entiers et les fractions purs, tout ce que vous avez à faire est de saisir un nombre dans la variable, comme indiqué ci-dessous.


a = 123
b = 123.4
print(a)
print(b)

# 123
# 123.4

Par contre, en ce qui concerne les fractions, si vous écrivez "1/4" comme ci-dessus, le processus de calcul sera effectué automatiquement, il ne pourra donc pas être exprimé. Par conséquent, nous utiliserons les fractions de bibliothèque standard de Python.

from fractions import Fraction

f = Fraction(1, 3)
print(f)

# 1/3

Fractions faciles à distinguer

Essayez de déterminer la fraction en utilisant la méthode is_integer ()

Pour les fractions, il peut être déterminé en utilisant la méthode is_integer ().

n = 1.23
print(n.is_integer())
# False

m = 1.00
print(m.is_integer())
# True

Essayez de déterminer la fraction en utilisant la méthode is_integer ()

Cependant, il ne peut pas être utilisé pour une représentation fractionnaire utilisant des fractions.


from fractions import Fraction

f = Fraction(1, 3)
print(f.is_integer())

# AttributeError: 'Fraction' object has no attribute 'is_integer'

Convertir des fractions en fractions et appliquer is_integer ()

Et si je ne peux pas utiliser la méthode is_integer () pour les fractions? Si vous convertissez le littéral défini comme une fraction en une fraction (type float), la méthode is_integer () devrait fonctionner correctement.

Un littéral défini comme une fraction est converti en une fraction en le divisant par ~~ 1.0. ~~ Veuillez préciser dans la section des commentaires Je l'ai changé pour être intuitif et facile à comprendre par l'approche de float (hoge).

En prenant en sandwich cette opération, il est possible de juger par la méthode is_integer ().

from fractions import Fraction

f = Fraction(1, 3)
g = float(f)

x = Fraction(3, 3)
y = float(x)

print(g)
print(y)
# 0.3333333333333333
# 1.0

print(g.is_integer())
print(y.is_integer())
# False
# True

Bonus: que faire si vous n'avez pas la méthode is_integer ()?

J'introduirai également une méthode de jugement de détour que je pensais à l'époque où je ne connaissais pas l'existence de is_integer.

** Si le nombre arrondi après la virgule décimale et le nombre arrondi après la virgule décimale correspondent, il est jugé comme un entier ** Nous aborderons sur la base de l'idée.

Par exemple, pour le nombre 1.1, arrondir après la virgule décimale donne 2. Au contraire, il vaut 1 s'il est arrondi après la virgule décimale. Ce n'est pas un entier car les nombres ne correspondent pas.

Si c'est 1.0, ce sera le même 1 qu'il soit arrondi vers le haut ou vers le bas, donc s'il s'agit d'un entier, c'est la raison.

Pour arrondir le point décimal, utilisez la méthode ceil () de la bibliothèque mathématique. En utilisant la méthode floor () de la bibliothèque mathématique pour la dévaluation, il est possible d'effectuer une telle détermination. Les fonctions suivantes sont également valides pour des fractions telles que 1.23.

from fractions import Fraction
import math


def isInteger(n):

    nx = math.ceil(n)
    ny = math.floor(n)

    return (nx == ny)


n = Fraction(1, 3)
m = Fraction(3, 3)

print(isInteger(n))
print(isInteger(m))
# False
# True

Recommended Posts

Le nombre est-il équivalent à un entier?
[Question] Dans la régression de forêt aléatoire de sk-learn, une erreur se produit lorsque le nombre de parallèles est défini sur -1.
Qu'est-ce qu'un algorithme? Introduction à l'algorithme de recherche] ~ Python ~
[Introduction à AWS] Le premier Lambda est Transcribe ♪
Une introduction à l'analyse de données à l'aide de Python - Pour augmenter le nombre de vues vidéo -
Comment identifier le numéro d'appel système ausyscall
Un article résumant les pièges accro au python
[Ruby on Rails] De la création de l'application au démarrage du serveur et quel est le numéro de port?
[Malédiction dimensionnelle] Si le nombre de capteurs est changé en ∞, une anomalie peut-elle être détectée?
Vérifiez si la chaîne est un nombre en python
Comment créer un article à partir de la ligne de commande
Comment connaître le numéro de port du service xinetd
Comment obtenir le nombre de chiffres en Python
Enregistrer le graphique dessiné par pyqtgraph dans une image
Déterminer si un attribut est défini dans l'objet
Pour faire l'équivalent de Ruby ObjectSpace._id2ref en Python
python (2) nécessite self car la méthode est une méthode d'instance
[Python] Pourquoi les ID des objets référencés sont les mêmes lorsque le même entier est affecté à différentes variables
[Pour les débutants] Je souhaite expliquer le nombre d’apprentissage d’une manière facile à comprendre.
Comment spécifier un nombre infini de tolérances dans le contrôle de validation d'argument numérique d'argparse
VisibleDeprecation Avertissement: l'utilisation d'un nombre non entier au lieu d'un entier entraînera une erreur dans le futur
La route vers Pythonista
La route vers Djangoist
Qu'est-ce qu'un itérateur?
Je veux initialiser si la valeur est vide (python)
Comment trouver le nombre optimal de clusters pour les k-moyennes
Résoudre le tri des nombres (équivalent au rang D de paiza) en Python
[python] Remplacez le nom du fichier image par un numéro de série
Comment manipuler le DOM dans iframe avec Selenium
Si un ingénieur est invité à organiser un banquet
Essayez d'améliorer la précision de l'estimation du nombre de Twitter
Code pour envoyer du courrier basé sur la liste de diffusion Excel
Comment augmenter le nombre d'images de jeux de données d'apprentissage automatique
Créons une spécification externe facile à gérer
Une introduction à l'API de socket moderne pour apprendre en C
Je souhaite mapper le code EDINET et le numéro de valeur
Changez la destination d'installation lorsque --user est ajouté à pip
L'histoire de la définition de la clé privée à 600 avec chmod
Y a-t-il un secret dans la fréquence des nombres de rapport de circonférence?