如何在字符串中以python打印单个反斜杠?

时间:2019-06-20 15:53:17

标签: python-3.x

在python(3x版)中

=SUMPRODUCT(--(RangeA < (RangeB + n))

'\' # this is error no doubt '\\' # this prints two backslashes ,i.e., '\\' r'\' # this also gives error 'anytext \ anytext' # gives 'anytext \\ anytext' r都尝试了两次,但没有用 试图转义转义字符R,即\,但没有成功enter image description here

2 个答案:

答案 0 :(得分:0)

如果我正确理解了您的问题,例如:print("\\")

答案 1 :(得分:0)

在IDLE(Python的集成开发和学习环境)中,表达式值将其 表示形式 呼应到stdout。

https://docs.python.org/3/library/idle.html所述:

  

repr函数用于表达式值的交互式回显。   它返回输入字符串的更改版本,其中控制   代码,一些BMP代码点和所有非BMP代码点被替换   带有转义码。

如果要打印字符串,请使用print()函数。否则,您将得到它的表示形式

考虑以下输入到IDLE中的代码:

>>> hitman_str = "Agent \ 47"
>>> print(hitman_str) # We see only one slash when using print
Agent \ 47
>>> hitman_str # This shows the representation, which shows two slashes
'Agent \\ 47'
>>> print(repr(hitman_str)) # Same as above
'Agent \\ 47'

有多种方法获得只有一个斜杠的字符串:

single_slash1 = "\\"
>>> print(single_slash1)
\
>>> single_slash2 = "\ "[0]
>>> print(single_slash2)
\
>>> single_slash1 == single_slash2
True

类似地,有多种方法来获取带有两个连续斜杠的字符串:

>>> two_slashes1 = "\\\\"
>>> print(two_slashes1)
\\
>>> print(repr(two_slashes1))
'\\\\'
>>> two_slashes1
'\\\\'
>>> len(two_slashes1)
2
>>> two_slashes2 = r"\\"
>>> print(two_slashes2)
\\
>>> print(repr(two_slashes2))
'\\\\'
>>> two_slashes2
'\\\\'
>>> len(two_slashes2)
2

我们可以确认hitman_str仅带有一个斜杠:

>>> hitman_str.count(single_slash1)
1

我们可以遍历字符串并打印每个字符及其Unicode代码点。 如预期的那样,仅显示一个斜杠:

>>> for char in hitman_str:
    print(char, ord(char))


A 65
g 103
e 101
n 110
t 116
  32
\ 92
  32
4 52
7 55

原始字符串非常方便,尤其是对于Windows路径,如果您不想使用os.pathpathlib

>>> filename = r"C:\Users\Lee Hong\Documents\New Letters\Impatient 1999-06-14.txt" # Works fine
>>> filename = "C:\Users\Lee Hong\Documents\New Letters\Impatient 1999-06-14.txt" # Error
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
>>> raw_str = r"This \\\has \11 \\slashes \\and \no \line \break"
>>> print(raw_str)
This \\\has \11 \\slashes \\and \no \line \break
>>> raw_str.count(single_slash1)
11

有关更多信息,包括要注意的转义序列列表,请参阅https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals