Question

Je suis nouveau à Python et je suis en train de lire certaines valeurs à partir d'un périphérique USB via pyusb. Eh bien, cela fonctionne maintenant, mais je suis tombé sur quelques problèmes: Lors de la lecture des données de l'appareil, pyusb a besoin d'un point final pour lire les données. Ce critère est identifié par une valeur hexadécimale. Si je lis les données comme ...

dev.read('\x81', ...)

... Je reçois une erreur "AttributeError: objet 'NoneType' n'a pas d'attribut 'bmAttributes'". Si je lis les données comme ...

dev.read(0x81, ...)

... cela fonctionne.

Ma question est simple: Quelle est la différence entre 0x81 et '\ x81'

?

: -)

Était-ce utile?

La solution

En Python 2.x, '\x81' est un bytestring qui se compose d'un seul octet avec la valeur 129. Vous pouvez également l'obtenir en appelant chr(129).

0x81 est un entier écrit en base 16, avec la valeur 129. Vous pouvez également l'obtenir en écrivant 129.

Autres conseils

\ x81 correspondent à un de caractères unicode l'une avec 81 code hexadécimal, 0x81 est une valeur hexadécimale valide.

La première est une chaîne de caractères avec une valeur hexadécimale particulier forcée dans la première position de caractère, le second est un nombre entier.

Il semble que l'appel API attend certainement un entier.

0x81 est l'envoi d'un nombre hexadécimal qui il demande, alors que « \ x81 » est l'envoi d'un chaîne de caractères. Voilà pourquoi la deuxième œuvres, l'espoir qui aide et est en fait ce que vous demandiez:)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top