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 | 其它的字符以普通格式輸出 |