我是Python的新手,我正在计算具有反斜杠()的字符串的校验和。我能够提出一个逻辑来计算校验和,但是该函数需要字符串以原始格式(r')来计算正确的校验和。但是,此函数将由另一个函数调用,并且我将无法手动将字符串转换为原始字符串。有人可以帮助我如何动态实现这一目标。
这是字符串:
raw_message1 = '=K+8\\\08|'
该字符串具有3个反斜杠,但是保存后仅显示2个,并且该字符串可能会再次发生变化,因此处理后进行替换无济于事。
当我打印结果时:
print(message1)
=K+8\ 8|
我需要的是保留一些反斜杠的东西。我不能选择其他任何字符,因为每个字符都有其自己的ASCII值,并且校验和会有所不同。我尝试了前面提到的所有其他选项,每种情况看到的结果都不一样。
答案 0 :(得分:1)
您可以这样定义字符串:
message1 = r'=K+8\\08|'
这应使message1字符串为原始格式。
让我知道这是否有帮助。我真的不明白您是手动转换为原始字符串并动态转换为什么意思。这是我目前能提供的最大帮助。
答案 1 :(得分:0)
所有r
前缀都是手动添加反斜杠,因此您不必这样做,它不会“神奇地”保留反斜杠,而是将其替换为双反斜杠,因此它们被解释为单反斜杠。
看下面的例子:
>>> s = r"\rando\\\mst\ri\ngo\\flet\ters"
>>> s
'\\rando\\\\\\mst\\ri\\ngo\\\\flet\\ters'
>>> print(s)
\rando\\\mst\ri\ngo\\flet\ters
>>>
该字符串实际上包含双反斜杠,并且在打印时会被解释为单反斜杠。