在The FirstDay 里面學習了列表的元組的使用,今天開始學習字符串的使用。字符串的使用主要要掌握,字符串的格式化(C語言中我們應該都知道,Python和C語言差別不大),字符串的基本操作(Join,Split,Replace等和.net里面的也有很多相似點)
一.字符串的基本操作
1.字符串格式化認識: 字符串的格式化用%隔開與C語言一樣.賦值也是用%(val1,val2)來傳遞,其實就是用元組來傳遞格式化數據.
Note: values元素的個數以及格式必須與格式化字符串的一一對應. 否則會報錯.
>>> format = 'Hello. %s %s'>>> values =('World','Frank')>>> PRint format %valuesHello. World Frank
2.字符串格式化轉換類型: 字符串格式化分為很多種,基本使用類型如下:
| 轉換類型 | 含義 |
| d | 帶符號的十進制 |
| o | 不帶符號的八進制 |
| u | 不帶符號的十進制 |
| x(小寫) | 不帶符號的16進制 |
| X(大寫) | 帶符號的16進制 |
| f | 浮點數 |
| c | 單個字符 |
| s | 字符串 |
3. 字符串的轉換:
%[格式化寬度][轉義類型]:設置格式化后的長度.多出的忽略
%.保留小數位][數字類型]:設置小數點后保留位數
%[填充字符][格式化寬度][轉移類型]:此方法情況比較多,建議大家自己測試一下。不同類型不同情況結果不一致.我這里就不統一列出情況了.
>>> 'The float is %.2f' %(1.0/3) # 保留2位有效小數點'The float is 0.33'>>> 'Your Name is %10s' %'Frank' #設置寬度為10'Your Name is Frank'>>> '%+10d' %1 #設置寬度并且前面天上+號' +1'>>> '%010d' %1 #設置寬度前面用0補全'0000000001'
4. 字符串模板: 除開字符串格式化,Python還提供了另外一種格式化方法,叫做字符串模板,主要通過Template的substitute方法試下,支持字典的操作.
Note: 字符串模板可以直接通過字典進行替換,替換的原理是通過Mapping(映射)來實現的. 整體上來說調用substitute. Temlate里面的$字段,在字典的Key里面必須存在,否則就會報錯提示Mapping不存在;不過可以通過safe_substitute來避免報錯問題. 請看下面代碼:
>>> from string import Template>>> dicMsg = Template{'Name1':'Frank','Name2':'Loch'}>>> s = Template('$Name1 And $Name2 Are Ecoworks')>>> s.substitute(dicMsg)'Frank And Loch Are Ecoworks'>>> dicMsg ={'Name1':'Frank'}>>> s.safe_substitute(dicMsg)'Frank And $Name2 Are Ecoworks
>>> dicMsg ={'Name1':'Frank','Name2':'Loch','Name3':'Hardy'}
>>> s.substitute(dicMsg)
'Frank And Loch Are Ecoworks'
二. 字符串常用方法.
與.net和java類似,Pyhon對String一樣提供了很多操作方法。比如upper,find,replace 等
1.Find : 找出字符串第一個匹配到的下標. 如果不存在返回-1
>>> 'Frank Zhang'.find('Zhang')6>>> 'Frank Zhang'.find('a')2>>> 'Frank Zhang'.find('12')-1
2.Join : 通過一個特定字符將列表鏈接起來,切記,列表必須的字符串列表,推理是連接的時候是通過list遍歷然后字符串想加的,如果是整數,那么在執行想加會報錯的.
>>> list1=[1,2,3]>>> '-'.join(list1)Traceback (most recent call last): File "<pyshell#32>", line 1, in <module> '-'.join(list1)TypeError: sequence item 0: expected string, int found>>> list2=['1','2','3']>>> '-'.join(list2)>>> '--'.join(['1','2','3'])
'1--2--3'
3.Split 和Splitline: 字符串拆分,通過特定的字符將字符串拆分為列表.
>>> '1-2-3-4-5'.split('3-4')['1-2-', '-5']>>> '1-2-3-4-5'.split('-')['1', '2', '3', '4', '5']>>> '1-2-3-4-5'.split('-3-')['1-2', '4-5']>>> '123/n456'.splitlines()['123', '456']>>> '123/n456'.split('/n')['123', '456']
4.字符大小寫轉換: Python提供了很多有用的字符串大小寫轉換,包括全部轉換,單詞首個字母轉換大寫。
>>> 'Frank'.upper() #轉換為大寫'FRANK'>>> 'Frank'.lower()'frank'>>> 'FRANK'.islower()False>>> 'frank'.islower()True>>> 'my name is frank'.title() #每個單詞第一個字母大寫'My Name Is Frank'>>> 'AaDdEe'.swapcase() #每個字母大小寫相互轉換'aAdDeE'>>> 'this is python'.capitalize() 'This is python
5.strip: 踢出字符串前后的空格符號,與.net的Trim()方法差不多.
>>> ' Frank '.strip()'Frank'>>> ' Frank '.rstrip()' Frank'>>> ' Frank '.lstrip()'Frank '
三.總結:
整體來說Python的字符串操作還是挺簡單的。也就一些基本方法的調用。格式化字符串于C語言區別不大.String的字符串操作與.Net的操作也不算太大. 該去吃午飯了.下午和同事去滑冰場滑冰,第二次滑冰,今天把'轉彎'和'剎車'學會,PS 周二到周六班次上班還是有好處的。周一去滑冰場簡直就是我們的專場。沒其他人,適合初學者練習。哈哈。期待美好的一下午.
|
新聞熱點
疑難解答