在Python中,当我使用反斜杠打印字符串时,它只打印一次反斜杠:
>>> print(r'C:\hi')
C:\hi
>>> print('C:\\hi')
C:\hi
但是我注意到当你用反斜杠打印一串字符串时,它会打印一个双反斜杠:
>>> print((r'C:\hi', 'C:\\there'))
('C:\\hi', 'C:\\there')
为什么打印元组时它的行为会有所不同?
(注意,这在Python 2和3以及Windows和Linux中都会发生。)
答案 0 :(得分:4)
当您打印元组(或列表或许多其他类型的项目)时,representation (repr()
) of the contained items is printed而不是字符串值。对于更简单的类型,表示通常是您必须键入Python以获取值的方式。这使您可以更容易地区分容器中的项目与分隔它们的标点符号,还可以识别它们的类型。 (想一想:(1, 2, 3)
是三个整数的元组,还是字符串"1, 2"
和整数3
的元组 - 或其他一些值的组合?)
要查看任何字符串的repr()
:
print(repr(r'C:\hi'))
在交互式Python提示符下,只需指定任何值(或变量或表达式)即可打印其repr()
。
要将元组的内容打印为常规字符串,请尝试以下操作:
items = (r'C:\hi', 'C:\\there')
print(*items, sep=", ")
str.join()
也很有用,特别是当你不打印而是构建一个字符串时,你将在以后用它来做其他事情:
text = ", ".join(items)
但是,项目必须已经是字符串(join
需要这个)。如果他们不是所有字符串,您可以这样做:
text = ", ".join(map(str, items))