在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中均会发生。)
当您打印一个元组(或列表,或许多其他种类的项目)时,将打印所包含项目的表示形式(repr()
),而不是字符串值。对于更简单的类型,通常需要使用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))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句