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.
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
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
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'
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
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