¿Cómo obtengo el valor ASCII de un carácter como int en Python?Valor ASCII de un personaje en Python
Respuesta
De here:
función ord() obtendría el valor int del carbón. Y en caso de que desee convertir de nuevo después de jugar con el número , la función chr() hace el truco.
>>> ord('a')
97
>>> chr(97)
'a'
>>> chr(ord('a') + 3)
'd'
>>>
En Python 2, existe también la función unichr
, volviendo el carácter Unicode cuyo ordinal es la unichr
argumento:
>>> unichr(97)
u'a'
>>> unichr(1234)
u'\u04d2'
En Python 3 se puede utilizar en lugar de chr
unichr
.
Usted ha buscado:
ord()
Tenga en cuenta que ord() no le da el valor ASCII per se; te da el valor numérico del personaje en cualquier codificación en la que esté. Por lo tanto, el resultado de ord ('ä') puede ser 228 si estás usando Latin-1, o puede generar un TypeError si estás usando UTF- 8. Incluso puede devolver el punto de código Unicode en su lugar si se le pasa un Unicode:
>>> ord(u'あ')
12354
¿Cómo puede saber qué codificación está usando en una situación dada? – Moustache
La respuesta aceptada es correcta, pero hay una manera más inteligente/eficiente de hacer esto si usted necesita para convertir un montón de ASCII caracteres a sus códigos ASCII a la vez. En vez de hacer:
for ch in mystr:
code = ord(ch)
o ligeramente más rápido:
for code in map(ord, mystr):
a convertir a los tipos nativos de Python que iteran directamente los códigos. En Python 3, es trivial:
for code in mystr.encode('ascii'):
y en Python 2.6/2.7, que es sólo un poco más complicado, ya que no tiene un estilo bytes
objeto AP3 (bytes
es un alias para str
, que itera por carácter) , pero tienen 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'):
codificación como un tipo que de forma nativa itera por ordinal significa la conversión va mucho más rápido; en las pruebas locales en los dos Py2.7 y Py3.5, se repite una str
para obtener sus códigos ASCII usando map(ord, mystr)
parte de tomar el doble de tiempo para una que el uso de bytearray(mystr)
en Py2 o mystr.encode('ascii')
en el AP3, y como el str
obtiene más tiempo, el multiplicador pagado por map(ord, mystr)
se eleva a ~ 6.5x-7x.
El único inconveniente es que la conversión es a la vez, por lo que su primer resultado podría tardar un poco más, y una verdaderamente enorme str
tendría un proporcionalmente grande temporal bytes
/bytearray
, pero a menos que esto le obliga a la página golear, esto no es probable que importe.
- 1. Valor ASCII del personaje en Ruby
- 2. ¿Cómo obtener el valor ascii del personaje en haskell?
- 3. ¿Cómo obtengo el valor int ASCII de un personaje en Cocoa?
- 4. ¿Cómo asignar un personaje usando datos ASCII?
- 5. Convierta cadena en valor ASCII python
- 6. ¿Cómo convertir el valor ASCII a un personaje en Objective-C?
- 7. ¿Valor entero de un personaje en rubí?
- 8. Cómo imprimir el valor ASCII de un personaje usando awk básico solamente
- 9. Cómo convertir un valor ASCII en un carácter en .NET
- 10. ¿Es 0x9B (155decimal) un personaje de control especial? ¿Por qué falta en las tablas ascii?
- 11. Gráfico ASCII de Python Dibujo
- 12. ¿Cómo convierto un código de personaje a un personaje?
- 13. ¿Cómo puedo determinar un carácter Unicode desde su nombre en Python, incluso si ese personaje es un personaje de control?
- 14. Cómo obtener el carácter para un valor de ascii dado
- 15. Reemplazar caracteres no ASCII de una cadena Unicode en Python
- 16. la conversión de un personaje en un valor numérico en I
- 17. Cómo manejar caracteres Unicode (no ASCII) en Python?
- 18. Obtener valor ASCII en la palabra de entrada
- 19. Javascript reemplazar un personaje con un espacio
- 20. ¿Convertir de cadena ASCII codificada en hexadecimal a ASCII simple?
- 21. cadena hexadecimal a este personaje en pitón
- 22. Mostrar el valor del punto de código Unicode de un personaje en Eclipse
- 23. El valor de retorno de un procedimiento almacenado obtiene el primer personaje sólo en ASP.NET
- 24. Generador de arte de texto a ASCII en Python
- 25. Como eliminar ascii extendido usando python?
- 26. ¿Cómo puedo convertir un carácter a un número entero en Python, y viceversa?
- 27. Cómo animar un personaje en 3D?
- 28. ¿Cómo excluir un personaje de un grupo regex?
- 29. script en Python para convertir de UTF-8 a ASCII
- 30. Inserción de un personaje a intervalos regulares en una lista
qué codificación en chr usar? – njzk2
@ njzk2: 'latin1' (que no es una cosa brillante que hacer si su byte original estaba codificado en (por ejemplo)' cp1251' (cirílico) –
Tenga en cuenta que chr también actúa como unichr en Python 3. 'chr (31415) -> '窷' '' – William