[英]python equal strings are not equal with new line character in it
我有密碼。 它包含換行符(現在讓我們忽略為什么)字符並且是: “h2sdf\ndfGd”這個密碼在字典my_dict中。 當我只打印 dict 的值時,我得到 "\" 而不是 "" - "h2sdf\ndfGd" 。 不明白為什么,當我得到它並用它來驗證 web 服務器時。 它說身份驗證失敗:當我嘗試比較時:
my_dict["password"] == "h2sdf\ndfGd"
它返回False 。
但是當我嘗試print(my_dict["password"])我得到h2sdf\ndfGd這是相同的,但對於 python 它不是。 為什么? 我迷路了。
檢查這個:
>>> print("h2sdf\ndfGd")
h2sdf
dfGd
>>> print("h2sdf\\ndfGd")
h2sdf\ndfGd
您只需使用雙\
反斜杠轉義\n
即可,以防止它變成換行符。
無法在字符串中表示的制表符、換行符等字符使用帶反斜杠的轉義序列來描述。
為了表明反斜杠不是轉義序列( \n
、 \t
、...)的一部分,它本身必須使用另一個反斜杠進行轉義: \\
。
my_dict["password"] == "h2sdf\\ndfGd"
如果您不想轉義所有\
,則可以改用原始字符串。
原始字符串以r
或R
為前綴,並將反斜杠\
視為文字字符。
my_dict["password"] == r"h2sdf\ndfGd"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.