如何将'符号添加到字符串

时间:2019-12-24 13:38:56

标签: python-3.x

我在之前的问题上有人帮助将十六进制转换为字符串,但是我希望输出的字符串用'包围 因此它返回'I0KB'而不是I0KB

我所拥有的:

with open('D:\new 4.txt', 'w') as f:
   f.write('if not (GetItemTypeId(GetSoldItem())==$49304B42) then\n')

def hex_match_to_string(m):
    return ''.join([chr(int(m.group(1)[i:i+2], 16)) for i in range(0, len(m.group(1)), 2)])
# ...
line = re.sub(r'\$((?:\w\w\w\w\w\w\w\w)+)', hex_match_to_string, line)
file_out.write(line)

输出:

  

如果不是(GetItemTypeId(GetSoldItem())== I0KB),那么

但我希望它输出

  

如果不是(GetItemTypeId(GetSoldItem())=='I0KB'),那么

并使用

def hex_match_to_string(m):
    return ''.join(',[chr(int(m.group(1)[i:i+2], 16)) for i in range(0, len(m.group(1)), 2)],')

...即使我读到join(a,b,c)是组合字符串的方式,也会给我一个语法错误。

预先感谢您的帮助,对不起,我对应该是一件容易的事情一无所知。

3 个答案:

答案 0 :(得分:0)

您可以在反斜杠字符后加上引号(\“或\'),这称为转义序列,Python会删除反斜杠,仅在字符串中加上引号。

答案 1 :(得分:0)

您不应将引号添加到传递给join参数中,而应用引号将join结果括起来:

return "'" + ''.join([chr(int(m.group(1)[i:i+2], 16)) for i in range(0, len(m.group(1)), 2)]) + "'"

答案 2 :(得分:0)

我认为区分在 double triple 引号之间的字符串是很重要的。有关第三个(所谓的文档字符串)的最常用用法,请参见answers here

虽然大多数时候您可以互换使用@available(iOS 13, *) class SceneDelegate: UISceneDelegate { } ",但是为了避免引号,您可以将它们一起使用:

'

您也可以使用两次双引号来使两者之间的任何双引号转义:

>>> print("''")
''
>>> print('"')
"

但是我建议不要使用最后一个选项,因为它不能总是按预期运行,例如,>>> print(""" " " "j""") " " "j 会引发错误。 (当然,您总是可以使用print(""""""")来转义任何特殊字符。)