python中字符串前面加f、r、u、b區別 || python轉義字符


1.字符串前加 u:后面字符串以 unicode 格式進行編碼(表示中文),一般用在中文字符串前面,防止因為源碼儲存格式問題,導致再次使用時出現亂碼。

【不是僅僅是針對中文, 可以針對任何的字符串,代表是對字符串進行unicode編碼。一般英文字符在使用各種編碼下, 基本都可以正常解析, 所以一般不帶u;但是中文, 必須表明所需編碼, 否則一旦編碼轉換就會出現亂碼。 建議所有編碼方式采用utf8】

使用場景:一般用在中文字符串前面,防止因為源碼儲存格式問題,導致再次使用時出現亂碼。

 

2.字符串前加 r:在字符串前加r可防止字符串轉義

 r"" 的作用是:去除轉義字符

①字符串常量,在字符串前加r

場景:想復制某個文件夾的目錄,假設是 F:\Python_Easy\n4\test.py 

當不用 r"" ,有三種寫法:

print("F:\Python_Easy\n4\test.py ")
print("F:\\Python_Easy\\n4\\test.py ")
print("F:/Python_Easy/n4/test.py ")

運行結果:

F:\Python_Easy
4    est.py 
F:\Python_Easy\n4\test.py 
F:/Python_Easy/n4/test.py 

而通常如果直接復制目錄路徑的話,你就粘貼出來的字符串就是第一行代碼所示,所有 \ 會當成轉義符;而為了消除轉義作用,需要手動再加一個 \ ,否則你也得手動改成何第三行代碼一樣。

而 r"" 的出現就是為了避免這種情況。

②如果字符串是從文件中讀取,則在讀取時加r

   例如:有文件   test.txt中有                            adfdfasd\tfdsadf\t                   E:\codes
 
              則代碼可以這么寫:
 
            file1=open(r"text.txt","r")
 
            for line in file1:
 
                   print(line)
 
         結果為:
 
                  adfdfasd\tfdsadf\t                   E:\codes

 

3.字符串前加 b:b" "前綴表示:后面字符串是bytes類型【 b' ' 表示后面的字符串是bytes 對象】。

網絡編程中,服務器和瀏覽器只認bytes 類型數據。

在 Python3 中,bytes 和 str 的互相轉換方式:

str--->bytes:【str.encode('utf-8')】
bytes--->str:【bytes.decode('utf-8')】

舉例:

print("中文".encode(encoding="utf-8"))
print(b'\xe4\xb8\xad\xe6\x96\x87'.decode())
print(r'\xe4\xb8\xad\xe6\x96\x87')

運行結果:

b'\xe4\xb8\xad\xe6\x96\x87'
中文
\xe4\xb8\xad\xe6\x96\x87

可以看到,當你不加 b"" 時,他也就是個普通的字符串而已,不會識別為字節類型。

bytes數據類型應用場景:像圖片、音視頻等文件的讀寫就是用bytes數據。

 

4.字符串前加 f:以f開頭表示在字符串內支持大括號內的python 表達式

作用:相當於 format 函數。

例如:

name = "帥哥"
age = 12
print(f"my name is {name},age is {age}")

運行結果:

my name is 帥哥,age is 12

 

 

轉義字符 描述
\(在行尾時) 續行符
\\ 反斜杠符號
\' 單引號
\" 雙引號
\a 響鈴
\b 退格(Backspace)
\e 轉義
\000
\n 換行
\v 縱向制表符
\t 橫向制表符
\r 回車
\f 換頁
\oyy 八進制數yy代表的字符,例如:\o12代表換行
\xyy 十進制數yy代表的字符,例如:\x0a代表換行
\other 其它的字符以普通格式輸出


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM