00.Python字符串:一個有序的字符串的集合,用來存儲和表現給予文本的信息。python
01.常見字符串常量和表達式
s=' ' 空字符串
s="spam's" 雙引號和單引號相同
S=‘s\n\ta\x00m’ 轉移序列
s=""""" 三重引號字符串塊
s=r'\temp\spam' Raw字符串
s=b'spam'
s=u'spam'
s1+s2 合併
s * 3 重複
s[i] 索引、分片、求長度
s[i:j]
len(s)
"a %s parror" %kind 字符串格式化表達式
"a{0} parrot".format(kind) 字符串格式化方法
s.find('pa') 字符串方法調用:搜索
s.rstrip() 移除空格
s.replace('pa', 'xx') 替換
s.split(',') 用佔位符分隔
s.isdigit() 內容測試
s.lower() 小寫轉換
s.endswith('spam') 結束測試
s.encode('latin-1') Unicode編碼等
for x in S: print(x) 迭代,成員關係
'spam' in S
[c * 2 for c in S]
map(ord, S)git
02.零(空)字符串不會像C語言那樣去結束一個字符串。相反,pyhont在內存保持了一個整個字符串的長度和文本。事實上,Python沒有字符會結束一個字符串。這裏有一個徹底絕對的二進制轉義字符編碼的字符編碼的字符串正則表達式
03.path = r'C:\new\text.data'
r:表明raw,表明正則表達式編輯器
04.三重引號編寫多行字符串,當它出如今文件的特定地點時,被看成註釋同樣的字符串常量.這並不是只能使用三重引號的文本塊,可是它每每是能夠用做多行註釋的。函數
05.myjob = "hacker"工具
06.測試
07.具備數學思想的讀者有時會實現這裏有些不對稱:最左側的元素的偏移爲0,而最右側的元素的偏移爲1.唉,在python中是沒有所謂-0這樣的偏移啊。編碼
08.spa
09. S[i:j:k]--i:偏移, j:偏移範圍,k:步進code
10.爲了去掉換行字符經常土建採用line.rstrip方法,由於這個調用會留下沒有換行字符那行的最後一個字符,二這在一些文本編輯器工具中很經常使用的。
int():將字符串轉換爲數字表達式形式
str():將數字轉換爲字符串表達式形式
repr():也可以將一個對象轉換爲其字符串形式,然而這些返回的對象將做爲代碼的字符串,能夠從新建立對象。對於字符串來講,若是是使用print語句進行顯示的話,其結果須要引號括起來。
11.它將會運行一個包含了Python表達式代碼的字符串,並可以將一個字符串轉換爲任意類型的對象。
12.字符串還提供了一系列的方法去實現更復雜的文本處理任務。方法就是與特定的對象相關聯在一塊兒的函數。從技術的角度來說,他們複數與對象的屬性,二這些屬性拗不過是寫可調用函數罷了。
函數也就是代碼包,方法調用同事進行兩次操做(一次獲取屬性和一次函數調用)。
屬性讀取:具備object.attribute格式的表達式能夠理解爲「讀取object對象的屬性attribute的值」。
函數調用表達式:具備函數(參數)格式的表達式意味着"調用函數代碼,傳遞零更多都好隔開的參數對象,最後返回函數的返回值"。
13.咱們知道字符串是不可變的,因此不能再原處直接對齊進行修改。
14.字符串的splite方法將一個字符串分割爲一個子字符串的列表,已分隔符字符串爲標準。
15.標準庫模塊:名爲string,其中包含的函數大約至關於目前字符串對象方法集。
16.字符串格式化表達式
17.格式化字符串:
a.在%操做符的左側放置一個須要進行格式化的字符串,這個字符串帶有一個或多個嵌入的轉換目標,都以%開頭。
b.在%操做符右側放置一個對象,這些對象將插入到左側想讓Python進行格式化字符串的一個轉換目標的位置上去。
18.注意到全部目標左側都是%s,這就表示要把他們轉換爲字符串。因爲對象的每一個類型均可以轉換爲字符串,每個與%s一同參與操做的對象類型均可以轉換代碼。
19.字符串格式化代碼
s 字符串(或任何對象)
r s,但使用repr,而不是str
c 字符
d 十進制(整數)
i 整數
u 無號(整數)
o 八進制整數
x 十六進制整數
X x,但打印大寫
e 浮點指數
E e,但打印大寫
f 浮點十進制
F 浮點十進制
g 浮點e或f
G 浮點E或F
% 常量%
20.轉換目標的經過結構看上去是這樣的:
%[(name)][flags][width][.preicsion]typecode
21.基於字典的字符串格式化同時也容許左邊的額轉換目標來引用右邊字典中的鍵來提取對應的值。
22.
23.它和格式化表達式有很大程度的重合,而且有時比格式化表達式須要更多的代碼,且在高級用途的時候很複雜。正因如此,目前在表達式和方法調用之間沒有最佳使用建議,因此大多數程序猿只需對這兩種方案有基本的理解
24.本質上,字符串也能夠是建立一個臨時字符串的常量,而且任意的對象類型均可以替換:
25.格式化字符串中的方括號能夠指定列表(及其餘的序列)偏移量以執行索引,可是,只有單個的正偏移才能在格式化字符串的語法中有效。
26.添加具體格式化:另外一種%表達式相似的是,能夠在格式化字符串中添加額外的語法來實現更具體的層級。
27.{fieldname|conversionflag: formatspec}
fieldname是指定參數的一個數字或關鍵字,後面跟着可選的"name"或"[index]"成分引用
conversionflag能夠是r,s,或者a分別是在該值上對repr、str或ascii內置函數的依次調用。
Formatspec指定了如何表示該值,包括字段寬度、對齊方式、補零、小數點精度等細節,而且以一個可選的數據類型編碼結束。
28.冒號後的formatspec組成形式上的描述以下:
[fill]align[sign][#][0][width][.precision][typecode]
align多是<、>、=或^,分別表示左對齊、右對齊,一個標記字符後的補充或居中對齊。只帶有{}的格式化字符串,它從參數列表動態地獲取值(和格式化表達式中的*很類似)。
29.字符串格式化是把整數格式化爲指定的進制的某些內置函數的替代方法:
30.爲何用新的格式化方法:
*擁有%表達式所沒有的一些額外功能、
*能夠到操做符會有一個更容易記憶的方法名
*不支持用於單個和多個替代值大小寫的不一樣語法
31.Python中有三個主要類型(一級操做)的分類:
數字:(整數、浮點數、二進制,分數等)
序列:字符串列表、元組
映射:字典
32.通常來講,不可變類型有某種完整性,保證這個對象不會被程序的其餘部分改變。對於新人來講若是不知道這個有什麼要緊的話。