簡體   English   中英

python 相等的字符串與其中的換行符不相等

[英]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"

如果您不想轉義所有\ ,則可以改用原始字符串。

原始字符串以rR為前綴,並將反斜杠\視為文字字符。

my_dict["password"] == r"h2sdf\ndfGd"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM