
- Python 基礎
- Python - 首頁
- Python - 概述
- Python - 歷史
- Python - 特性
- Python vs C++
- Python - Hello World 程式
- Python - 應用領域
- Python - 直譯器
- Python - 環境搭建
- Python - 虛擬環境
- Python - 基本語法
- Python - 變數
- Python - 資料型別
- Python - 型別轉換
- Python - Unicode 系統
- Python - 字面量
- Python - 運算子
- Python - 算術運算子
- Python - 比較運算子
- Python - 賦值運算子
- Python - 邏輯運算子
- Python - 位運算子
- Python - 成員運算子
- Python - 身份運算子
- Python - 運算子優先順序
- Python - 註釋
- Python - 使用者輸入
- Python - 數字
- Python - 布林值
- Python 控制語句
- Python - 控制流
- Python - 決策
- Python - if 語句
- Python - if else
- Python - 巢狀 if
- Python - Match-Case 語句
- Python - 迴圈
- Python - for 迴圈
- Python - for-else 迴圈
- Python - while 迴圈
- Python - break 語句
- Python - continue 語句
- Python - pass 語句
- Python - 巢狀迴圈
- Python 函式 & 模組
- Python - 函式
- Python - 預設引數
- Python - 關鍵字引數
- Python - 僅關鍵字引數
- Python - 位置引數
- Python - 僅位置引數
- Python - 可變引數
- Python - 變數作用域
- Python - 函式註解
- Python - 模組
- Python - 內建函式
- Python 字串
- Python - 字串
- Python - 字串切片
- Python - 修改字串
- Python - 字串連線
- Python - 字串格式化
- Python - 跳脫字元
- Python - 字串方法
- Python - 字串練習
- Python 列表
- Python - 列表
- Python - 訪問列表元素
- Python - 修改列表元素
- Python - 新增列表元素
- Python - 刪除列表元素
- Python - 迴圈遍歷列表
- Python - 列表推導式
- Python - 對列表排序
- Python - 複製列表
- Python - 合併列表
- Python - 列表方法
- Python - 列表練習
- Python 元組
- Python - 元組
- Python - 訪問元組元素
- Python - 更新元組
- Python - 解包元組
- Python - 迴圈遍歷元組
- Python - 合併元組
- Python - 元組方法
- Python - 元組練習
- Python 集合
- Python - 集合
- Python - 訪問集合元素
- Python - 新增集合元素
- Python - 刪除集合元素
- Python - 迴圈遍歷集合
- Python - 合併集合
- Python - 複製集合
- Python - 集合運算子
- Python - 集合方法
- Python - 集合練習
- Python 字典
- Python - 字典
- Python - 訪問字典元素
- Python - 修改字典元素
- Python - 新增字典元素
- Python - 刪除字典元素
- Python - 字典檢視物件
- Python - 迴圈遍歷字典
- Python - 複製字典
- Python - 巢狀字典
- Python - 字典方法
- Python - 字典練習
- Python 陣列
- Python - 陣列
- Python - 訪問陣列元素
- Python - 新增陣列元素
- Python - 刪除陣列元素
- Python - 迴圈遍歷陣列
- Python - 複製陣列
- Python - 反轉陣列
- Python - 對陣列排序
- Python - 合併陣列
- Python - 陣列方法
- Python - 陣列練習
- Python 檔案處理
- Python - 檔案處理
- Python - 寫入檔案
- Python - 讀取檔案
- Python - 重新命名和刪除檔案
- Python - 目錄
- Python - 檔案方法
- Python - OS 檔案/目錄方法
- Python - OS 路徑方法
- 面向物件程式設計
- Python - OOPs 概念
- Python - 類 & 物件
- Python - 類屬性
- Python - 類方法
- Python - 靜態方法
- Python - 建構函式
- Python - 訪問修飾符
- Python - 繼承
- Python - 多型
- Python - 方法重寫
- Python - 方法過載
- Python - 動態繫結
- Python - 動態型別
- Python - 抽象
- Python - 封裝
- Python - 介面
- Python - 包
- Python - 內部類
- Python - 匿名類和物件
- Python - 單例類
- Python - 包裝類
- Python - 列舉
- Python - 反射
- Python 錯誤 & 異常
- Python - 語法錯誤
- Python - 異常
- Python - try-except 塊
- Python - try-finally 塊
- Python - 丟擲異常
- Python - 異常鏈
- Python - 巢狀 try 塊
- Python - 使用者自定義異常
- Python - 日誌記錄
- Python - 斷言
- Python - 內建異常
- Python 多執行緒
- Python - 多執行緒
- Python - 執行緒生命週期
- Python - 建立執行緒
- Python - 啟動執行緒
- Python - 連線執行緒
- Python - 執行緒命名
- Python - 執行緒排程
- Python - 執行緒池
- Python - 主執行緒
- Python - 執行緒優先順序
- Python - 守護執行緒
- Python - 執行緒同步
- Python 同步
- Python - 執行緒間通訊
- Python - 執行緒死鎖
- Python - 中斷執行緒
- Python 網路程式設計
- Python - 網路程式設計
- Python - 套接字程式設計
- Python - URL 處理
- Python - 泛型
- Python 庫
- NumPy 教程
- Pandas 教程
- SciPy 教程
- Matplotlib 教程
- Django 教程
- OpenCV 教程
- Python 雜項
- Python - 日期 & 時間
- Python - 數學
- Python - 迭代器
- Python - 生成器
- Python - 閉包
- Python - 裝飾器
- Python - 遞迴
- Python - 正則表示式
- Python - PIP
- Python - 資料庫訪問
- Python - 弱引用
- Python - 序列化
- Python - 模板
- Python - 輸出格式化
- Python - 效能測量
- Python - 資料壓縮
- Python - CGI 程式設計
- Python - XML 處理
- Python - GUI 程式設計
- Python - 命令列引數
- Python - 文件字串
- Python - JSON
- Python - 傳送郵件
- Python - 擴充套件
- Python - 工具/實用程式
- Python - GUIs
- Python 高階概念
- Python - 抽象基類
- Python - 自定義異常
- Python - 高階函式
- Python - 物件內部
- Python - 記憶體管理
- Python - 元類
- Python - 使用元類進行超程式設計
- Python - 模擬和存根
- Python - 猴子補丁
- Python - 訊號處理
- Python - 型別提示
- Python - 自動化教程
- Python - Humanize 包
- Python - 上下文管理器
- Python - 協程
- Python - 描述符
- Python - 診斷和修復記憶體洩漏
- Python - 不可變資料結構
- Python 有用資源
- Python - 問答
- Python - 線上測驗
- Python - 快速指南
- Python - 參考
- Python - 速查表
- Python - 專案
- Python - 有用資源
- Python - 討論
- Python 編譯器
- NumPy 編譯器
- Matplotlib 編譯器
- SciPy 編譯器
Python - 字串
在 Python 中,字串是 Unicode 字元 的不可變序列。每個字元根據 Unicode 標準都有一個唯一的 數值。但是,整個序列即使所有字元都是數字,也沒有任何數值。為了區分字串與數字和其他識別符號,字元序列在其字面表示中包含在單引號、雙引號或三引號內。因此,1234 是一個數字(整數),但 '1234' 是一個字串。
建立 Python 字串
只要包含相同的字元序列,單引號、雙引號或三引號就沒有區別。因此,以下字串表示是等效的。
示例
>>> 'Welcome To TutorialsPoint' 'Welcome To TutorialsPoint' >>> "Welcome To TutorialsPoint" 'Welcome To TutorialsPoint' >>> '''Welcome To TutorialsPoint''' 'Welcome To TutorialsPoint' >>> """Welcome To TutorialsPoint""" 'Welcome To TutorialsPoint'
檢視以上語句,可以清楚地看到,Python 內部將字串儲存為包含在單引號中。
在舊版本中,字串在內部儲存為 8 位 ASCII,因此需要附加 'u' 以使其成為 Unicode。從 Python 3 開始,所有字串都以 Unicode 表示。因此,現在不再需要在字串後新增 'u'。
訪問字串中的值
Python 不支援字元型別;這些被視為長度為 1 的字串,因此也被視為子字串。
要訪問子字串,請使用方括號進行切片,並使用索引或索引來獲取子字串。例如 -
var1 = 'Hello World!' var2 = "Python Programming" print ("var1[0]: ", var1[0]) print ("var2[1:5]: ", var2[1:5])
當以上程式碼執行時,會產生以下結果 -
var1[0]: H var2[1:5]: ytho
更新字串
您可以透過將變數(重新)分配給另一個字串來“更新”現有字串。新值可以與其先前值相關,也可以是完全不同的字串。例如 -
var1 = 'Hello World!' print ("Updated String :- ", var1[:6] + 'Python')
當以上程式碼執行時,會產生以下結果 -
Updated String :- Hello Python
訪問我們的 Python - 修改字串 教程,以瞭解有關更新/修改字串的更多資訊。
跳脫字元
下表列出了可以使用反斜槓表示法表示的轉義或不可列印字元。
一個 跳脫字元 會被解釋;在單引號和雙引號字串中。
反斜槓表示法 | 十六進位制字元 | 描述 |
---|---|---|
\a | 0x07 | 響鈴或警報 |
\b | 0x08 | 退格鍵 |
\cx | Ctrl-x | |
\C-x | Ctrl-x | |
\e | 0x1b | Escape(轉義) |
\f | 0x0c | 換頁 |
\M-\C-x | Meta-Ctrl-x | |
\n | 0x0a | 換行 |
\nnn | 八進位制表示法,其中n的範圍是0到7 | |
\r | 0x0d | 回車 |
\s | 0x20 | 空格 |
\t | 0x09 | Tab(製表符) |
\v | 0x0b | 垂直製表符 |
\x | 字元x | |
\xnn | 十六進位制表示法,其中n的範圍是0到9、a到f或A到F |
字串特殊運算子
假設字串變數a儲存'Hello',變數b儲存'Python',則:
運算子 | 描述 | 示例 |
---|---|---|
+ | 連線 - 將運算子兩側的值連線起來 | a + b 將得到HelloPython |
* | 重複 - 建立新的字串,連線多個相同字串的副本 | a*2 將得到-HelloHello |
[] | 切片 - 獲取給定索引處的字元 | a[1] 將得到e |
[ : ] | 範圍切片 - 獲取給定範圍內的字元 | a[1:4] 將得到ell |
in | 成員關係 - 如果字元存在於給定字串中,則返回True | H in a 將得到1 |
not in | 成員關係 - 如果字元不存在於給定字串中,則返回True | M not in a 將得到1 |
r/R | 原始字串 - 抑制跳脫字元的實際含義。原始字串的語法與普通字串完全相同,除了原始字串運算子“r”,它位於引號之前。“r”可以是小寫(r)或大寫(R),並且必須放置在第一個引號標記的正前方。 | print r'\n' 輸出 \n,print R'\n' 輸出 \n |
% | 格式化 - 執行字串格式化 | 參見下一節 |
字串格式化運算子
Python 最酷的功能之一是字串格式化運算子 %。此運算子是字串獨有的,彌補了缺少 C 的 printf() 系列函式的不足。下面是一個簡單的示例:
print ("My name is %s and weight is %d kg!" % ('Zara', 21))
當以上程式碼執行時,會產生以下結果 -
My name is Zara and weight is 21 kg!
以下是可與 % 一起使用的完整符號列表:
序號 | 格式符號 & 轉換 |
---|---|
1 | %c 字元 |
2 | %s 在格式化之前透過 str() 進行字串轉換 |
3 | %i 帶符號十進位制整數 |
4 | %d 帶符號十進位制整數 |
5 | %u 無符號十進位制整數 |
6 | %o 八進位制整數 |
7 | %x 十六進位制整數(小寫字母) |
8 | %X 十六進位制整數(大寫字母) |
9 | %e 指數表示法(帶小寫“e”) |
10 | %E 指數表示法(帶大寫“E”) |
11 | %f 浮點實數 |
12 | %g %f 和 %e 中較短者 |
13 | %G %f 和 %E 中較短者 |
其他支援的符號和功能列在以下表格中:
序號 | 符號 & 功能 |
---|---|
1 | * 引數指定寬度或精度 |
2 | - 左對齊 |
3 | + 顯示符號 |
4 | <sp> 在正數前留一個空格 |
5 | # 新增八進位制前導零('0')或十六進位制前導'0x'或'0X',具體取決於是否使用了'x'或'X'。 |
6 | 0 用零(而不是空格)從左側填充 |
7 | % '%%' 將為您提供單個文字'%' |
8 | (var) 對映變數(字典引數) |
9 | m.n. m 是最小總寬度,n 是顯示小數點後數字的位數(如果適用)。 |
訪問我們的 Python - 字串格式化 教程,瞭解各種格式化字串的方法。
Python 字串中的雙引號
如果要將某些文字作為字串的一部分嵌入雙引號中,則字串本身應放在單引號中。要嵌入單引號文字,字串應寫成雙引號。
示例
var = 'Welcome to "Python Tutorial" from TutorialsPoint' print ("var:", var) var = "Welcome to 'Python Tutorial' from TutorialsPoint" print ("var:", var)
這將產生以下輸出:
var: Welcome to "Python Tutorial" from TutorialsPoint var: Welcome to 'Python Tutorial' from TutorialsPoint
三引號
要形成一個帶有三引號的字串,可以使用三個單引號或三個雙引號 - 兩個版本相似。
示例
var = '''Welcome to TutorialsPoint''' print ("var:", var) var = """Welcome to TutorialsPoint""" print ("var:", var)
這將產生以下輸出:
var: Welcome to TutorialsPoint var: Welcome to TutorialsPoint
Python 多行字串
三引號字串可用於形成多行字串。
示例
var = ''' Welcome To Python Tutorial from TutorialsPoint ''' print ("var:", var)
這將產生以下輸出:
var: Welcome To Python Tutorial from TutorialsPoint
字串的算術運算子
字串是非數值資料型別。顯然,我們不能對字串運算元使用算術運算子。在這種情況下,Python 會引發 TypeError。
print ("Hello"-"World")
執行上述程式時,將生成以下錯誤:
>>> "Hello"-"World" Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unsupported operand type(s) for -: 'str' and 'str'
獲取 Python 字串的型別
Python 中的字串是 str 類的物件。可以使用 type() 函式進行驗證。
示例
var = "Welcome To TutorialsPoint" print (type(var))
這將產生以下輸出:
<class 'str'>
內建字串方法
Python 包含以下內建方法來操作字串:
序號 | 方法及描述 |
---|---|
1 | capitalize()
將字串的首字母大寫。 |
2 | casefold()
將字串中的所有大寫字母轉換為小寫。類似於 lower(),但也可以處理 UNICODE 字元。 |
3 | center(width, fillchar)
返回一個用空格填充的字串,其中原始字串居中到總共 width 列。 |
4 | count(str, beg= 0,end=len(string))
計算 str 在字串中出現的次數,如果給定起始索引 beg 和結束索引 end,則計算其在字串的子字串中出現的次數。 |
5 | decode(encoding='UTF-8',errors='strict')
使用為 encoding 註冊的編解碼器解碼字串。encoding 預設為預設字串編碼。 |
6 | encode(encoding='UTF-8',errors='strict')
返回字串的編碼字串版本;如果出錯,預設情況下會引發 ValueError,除非 errors 與 'ignore' 或 'replace' 一起給出。 |
7 | endswith(suffix, beg=0, end=len(string))
確定字串或字串的子字串(如果給定起始索引 beg 和結束索引 end)是否以 suffix 結尾;如果這樣,則返回 true,否則返回 false。 |
8 | expandtabs(tabsize=8)
將字串中的製表符擴充套件為多個空格;如果未提供 tabsize,則預設為每個製表符 8 個空格。 |
9 | find(str, beg=0 end=len(string))
確定 str 是否出現在字串中或字串的子字串中(如果給定起始索引 beg 和結束索引 end),如果找到則返回索引,否則返回 -1。 |
10 | format(*args, **kwargs)
此方法用於格式化當前字串值。 |
11 | format_map(mapping)
此方法也用於格式化當前字串,唯一的區別是它使用對映物件。 |
12 | index(str, beg=0, end=len(string))
與 find() 相同,但如果未找到 str 則引發異常。 |
13 | isalnum()
如果字串至少包含 1 個字元,並且所有字元都是字母數字字元,則返回 true,否則返回 false。 |
14 | isalpha()
如果字串至少包含 1 個字元,並且所有字元都是字母字元,則返回 true,否則返回 false。 |
15 | isascii()
如果字串中的所有字元都來自 ASCII 字元集,則返回 True。 |
16 | isdecimal()
如果 Unicode 字串僅包含十進位制字元,則返回 true,否則返回 false。 |
17 | isdigit()
如果字串僅包含數字,則返回 true,否則返回 false。 |
18 | isidentifier()
檢查字串是否為有效的 Python 識別符號。 |
19 | islower()
如果字串至少包含 1 個大小寫字元,並且所有大小寫字元都為小寫,則返回 true,否則返回 false。 |
20 | isnumeric()
如果 Unicode 字串僅包含數字字元,則返回 true,否則返回 false。 |
21 | isprintable()
檢查字串中的所有字元是否都可列印。 |
22 | isspace()
如果字串僅包含空白字元,則返回 true,否則返回 false。 |
23 | istitle()
如果字串已正確“標題化”,則返回 true,否則返回 false。 |
24 | isupper()
如果字串至少包含一個大小寫字元,並且所有大小寫字元都為大寫,則返回 true,否則返回 false。 |
25 | join(seq)
將序列 seq 中元素的字串表示形式合併(連線)到一個字串中,並使用分隔符字串。 |
26 | ljust(width[, fillchar])
返回一個用空格填充的字串,其中原始字串左對齊到總共 width 列。 |
27 | lower()
將字串中的所有大寫字母轉換為小寫。 |
28 | lstrip()
刪除字串中所有前導空白。 |
29 | maketrans()
返回一個要在 translate 函式中使用的轉換表。 |
30 | partition()
在分隔符第一次出現的位置將字串拆分為三個字串元組。 |
31 | removeprefix()
刪除字首字串後返回字串。 |
32 | removesuffix()
刪除字尾字串後返回字串。 |
33 | replace(old, new [, max]) 將字串中所有出現的 old 替換為 new,或者如果給定 max,則最多替換 max 次出現。 |
34 | rfind(str, beg=0,end=len(string))
與 find() 相同,但在字串中向後搜尋。 |
35 | rindex( str, beg=0, end=len(string))
與 index() 相同,但在字串中向後搜尋。 |
36 | rjust(width,[, fillchar])
返回一個用空格填充的字串,其中原始字串右對齊到總共 width 列。 |
37 | rpartition()
在分隔符最後一次出現的位置將字串拆分為三個字串元組。 |
38 | rsplit()
從末尾拆分字串並返回子字串列表。 |
39 | rstrip()
刪除字串的所有尾隨空白。 |
40 | split(str="", num=string.count(str))
根據分隔符 str(如果未提供則為空格)拆分字串,並返回子字串列表;如果給定,則最多拆分為 num 個子字串。 |
41 | splitlines( num=string.count('\n'))
在所有(或 num)換行符處拆分字串,並返回每個行的列表,其中已刪除換行符。 |
42 | startswith(str, beg=0,end=len(string))
確定字串或字串的子字串(如果給定起始索引 beg 和結束索引 end)是否以子字串 str 開頭;如果這樣,則返回 true,否則返回 false。 |
43 | strip([chars])
對字串執行 lstrip() 和 rstrip()。 |
44 | swapcase()
反轉字串中所有字母的大小寫。 |
45 | title()
返回字串的“標題化”版本,即所有單詞都以大寫字母開頭,其餘為小寫。 |
46 | translate(table, deletechars="")
根據轉換表 str(256 個字元)轉換字串,刪除 del 字串中的那些字元。 |
47 | upper()
將字串中的小寫字母轉換為大寫。 |
48 | zfill (width)
返回用零從左側填充到總共 width 個字元的原始字串;用於數字,zfill() 保留給定的任何符號(減去一個零)。 |
字串的內建函式
以下是我們可以與字串一起使用的內建函式: