pyplot python string ascii backslash control-characters

pyplot - title plt python



¿Por qué ''/ x'' no es válido en Python? (5)

Hay una tabla que enumera todos los códigos de escape y sus significados en la documentation .

Escape Sequence Meaning Notes /xhh Character with hex value hh (4,5)

Notas:

4. A diferencia del Estándar C, se requieren exactamente dos dígitos hexadecimales.
5. En una cadena literal, los escapes hexadecimales y octales denotan el byte con el valor dado; no es necesario que el byte codifique un carácter en el conjunto de caracteres de origen. En un literal Unicode, estos escapes denotan un carácter Unicode con el valor dado.

Estaba experimentando con ''/' caracteres, usando ''/ a / b / c ...'' solo para enumerar por mí mismo qué caracteres interpreta Python como caracteres de control, y para qué. Esto es lo que encontré:

/a - BELL /b - BACKSPACE /f - FORMFEED /n - LINEFEED /r - RETURN /t - TAB /v - VERTICAL TAB

La mayoría de los otros caracteres que probé, ''/ g'', ''/ s'', etc. simplemente evalúan la cadena de 2 caracteres de una barra invertida y el carácter dado. Entiendo que esto es intencional, y tiene sentido para mí.

Pero ''/ x'' es un problema. Cuando mi script llega a esta línea de origen:

val = "/x"

Yo obtengo:

ValueError: invalid /x escape

¿Qué tiene de especial ''/ x''? ¿Por qué se trata de manera diferente a los otros personajes no escapados?


No estás dando la secuencia de escape completa:

/ xhh ...

El valor hexadecimal hh, donde hh representa una secuencia de dígitos hexadecimales (''0'' - ''9'', y ''A'' - ''F'' o ''a'' - ''f''). Al igual que la misma construcción en ISO C, la secuencia de escape continúa hasta que se ve el primer dígito no hexadecimal. (ce) Sin embargo, el uso de más de dos dígitos hexadecimales produce resultados indefinidos. (La secuencia de escape ''/ x'' no está permitida en POSIX awk.)

De: http://www.gnu.org/software/gawk/manual/html_node/Escape-Sequences.html


/ x falta el carácter hexadecimal con el que desea hacer coincidir: / xnn -> / x1B


x se utiliza para definir (un byte) literales hexadecimales en cadenas, por ejemplo:

''/x61''

evaluará a ''a'', porque 61 es el valor hexadecimal de 97, que representa a en ASCII