天天看點

Python3學習筆記(五)【字元串】Python3學習筆記(五)【字元串】

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"
           
操作符 描述 執行個體
+ 字元串拼接

print(a + b) # HelloPython

* 重複輸出字元串

print(a * 2) # HelloHello

[] 通過索引擷取字元串中的字元

print(a[1]) # e

[:] 截取字元串中的一部分

print(a[1: 4]) # ell

in 成員運算符,如果字元串包含給定字元則傳回True

print("e" in a) # True

not in 作用跟in相反

print("e" not in a) # False

r、R 消除轉義符的作用

print(R"\n") print(r"\n") (都将輸出\n)

% 格式化字元串 見下文

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 用十六進制數格式化變量的位址

格式化操作符輔助指令。

符号 功能
* 定義寬度或者小數點精度
- 用作左對齊
+ 在整數前面顯示加号(+)

<sp>

在整數前面顯示空格
# 在八進制數前面顯示零(‘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