Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python场景问题_Python_Char_Hex_Unicode Escapes - Fatal编程技术网

Python场景问题

Python场景问题,python,char,hex,unicode-escapes,Python,Char,Hex,Unicode Escapes,我在Python3.2上工作了一整天,没有结果将整数转换成字符串形式“\x…”。当使用ascii转换或其他转换时,我得到“0x..”或“\\x..”,这对我来说不合适。 任何字节或unicode(“\u92”)使用“SyntaxError:(unicode错误)'UnicodeScape'编解码器无法解码位置0-2:转义序列中字符串结尾处的字节”添加操作结果 >>字节([92]) b'\\' >>>chr(92)+“x”+str(42) “\\x42” >>>str(十六进制(66)) “0x4

我在Python3.2上工作了一整天,没有结果将整数转换成字符串形式“\x…”。当使用ascii转换或其他转换时,我得到“0x..”或“\\x..”,这对我来说不合适。 任何字节或unicode(“\u92”)使用“SyntaxError:(unicode错误)'UnicodeScape'编解码器无法解码位置0-2:转义序列中字符串结尾处的字节”添加操作结果

>>字节([92])
b'\\'
>>>chr(92)+“x”+str(42)
“\\x42”
>>>str(十六进制(66))
“0x42”
>>>ascii(字节([255])。替换为(r“'b\”,“”)
文件“”,第1行
ascii(字节([255])。替换为(r“'b\”,“”)
^
SyntaxError:无效语法
>>>“\x”.encode('raw\u unicode\u escape')。decode('ascii')
文件“”,第1行
SyntaxError:(unicode错误)'UnicodeScape'编解码器无法解码转义序列中位置0-1:字符串结尾的字节

我很难读懂这个问题,但我相信这就是你想要做的

>>> aString = str('\\') + str(42)
>>> print aString
\42
如果你需要在\

>>> aString = str('\\') + 'x' + str(42)
>>> print aString
\x42
请注意,在
ascii(字节([255]).replace(r“'b\”,”)
中,
b
之后的
\
转义了以下
,这会导致
语法错误

尝试转义
\

>>>ascii(bytes([255])).replace(r"'b\\", "")
结果显示了两个斜杠,但字符串实际上只包含一个。这就是字符串的显示方式。如果
print
it,您将看到它真正包含的内容

>>> r"'b\"
SyntaxError: EOL while scanning string literal

原始字符串不允许以<代码> \/COD>结尾,因此可以使用<代码> \/COD>来跳出字符串中间的引用。不确定我是否同意Python设计的这一方面,但可以在

中找到更多信息。 您启动了一个转义序列,该序列将通过字符的十六进制数来识别字符,但后面没有十六进制数

关于第1点,也许这解释了你的困惑:

>>> chr(92) + "x" + str(42)
'\\x42'
>>> print(chr(92) + "x" + str(42))
\x42
哦,维

>>> b'\\x42'.decode('unicode-escape')
'B'

请举一个你想要的输入和输出的例子。从你的帖子很难看出你想做什么。你是说你想从数字42到“\x42”“?如果您想要的是
'\x42'
,那么它将被打印为
'B'
,因为它们是相同的东西。这只是我必须创建表示符号的字符串的机制的一部分,我相信下面的代码是一个解决方案。”。my_data=str(“0a”)#例如(chr(92)+“x”+my_data).encode(“utf8”).decode('unicode-escape')Re
r“'b\”
,原始字符串不能以单个反斜杠结尾,因为反斜杠“转义”了
,尽管它也包含在字符串中,所以
r“'b\”
打印为
'b>\“
@MRAB,谢谢。找到一个确凿的链接并将其添加到答案中。您再次发布了相同的代码。你是想再加一个反斜杠吗?我知道,但加两个反斜杠会产生一些奇怪的结果。我认为(chr(92)+“x”+我的_数据)、编码(“utf8”)、解码(“unicode-escape”)应该可以解决我的问题。谢谢。我相信这就是我一直在寻找的。+1就你的读心能力而言,它们比我的好。
>>> "\x"
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-1: end of string in escape sequence
>>> chr(92) + "x" + str(42)
'\\x42'
>>> print(chr(92) + "x" + str(42))
\x42
>>> b'\\x42'.decode('unicode-escape')
'B'