在 Python 中處理文本數據是使用 `str` 對象,也稱為`字元串類型`。 字元串是由 Unicode 碼位構成的不可變序列。 ...
您的“關註”和“點贊”,是信任,是認可,是支持,是動力......
如意見相佐,可留言。
本人必將竭盡全力試圖做到準確和全面,終其一生進行修改補充更新。
目錄
1 字元串類型概述
在 Python 中處理文本數據是使用 str
對象,也稱為字元串類型
。
字元串是由 Unicode 碼位構成的不可變序列。
簡單理解,若幹個字元(可以包含字母、標點、特殊符號、中文、日文等全世界的所有文字)的集合就是一個字元串。
字元串字面值有多種不同的寫法,如下所示:
- 單引號:
'允許包含有 "雙" 引號'
。 - 雙引號:
"允許包含有 '單' 引號"
。 - 三重引號:
'''三重單引號'''
,"""三重雙引號"""
。使用三重引號的字元串可以跨越多行,其中所有的空白字元都將包含在該字元串字面值中。
舉例如下所示:
'微信公眾號:碼農阿傑'
'微信公眾號:"碼農阿傑"' # 單引號允許包含雙引號
"CSDN 博客地址 https://blog.csdn.net/manongajie"
"CSDN 博客地址 'https://blog.csdn.net/manongajie'" # 雙引號允許包含單引號
'''
弱水三千,只取一瓢飲;
嬌玫萬朵,獨摘一枝憐。
'''
"""
滿天星斗,只見一顆芒;
人海茫茫,唯系你一人。
"""
2 處理字元串中的引號問題
2.1 分析字元串中的引號問題
當字元串內容中出現引號時(指的是字元串中出現的引號與定義字元串的引號相同),我們需要進行處理,否則 Python 解釋器會報錯。
舉例如下所示:
print('I'm CodeFarmer_Ajie')
運行結果:
print('I'm CodeFarmer_Ajie')
^
SyntaxError: invalid syntax
可以這麼理解,因為 Python 解釋器會把遇到的第一個單引號到再次遇到單引號之間的內容當做字元串,也就是說 Python 解釋器會將字元串中的單引號與第一個單引號配對,這樣就會把'I'
當成字元串,而後面的m CodeFarmer_Ajie''
就變成了多餘的內容,從而導致語法錯誤。
對於這種問題,我們有兩種處理方法,如下內容所示。
2.2 處理方法一:對引號進行轉義
在需要轉義的引號前添加轉義字元 \
即可。
舉例如下所示:
str_demo = 'I\'m CodeFarmer_Ajie'
print(str_demo)
運行結果:
I'm CodeFarmer_Ajie
2.3 處理方法二:使用不同的引號包含字元串
- 如果字元串內容中出現了單引號,那麼我們可以使用雙引號包圍字元串。
- 如果字元串內容中出現了雙引號,那麼我們可以使用單引號包圍字元串。
舉例如下所示:
str_demo1 = "I'm CodeFarmer_Ajie" # 如果字元串內容中出現了單引號,那麼我們可以使用雙引號包圍字元串。
str_demo2 = '英文雙引號為:"'
print(str_demo1)
print(str_demo2)
運行結果:
I'm CodeFarmer_Ajie
英文雙引號為:"
3 處理字元串的換行問題
Python 對程式的換行有嚴格的語法要求。
想要換行書寫一個比較長的字元串,必須在行尾添加反斜杠 \
。
舉例如下所示:
str_demo = '弱水三千,只取一瓢飲;\
嬌玫萬朵,獨摘一枝憐。'
print(str_demo)
運行結果:
弱水三千,只取一瓢飲; 嬌玫萬朵,獨摘一枝憐。
4 Python 長字元串
由三個雙引號"""
或者三個單引號'''
包圍的字元串,被稱為 Python 長字元串
。
簡單理解,長字元串,就是可以直接換行(不用加反斜杠\
)書寫的字元串。
當程式中有大段文本內容需要寫成字元串時,建議使用長字元串形式,因為長字元串形式非常強大,可以在字元串中放置任何內容,包括單引號和雙引號。
語法格式如下所示:
"""長字元串內容"""
'''長字元串內容'''
在《Python 註釋詳解》文章中有講到可以使用三個單引號或者三個雙引號對多行內容進行註釋,這其實就是 Python 的長字元串。如果長字元串沒有賦值給任何變數,那麼這個長字元串就不會起到任何作用,和一段普通的文本無異,相當於註釋(註意:Python 解釋器並不會忽略長字元串,同樣會按照語法解析,只不過長字元串沒有實際作用)。
5 Python 原始字元串
5.1 Python 原始字元串概述
在普通字元串或者長字元串的開頭加上 r
首碼,就變成了原始字元串。
在原始字元串中,反斜杠 \
不會被當作轉義字元,所有的內容都會保持原來的樣子。
格式如下所示:
str1 = r'原始字元串內容'
str2 = r"""原始字元串內容"""
舉例如下所示:
str_demo = r'D:\Data\Tools\Python382\python.exe'
print(str_demo)
運行結果:
D:\Data\Tools\Python382\python.exe
5.2 處理原始字元串中的引號問題
普通格式的原始字元串中如果出現了引號,是需要對引號進行轉義的。否則 Python 照樣無法對字元串的引號精確配對。
但是,又和普通字元串有所不同,此時用於轉義的反斜杠會變成字元串內容的一部分。
註意:Python 原始字元串中的反斜杠仍然會對引號進行轉義,因此原始字元串的結尾處不能有反斜杠,否則字元串結尾處的引號會被轉義,導致字元串不能正確結束。
舉例如下所示:
str_demo = r'I\'m CodeFarmer'
print(str_demo)
運行結果:
I\'m CodeFarmer
以上問題有兩種解決辦法:
- 第一種:改用長字元串的寫法,不要使用原始字元串。
- 第二種:單獨書寫反斜杠。
舉例如下所示:
# 列印 D:\Data\Tools\Python382\
str_demo = r'D:\Data\Tools\Python382''\\' # 字元串拼接
print(str_demo)
運行結果:
D:\Data\Tools\Python382\
6 Python 字元串常用方法詳解
請參見博文 《Python 字元串常用方法詳解》。