bin(integer)
intégré de Python la fonction prend un argument entier et renvoie une chaîne binaire avec le préfixe "0b"
. Si vous appelez le bin(x)
sur un x
non entier , il doit définir le __index__()
méthode qui retourne un entier associé à x
. Sinon, il lancera un TypeError: object cannot be interpreted as an integer
.
Argumentation | integer | Une valeur entière ou un objet implémentant le __index__() méthode. |
Valeur de retour | string | Renvoie une chaîne de nombres binaires, préfixée par "0b" . |
Input :bin(1)
Output :'0b1'
Input :bin(2)
Output :'0b10'
Input :bin(4)
Output :'0b100'
Input :bin(8)
Output :'0b1000'
Input :bin(42)
Output :'0b101010'
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
Exemples bin()
Le code suivant vous montre comment utiliser le bin()
fonction sur différents arguments d'entrée.
# Integer to Binary print(bin(8)) # 0b1000 # Integer to Binary print(bin(16)) # 0b10000 # Integer to Binary print(bin(129)) # 0b10000001 # Custom class to Binary class Lst: def __index__(self): return 129 x = Lst() print(bin(x)) # 0b10000001 # List to Binary? --> Error! print(bin([1, 2, 3])) # TypeError: 'list' object cannot be interpreted as an integer
Vous pouvez observer plusieurs propriétés du bin()
fonction :
- Il est toujours précédé de
'0b'
pour binaire . - Il renvoie une représentation sous forme de chaîne de l'entier converti en binaire.
- Si vous réussissez un
object
d'une classe implémentant le__index__
méthode retournant un entier,bin(object)
renvoie le binaire associé à la valeur renvoyée. - Si vous passez un objet d'une classe n'implémentant pas le
__index__
méthode, il lancera unTypeError: object cannot be interpreted as an integer
Python bin() sans préfixe "0b"
Pour ignorer le préfixe, utilisez le découpage en tranches et commencez par l'index 2 sur la chaîne binaire. Par exemple, pour ignorer le préfixe '0b'
sur le résultat de x=bin(2)='0b10'
, utilisez l'opération de découpage x[2:]
qui donne juste le nombre binaire '10'
sans le préfixe '0b'
.
Voici quelques exemples :
>>> bin(2) '0b10' >>> bin(2)[2:] '10' >>> x = bin(42) >>> x '0b101010' >>> x[2:] '101010'
Les méthodes inférieures sont basées sur le format()
de Python fonction :
>>> format(14, '#b'), format(14, 'b') ('0b1110', '1110') >>> f'{14:#b}', f'{14:b}' ('0b1110', '1110')
Remplissage Python bin()
Problème :Comment convertir un entier en binaire en utilisant la fonction bin() mais sans supprimer les zéros non significatifs. Par exemple, le résultat doit toujours avoir une longueur de 8 bits :
bin(2) -> 0b10 # What you want: bin(2) -> 0b00000010
Comment y parvenir ?
Solution :Utilisez le format()
pour définir le format exact dont vous avez besoin.
>>> format(14, '#010b') '0b00001110'
Le format()
La fonction vous permet d'utiliser le langage FSML (Format Specification Mini Language). Passons de gauche à droite sur les symboles de l'argument FSML.
- Utilisez le hashtag
#
pour inclure le0b
préfixe. - Utilisez le
0
caractère de format pour définir le caractère de remplissage. - Utilisez le
10
size formate la sortie pour tenir dans une largeur de 10 caractères. Deux de ces 10 caractères sont pour le'0b'
préfixe, de sorte que 8 bits restent dans la chaîne binaire. - Utilisez le
b
caractère de format pour formater le résultat en binaire.
Résumé
bin(integer)
intégré de Python la fonction prend un argument entier et renvoie une chaîne binaire avec le préfixe "0b"
.
Si vous appelez le bin(x)
sur un x
non entier , il doit définir le __index__()
méthode qui retourne un entier associé à x
.
Sinon, il lancera un TypeError: object cannot be interpreted as an integer
.
Un exemple est l'appel bin(3)
qui se traduit par la chaîne binaire '0b11'
car le nombre binaire de décimal 3
est binaire 11
.