Python >> Tutoriel Python >  >> Python

Fonction Python int()

int(value) intégré de Python la fonction convertit l'argument value à un nombre entier. Par exemple, int('42') convertit la valeur de chaîne '42' dans le nombre entier 42 . Le int() fonction sur un argument flottant arrondit à l'entier le plus proche.

Argument value Un objet Python à convertir en nombre entier. L'objet valeur doit avoir un __int__() méthode qui renvoie le nombre entier associé—sinon un TypeError sera relevé.
base Un argument entier facultatif base définir la base du système numérique dans le value dispute. Si vous définissez la base, le value l'argument doit être une chaîne. Le base L'argument détermine comment l'argument de chaîne est interprété.
Valeur de retour int Renvoie un nombre entier après conversion de l'argument d'entrée value en utilisant son __int__() requis méthode pour la conversion.
Input : int('42')
Output : 42

Input : int('-42')
Output : -42

Input : int(0)
Output : 0

Input : int(3.41)
Output : 3

Input : int(3.51)
Output : 3

Input : int('101', base=2)
Output : 5

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

Arrondi Python int()

Le int(x) fonction sur une valeur flottante x arrondit à l'inférieur à l'entier le plus proche.

>>> int(3.41)
3
>>> int(3.51)
3
>>> int(3.9999)
3

Objet personnalisé Python int()

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

class Car:
    def __int__(self):
        return -1


porsche = Car()
print(int(porsche))
# -1

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

En parlant de ça…

Exception Python int()

Si vous passez un objet dans le int() fonction qui n'écrase pas le __int__() méthode—par exemple, une liste, un tuple ou un ensemble—Python renvoie une TypeError :

class Car:
    None


porsche = Car()
print(int(porsche))

Cela conduit au message d'erreur :

Traceback (most recent call last):
  File "C:\Users\...\code.py", line 6, in <module>
    print(int(porsche))
TypeError: int() argument must be a string, a bytes-like object 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 __int__(self):
        return -1


porsche = Car()
print(int(porsche))
# -1

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 int() fonction.

Listes :

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

Ensembles :

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

Dictionnaires :

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

Tuple :

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

Argument de base Python int()

Le int(value, base=10) la fonction a un argument facultatif base qui permet de définir la base du système numérique dans le value dispute. Si vous définissez la base, l'entrée doit être une chaîne. Le base L'argument détermine comment l'argument de chaîne est interprété. Par exemple, int('10', base=2) convertit la chaîne '10' —représentant un nombre binaire—à l'entier 2.

>>> int('10', base=2)
2

Résumé

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

Par exemple, int('42') convertit la valeur de chaîne '42' dans le nombre entier 42 .

>>> int('42')
42

Le int() fonction sur un argument flottant arrondit à l'entier le plus proche.

>>> int(3.99)
3

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


Post précédent
Prochain article