[英]How can I get a string with a single backslash in it?
當我寫print('\')
或print("\")
或print("'\'")
時, Python 不會打印反斜杠\
符號。 相反,它對前兩個錯誤並為第三個打印''
。 我應該怎么做才能打印反斜杠?
這個問題是關於生成一個包含單個反斜杠的字符串。 這特別棘手,因為它不能用原始字符串完成。 有關為什么這樣的字符串用兩個反斜杠表示的相關問題,請參閱為什么反斜杠出現兩次? . 要在其他字符串中包含文字反斜杠,請參閱using backslash in python (not to escape) 。
您需要通過在它前面加上另一個反斜杠來轉義反斜杠:
print("\\")
對於 Python 3 之前的版本:
print "\\"
\\
字符稱為轉義字符,它以不同的方式解釋其后的字符。 例如, n
本身只是一個字母,但是當您在它前面加上反斜杠時,它會變成\\n
,這是換行符。
正如您可能猜到的, \\
也需要進行轉義,因此它的功能不像轉義字符。 你必須……逃離逃離,本質上。
有關字符串文字,請參閱Python 3 文檔。
反斜杠需要用另一個反斜杠轉義。
print('\\')
你應該用另一個反斜杠\\
轉義它:
print('\\')
打印不涉及轉義的反斜杠的一種hacky 方法是將其字符代碼傳遞給chr
:
>>> print(chr(92))
\
嘗試:
>>> s = r'Tea\coffee'
>>> s
'Tea\\coffee'
>>> print(s)
Tea\coffee
>>> print("\\")
\
>>> len("\\")
1
Uses of escape character:
>>> print "\\"
output : \
print 'he\'s pythonic'
output : he's pythonic
"\" helps python to understand that in 'he\'s pythonic' , ['he's] not eol ..
您可以這樣做:
backslash = "\\"
print(backslash)
\\
print(fr"\{''}")
或者這個怎么樣
print(r"\ "[0])
為了完整起見:反斜杠也可以轉義為十六進制序列: "\x5c"
; 或短 Unicode 序列: "\"
; 或長 Unicode 序列: "\U0000005c"
。 所有這些都會產生一個帶有單個反斜杠的字符串,Python 會很高興地以其規范表示形式向您報告 - '\\'
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.