Python3學習筆記(五)【字元串】
字元串是
Python
中最常用的資料類型,可以使用
''
或者
""
來建立字元串。
name = "qfxl"
text = "Hello World"
Python通路字元串中的值
Python
不支援單字元類型,單字元在
Python
中也是作為一個字元串使用。
Python
通路字元串,使用
[]
來截取字元串。
name = "qfxl"
text = "Hello World"
print(name[]) # q
print(text[:]) # Hello
Python字元串更新
Python
可以截取字元串的一部分并與其它字段拼接。
text = "Hello World"
print(text[:] + "Python") # Hello Python
Python轉義字元
在需要在字元串中使用特殊字元時,
Python
使用
\
轉義字元。
轉義字元 | 描述 |
---|---|
\(在行尾時) | 續行符 |
\\ | 反斜杠符号 |
\’ | 單引号 |
\” | 雙引号 |
\a | 響鈴 |
\b | 倒退(Backspace) |
\e | 轉義 |
\000 | 空 |
\n | 換行 |
\v | 縱向制表符 |
\t | 橫向制表符 |
\r | 回車 |
\f | 換頁 |
\other | 其它的字元以普通格式輸出 |
Pytho字元串運算符
a = "Hello"
b = "Python"
操作符 | 描述 | 執行個體 |
---|---|---|
+ | 字元串拼接 | |
* | 重複輸出字元串 | |
[] | 通過索引擷取字元串中的字元 | |
[:] | 截取字元串中的一部分 | |
in | 成員運算符,如果字元串包含給定字元則傳回True | |
not in | 作用跟in相反 | |
r、R | 消除轉義符的作用 | |
% | 格式化字元串 | 見下文 |
Python字元串格式化
Python
支援格式化字元串的輸出,盡管這樣可能會用到非常複雜的表達式,但是基本的用法是将一個值插入到一個有字元串高師傅
%s
的字元串中,
Python
字元串格式化使用與
C
中的
printf
函數一樣的文法。
print("my name is %s , I am %d years old" % ("qfxl", ))
輸出:
my name is qfxl , I am 100 years old
符号 | 描述 |
---|---|
%c | 格式化字元及其ASCII碼 |
%s | 格式化字元串 |
%d | 格式化整數 |
%u | 格式化無符号整型 |
%o | 格式化無符号八進制數 |
%x | 格式化無符号十六進制數 |
%X | 格式化無符号十六進制數(大寫) |
%f | 格式化浮點數,可指定小數點後的精度 |
%e | 用科學計數法格式化浮點數 |
%E | 同上 |
%g | %f和%e的簡寫 |
%G | %F和%E的簡寫 |
%p | 用十六進制數格式化變量的位址 |
格式化操作符輔助指令。
符号 | 功能 |
---|---|
* | 定義寬度或者小數點精度 |
- | 用作左對齊 |
+ | 在整數前面顯示加号(+) |
| 在整數前面顯示空格 |
# | 在八進制數前面顯示零(‘0’),在十六進制前面顯示’0x’或者’0X’(取決于用的是’x’還是’X’) |
顯示的數字前面填充’0’而不是預設的空格 | |
% | ‘%%’輸出一個單一的’%’ |
(var) | 映射變量(字典參數) |
m.n. | m 是顯示的最小總寬度,n 是小數點後的位數(如果可用的話) |
Python2.6
開始,新增了一種格式化字元串的函數str.format(),它增強了字元串格式化的功能。
Python三引号
Python
三引号允許一個字元串跨多行,字元串中可以包含
換行符
、
制表符
以及其他的特殊字元。
sql = """
select * from user
where name = "qfxl"
"""
xxx.execute(sql)
_str = """ 多行字元串
這是一個制表符TAB[\t]
這是一個換行符[\n]
多行字元串結束
"""
print(_str)
輸出:
多行字元串
這是一個制表符TAB[ ]
這是一個換行符[
]
多行字元串結束
Unicode字元串
在
Python2
中,普通字元串是以8位
ASCII
碼進行存儲的,而
Unicode
字元則存儲為16位
unicode
字元串,這樣能夠表示更多的字元集,使用的文法是在字元串前面加上字首
u
。
在
Python3
中所有的字元串都是
Unicode
字元串。
Python的字元串内建函數
序号 | 方法及描述 |
---|---|
1 | capitalize()将字元串中第一個字元轉換為大寫。 |
2 | center(width, fillchar) 傳回一個指定的寬度 width 居中的字元串,fillchar 為填充的字元,預設為空格。 |
3 | count(str, beg= 0,end=len(string)) 傳回 str 在 string 裡面出現的次數,如果 beg 或者 end 指定則傳回指定範圍内 str 出現的次數。 |
4 | bytes.decode(encoding=”utf-8”, errors=”strict”) Python3 中沒有 decode 方法,但我們可以使用 bytes 對象的 decode() 方法來解碼給定的 bytes 對象,這個 bytes 對象可以由 str.encode() 來編碼傳回。 |
5 | encode(encoding=’UTF-8’,errors=’strict’) 以 encoding 指定的編碼格式編碼字元串,如果出錯預設報一個ValueError 的異常,除非 errors 指定的是’ignore’或者’replace’。 |
6 | endswith(suffix, beg=0, end=len(string)) 檢查字元串是否以 obj 結束,如果beg 或者 end 指定則檢查指定的範圍内是否以 obj 結束,如果是,傳回 True,否則傳回 False。 |
7 | expandtabs(tabsize=8) 把字元串 string 中的 tab 符号轉為空格,tab 符号預設的空格數是 8。 |
8 | find(str, beg=0 end=len(string)) 檢測 str 是否包含在字元串中,如果指定範圍 beg 和 end ,則檢查是否包含在指定範圍内,如果包含傳回開始的索引值,否則傳回-1。 |
9 | index(str, beg=0, end=len(string)) 跟find()方法一樣,隻不過如果str不在字元串中會報一個異常。 |
10 | isalnum() 如果字元串至少有一個字元并且所有字元都是字母或數字則返 回 True,否則傳回 False。 |
11 | isalpha() 如果字元串至少有一個字元并且所有字元都是字母則傳回 True, 否則傳回 False。 |
12 | isdigit() 如果字元串隻包含數字則傳回 True 否則傳回 False。 |
13 | islower() 如果字元串中包含至少一個區分大小寫的字元,并且所有這些(區分大小寫的)字元都是小寫,則傳回 True,否則傳回 False。 |
14 | isnumeric() 如果字元串中隻包含數字字元,則傳回 True,否則傳回 False。 |
15 | isspace() 如果字元串中隻包含空白,則傳回 True,否則傳回 False。 |
16 | istitle() 如果字元串是标題化的(見 title())則傳回 True,否則傳回 False。 |
17 | isupper() 如果字元串中包含至少一個區分大小寫的字元,并且所有這些(區分大小寫的)字元都是大寫,則傳回 True,否則傳回 False。 |
18 | join(seq) 以指定字元串作為分隔符,将 seq 中所有的元素(的字元串表示)合并為一個新的字元串。 |
19 | len(string) 傳回字元串長度。 |
20 | ljust(width[, fillchar]) 傳回一個原字元串左對齊,并使用 fillchar 填充至長度 width 的新字元串,fillchar 預設為空格。 |
21 | lower() 轉換字元串中所有大寫字元為小寫。 |
22 | lstrip() 截掉字元串左邊的空格或指定字元。 |
23 | maketrans() 建立字元映射的轉換表,對于接受兩個參數的最簡單的調用方式,第一個參數是字元串,表示需要轉換的字元,第二個參數也是字元串表示轉換的目标。 |
24 | max(str) 傳回字元串 str 中最大的字母。 |
25 | min(str) 傳回字元串 str 中最小的字母。 |
26 | replace(old, new [, max]) 把 将字元串中的 str1 替換成 str2,如果 max 指定,則替換不超過 max 次。 |
27 | rfind(str, beg=0,end=len(string)) 類似于 find()函數,不過是從右邊開始查找。 |
28 | rindex( str, beg=0, end=len(string)) 類似于 index(),不過是從右邊開始。 |
29 | rjust(width,[, fillchar]) 傳回一個原字元串右對齊,并使用fillchar(預設空格)填充至長度 width 的新字元串 。 |
30 | rstrip() 删除字元串字元串末尾的空格。 |
31 | split(str=”“, num=string.count(str)) num=string.count(str)) 以 str 為分隔符截取字元串,如果 num 有指定值,則僅截取 num 個子字元串。 |
32 | splitlines([keepends]) 按照行(‘\r’, ‘\r\n’, \n’)分隔,傳回一個包含各行作為元素的清單,如果參數 keepends 為 False,不包含換行符,如果為 True,則保留換行符。 |
33 | startswith(str, beg=0,end=len(string)) 檢查字元串是否是以 obj 開頭,是則傳回 True,否則傳回 False。如果beg 和 end 指定值,則在指定範圍内檢查。 |
34 | strip([chars]) 在字元串上執行 lstrip()和 rstrip()。 |
35 | swapcase() 将字元串中大寫轉換為小寫,小寫轉換為大寫。 |
36 | title() 傳回”标題化”的字元串,就是說所有單詞都是以大寫開始,其餘字母均為小寫(見 istitle()) 。 |
37 | translate(table, deletechars=”“) 根據 str 給出的表(包含 256 個字元)轉換 string 的字元, 要過濾掉的字元放到 deletechars 參數中。 |
38 | upper() 轉換字元串中的小寫字母為大寫。 |
39 | zfill (width) 傳回長度為 width 的字元串,原字元串右對齊,前面填充0。 |
40 | isdecimal() 檢查字元串是否隻包含十進制字元,如果是傳回 true,否則傳回 false。 |
3: http://www.runoob.com/python3/python3-string-center http://www.runoob.com/python3/python3-string-capitalize.html