Comment obtenir la valeur ASCII d'un caractère en tant qu'int int Python?Valeur ASCII d'un caractère en Python
Répondre
De here:
ord fonction() obtiendrait la valeur int de l'omble chevalier. Et dans le cas où vous voulez convertir revenir après avoir joué avec le nombre , la fonction chr() fait l'affaire.
>>> ord('a')
97
>>> chr(97)
'a'
>>> chr(ord('a') + 3)
'd'
>>>
En Python 2, il y a aussi la fonction unichr
, renvoyant le caractère Unicode dont ordinal est l'argument unichr
:
>>> unichr(97)
u'a'
>>> unichr(1234)
u'\u04d2'
En Python 3, vous pouvez utiliser chr
au lieu de unichr
.
Vous recherchez:
ord()
Notez que ord() ne vous donne pas la valeur ASCII en soi; il vous donne la valeur numérique du caractère quel que soit son encodage. Par conséquent, le résultat de ord ('ä') peut être 228 si vous utilisez Latin-1, ou il peut déclencher une erreur TypeError si vous utilisez UTF- 8. Il peut même retourner le point de code Unicode au lieu si vous passez un unicode:
>>> ord(u'あ')
12354
Comment pouvez-vous savoir quel encodage vous utilisez dans une situation donnée? – Moustache
La réponse acceptée est correcte, mais il y a une façon plus intelligente/efficace de le faire si vous avez besoin de convertir un tas de ASCII caractères à leurs codes ASCII à la fois. Au lieu de faire:
for ch in mystr:
code = ord(ch)
ou légèrement plus rapide:
for code in map(ord, mystr):
vous convertir en Python types natifs qui itérera les codes directement. Le Python 3, il est trivial:
for code in mystr.encode('ascii'):
et Python 2.6/2.7, il est seulement un peu plus impliqué parce qu'il ne dispose pas d'un objet de style bytes
PY3 (bytes
est un alias pour str
, qui le compare par caractère) , mais ils ont bytearray
:
# If mystr is definitely str, not unicode
for code in bytearray(mystr):
# If mystr could be either str or unicode
for code in bytearray(mystr, 'ascii'):
Encoding comme un type natif itère par des moyens ordinale la conversion va beaucoup plus vite; dans les tests locaux sur les deux Py2.7 et Py3.5, itérer un str
pour obtenir ses codes ASCII en utilisant map(ord, mystr)
commence prendre environ deux fois plus long pour un que d'utiliser bytearray(mystr)
sur py2 ou mystr.encode('ascii')
sur AP3, et que le str
obtient plus longtemps, le multiplicateur payé pour map(ord, mystr)
s'élève à ~ 6,5x-7x.
Le seul inconvénient est que la conversion est tout à la fois, de sorte que votre premier résultat pourrait prendre un peu plus, et un str
vraiment énorme aurait un bytes
/bytearray
proportionnellement important temporaire, mais à moins que cela vous oblige à raclée page, Ce n'est pas important.
- 1. Comment convertir une valeur ASCII en un caractère dans .NET
- 2. Caractère non ASCII en PHP?
- 3. Conversion de décimal en caractère ASCII
- 4. fopen non-ascii caractère erreur
- 5. Valeur ASCII pour rien
- 6. Comment créer une chaîne ou un caractère à partir d'une valeur ASCII en JavaScript?
- 7. Capitalisation de mots non-ASCII en Python
- 8. Valeur ASCII de sortie C++
- 9. Comment puis-je convertir un caractère en nombre entier en Python et vice versa?
- 10. Existe-t-il une fonction qui renvoie la valeur ASCII d'un caractère? (C++)
- 11. C/C++: Comment convertir 6bit ASCII en 7bit ASCII
- 12. Bloc Unicode d'un caractère en python
- 13. Comment puis-je obtenir un type de chaîne d'une valeur hexadécimale qui représente un caractère de valeur ASCII supérieur
- 14. Comment écrire les valeurs hexadécimales d'un caractère en ASCII dans un fichier texte?
- 15. Effectuer une demande HTTP/HTTP POST simple en ASCII/UTF-8 en Python?
- 16. Comment convertir un caractère en valeur équivalente System.Windows.Input.Key Enum?
- 17. Remplacer le caractère Newline de Microsoft Word en Python
- 18. Interface Python à PayPal - urllib.urlencode caractères non-ASCII défaut
- 19. ASCII à DEC en PHP
- 20. python, regex split et caractère spécial
- 21. Comment convertir un format de fichier d'Unicode en ASCII en utilisant Python?
- 22. Comment convertir une liste de valeurs ascii en une chaîne en python?
- 23. CallableStatement setString - Caractère (s) non pris en charge?
- 24. valeur Python erreur déballage
- 25. Persistant valeur variable Python
- 26. Forcer C# à utiliser ASCII
- 27. Impression des caractères et de leur code ASCII dans C
- 28. Comment traiter une chaîne ASCII comme unicode et annuler l'échappement des caractères d'échappement en python?
- 29. comment convertir ascii en unsigned int
- 30. Comment convertir les IDN en ASCII?
qui codant en utilisant chr? – njzk2
@ njzk2: 'latin1' (ce qui n'est pas génial si votre octet d'origine était encodé en (cp1251') (cyrillique) –
Notez que chr agit aussi comme unichr dans Python 3. ' chr (31415) -> '窷' ' – William