Python >> Tutoriel Python >  >> Python

Fonction Python float()

float(value) intégré de Python la fonction convertit l'argument value à un nombre flottant. Par exemple, float('42') convertit la valeur de chaîne '42' dans le nombre flottant 42.0 .

Argumentation value Un objet Python à convertir en nombre flottant. L'objet valeur doit avoir un __float__() méthode qui renvoie le nombre flottant associé—sinon un ValueError sera relevé.
Valeur de retour float Renvoie un nombre flottant après conversion de l'argument d'entrée value en utilisant son __float__() requis méthode pour la conversion.
>>> float('42')
42.0
>>> float('-42')
-42.0
>>> float('+1.42')
1.42
>>> float('   -11\n')
-11.0
>>> float('10e-3')
0.01
>>> float('+1E6')
1000000.0

Vidéo Python float()


Mais avant de continuer, je suis ravi de vous présenter mon nouveau livre Python Python One-Liners (Lien Amazon).

Si vous aimez les one-liners, vous allez adorer le livre. Il vous apprendra tout ce qu'il y a à savoir sur une seule ligne de code Python. Mais c'est aussi une introduction à l'informatique , science des données, apprentissage automatique et algorithmes. L'univers en une seule ligne de Python !

Le livre est sorti en 2020 avec l'éditeur de livres de programmation de classe mondiale NoStarch Press (San Francisco).

Lien :https://nostarch.com/pythononeliners

Objet personnalisé Python float()

Pour autoriser un objet personnalisé comme entrée du float(object) fonction, l'objet doit implémenter le __float__(self) dunder méthode qui renvoie une valeur flottante. En fait, le float(object) la fonction intégrée est sémantiquement équivalente au object.__float__() appel de fonction.

class Car:
    def __float__(self):
        return -3.21


porsche = Car()
print(float(porsche))
# -3.21

Dans l'exemple, vous créez une classe Car et implémenter le __init__(self) méthode qui renvoie toujours le flottant (par exemple, -3.21 ). Ainsi, vous pouvez passer un Car objet porsche dans le float() fonction et Python ne lève pas d'exception.

En parlant de ça…

Exception flottante Python()

Si vous passez un objet dans le float() fonction qui n'implémente pas le __float__() méthode—par exemple, une liste, un tuple ou un ensemble—Python lance un TypeError :

class Car:
    None


porsche = Car()
print(float(porsche))

Cela conduit au message d'erreur :

Traceback (most recent call last):
  File "C:\Users\finxter\...\code.py", line 6, in <module>
    print(float(porsche))
TypeError: float() argument must be a string or a number, not 'Car'

Pour corriger l'erreur, passez un objet convertible en entier ou implémentez votre propre __int__(self) méthode comme indiqué précédemment :

class Car:
    def __float__(self):
        return 42.42


porsche = Car()
print(float(porsche))
# 42.42

Notez que le même TypeError apparaît si vous essayez de convertir des listes, des ensembles, des dictionnaires ou des tuples en valeurs entières en utilisant le float() fonction.

Listes :

>>> float([1, 2, 3])
Traceback (most recent call last):
  File "<pyshell#28>", line 1, in <module>
    float([1, 2, 3])
TypeError: float() argument must be a string or a number, not 'list'

Ensembles :

>>> float({1, 2, 3})
Traceback (most recent call last):
  File "<pyshell#29>", line 1, in <module>
    float({1, 2, 3})
TypeError: float() argument must be a string or a number, not 'set'

Dictionnaires :

>>> float({'Alice': 23, 'Bob': 17})
Traceback (most recent call last):
  File "<pyshell#30>", line 1, in <module>
    float({'Alice': 23, 'Bob': 17})
TypeError: float() argument must be a string or a number, not 'dict'

Tuple :

>>> float((1, 2, 3))
Traceback (most recent call last):
  File "<pyshell#31>", line 1, in <module>
    float((1, 2, 3))
TypeError: float() argument must be a string or a number, not 'tuple'

Résumé

float(value) intégré de Python la fonction convertit l'argument value à un nombre flottant.

Par exemple, float('42') convertit la valeur de chaîne '42' dans le nombre flottant 42.0 .

>>> float('42')
42.0

Vous voulez continuer à améliorer vos compétences Python ? Consultez nos feuilles de triche Python gratuites :


Prochain article