Estoy un poco confundido. En Python, ¿cuál es la diferencia entre una cadena binaria, una cadena de bytes, una cadena Unicode y una cadena simple antigua (str)? Estoy usando Python 2.6.Diferencia entre cadena binaria, cadena de bytes, cadena Unicode y una cadena ordinaria (str)
Respuesta
Depende de la versión de Python que esté utilizando.
En Python 2.x si escribe 'abc'
tiene el tipo str
pero esto significa una cadena de bytes. Si desea una cadena Unicode, debe escribir u'abc'
.
En Python 3.x si escribe 'abc'
, todavía tiene el tipo str
pero ahora esto significa que es una cadena de caracteres Unicode. Si desea una cadena de bytes, debe escribir b'abc'
. No está permitido escribir u'abc'
.
| 2.x | 3.x
--------+--------------------------+-----------------------
Bytes | 'abc' <type 'str'> | b'abc' <type 'bytes'>
Unicode | u'abc' <type 'unicode'> | 'abc' <type 'str'>
Gracias por eso. Para que lo entienda correctamente, básicamente la diferencia entre una cadena de bytes y una cadena común es que una cadena de bytes no puede contener caracteres Unicode. –
@Imran Azad: puede pensar en una cadena de bytes como una lista ordenada de bytes, es decir, enteros comprendidos entre 0 y 255 inclusive. Una cadena Unicode es una lista ordenada de caracteres Unicode (letras, números, signos de puntuación, minúsculos muñecos de nieve (☃), etc.). La confusión que creo proviene de Python 2.x tratando las cadenas de bytes como si fueran cadenas de caracteres. Eso casi funciona, excepto cuando empiezas a usar caracteres fuera del rango ASCII, te encuentras con problemas. –
Ah, ya veo, gracias. –
- 1. cadena de bytes frente a cadena unicode. Python
- 2. Diferencia entre Convert.ToDecimal (cadena) y Decimal.Parse (cadena)
- 3. Convertir cadena de unicode a cadena de bytes
- 4. Cadena Unicode y TStringStream
- 5. conseguir bytes de cadena Unicode en Python
- 6. Diferencia entre texto() y cadena()
- 7. string.decode() vs. Unicode (cadena)
- 8. ¿Cuál es la diferencia entre Convert.ToBoolean (cadena) y Boolean.Parse (cadena)?
- 9. Cadena Unicode eliminar char de la cadena
- 10. Convertir una cadena Unicode en una cadena ASCII de escape
- 11. Convertir cadena hexadecimal (hex) a una cadena binaria
- 12. ¿Cuál es la diferencia entre una cadena COM (BSTR) y una cadena .NET?
- 13. Ruby: crea una cadena de bytes
- 14. Obtenga la cantidad de bytes necesarios para una cadena Unicode
- 15. PHP construir una cadena Unicode?
- 16. Diferencia entre char a [] = "cadena"; char * p = "cadena";
- 17. Python: Crear una cadena Unicode
- 18. cadena de Python a Unicode
- 19. ¿Cuántos bytes tiene una cadena
- 20. ¿Cuántos bytes ocupará una cadena?
- 21. F #: En términos reales, ¿cuál es la diferencia entre una "cadena" y una "opción de cadena"?
- 22. cadena Unicode en XML
- 23. caracteres Unicode cadena
- 24. cadena de bytes python codificar y decodificar
- 25. Cadena vs cadena
- 26. Cadena binaria al número entero
- 27. diferencia de objeto "Cadena", y literal de cadena en JavaScript
- 28. ¿Cómo rellenar una cadena binaria con ceros?
- 29. Diferencia entre String.getBytes() y Bytes.toBytes (datos de cadena)
- 30. Cómo convertir una cadena codificada en hexadecimal a una cadena de bytes en Perl?
Debe especificar si está utilizando Python 2 o Python 3 porque hace una gran diferencia. –
¿Qué versión de Python estás usando? ¿Y dónde encontraste el término "cadena binaria" en el contexto de Python? –
@JohnY He actualizado la pregunta. –