Python第四課(序列之字符串)

  • 在Python中,字符串的使用隨處可見,可被字符串調用的方法較之列表、元組也是最多。字符串也是Python的6中內建序列之一。
  • 字符串的基本操作

  作爲序列,序列的通用操作(索引、分片、加法、乘法、成員資格、長度、最大值、最小值)對於字符串都是適用的。但是字符串和元組一樣都是不可變的,所以對字符串進行分片賦值是不合法的。

  • 格式化字符串

  什麼是格式化字符串?具有特定格式,可以通過給定值替換特定格式中被標記位置的字符串的操作叫格式化字符串。比如“%s年%s月%s日”中不改變字符串中的漢字部分,僅給出3個數字分別按順序代替字符串中的“%s”標記的位置,來實現動態的年月日的輸出。

  爲什麼要用格式化字符串?和python中的函數一樣,對於在頻繁使用的情況下,對於某些格式複雜的字符串,避免頻繁重複的輸入固定代碼。

  使用方法:“%轉換標誌/字段寬度.精度/轉換類型”%值

  “%”:標記轉換說明符的開始

  轉換標誌:“-”表示左對齊;“+”表示在實數前加上正負號;“”(空白字符)表示在整數之前保留空格;“0”表示位數不夠時使用字符“0”填充;

  字段寬度:轉換後的字符串至少要有該值的寬度。如果值爲“*”表示寬度從後面的元組中讀取

  點.精度:如果轉換的是實數,表示小數點後面的位數;如果轉換的是字符串,表示轉換後的字符串的最大字段寬度。如果是“*”表示精度值從元組中讀取。

  轉換類型:s(string)表示字符型;d表示整型;f表示浮點型;最長用的是這三個字符類型

  1.簡單轉換

1 >>> msg='''**********info of %s**********
2 ... name:%s
3 ... age:%d'''
4 >>> print(msg%('lufei','lufei',19))
5 **********info of lufei**********
6 name:lufei
7 age:19

  2.字段寬度

1 >>> 'the price of aggs:%d'%12     
2 'the price of aggs:12'
3 >>> 'the price of aggs:%10d'%12   #字段寬度 10
4 'the price of aggs:        12'

  3.轉換標誌

 1 >>> 'the price of aggs:%10d'%12      #字符寬度 10
 2 'the price of aggs:        12'
 3 >>> 'the price of aggs:%-10d'%12     #字符寬度 10 左對齊
 4 'the price of aggs:12        '
 5 >>> 'the price of aggs:%+10d'%12     #字符寬度 10 顯示值的正負號
 6 'the price of aggs:       +12'
 7 >>> 'the price of aggs:%+10d'%-12    #字符寬度 10 顯示值的正負號
 8 'the price of aggs:       -12'
 9 >>> 'the price of aggs:%010d'%12     #字符寬度 10 位數不夠使用0填充
10 'the price of aggs:0000000012'

 

  4.精度

1 >>> 'the price of aggs:%d'%12
2 'the price of aggs:12'
3 >>> 'the price of aggs:%.5d'%12    #轉換的是整數,表示字段最大寬度,位數不足使用0填充
4 'the price of aggs:00012'
5 >>> 'login name:%s'%'operadmin'
6 'login name:operadmin'
7 >>> 'login name:%.5s'%'operadmin'  #轉換的是字符串,表示字段最大寬度,超過最大寬度部分丟棄
8 'login name:opera'
9 >>> 'the price of aggs:%.5f'%12 #轉換的是實數,表示小數點後的位數
10 'the price of aggs:12.00000
  • 字符串方法
 1 1str.capitalize()  首字母大寫
 2 2str.casefold()    字符串中的大寫換成小寫
 3 3str.center(width,filechar)   字符串居中打印
 4 4str.count(x,start,end)   統計某個子串在字符串中出現的次數
 5 5str.encode(self,encoding,errors)
 6 6str.endswith(self,suffix,start,end)判斷字符串是否以某個子串結尾
 7 7str.expandtabs(tabsize)
 8 8str.find(sub,start,end)返回字符串中某個字符或者子串的索引。如果子串或者字符不存在返回-1
 9 9str.format()字符串的格式化輸出
10 10str.index(sub,start,end)返回字符串中某個字符或者子串的索引。如果子串或者字符不存在報錯“substring not found”
11 11str.isalnum()判斷字符串是否只包含字母和數字
12 12str.isalpha()判斷字符串是否只包含字母字符
13 13str.isdecimal()判斷字符串是否僅包含數字
14 14str.isdigit()判斷字符串是否僅包含數字
15 15str.identifier()判斷字符串是否是一個標準的變量名
16 16str.islower()判斷字符串中的祖母字符是否都是小寫字符
17 17str.isnumeric()判斷字符串是否僅包含數字
18 18str.isprintable()判斷字符串是否是一個可打印字符串
19 19str.isspace()判斷字符串是否僅包含空格
20 20str.istitle()判斷字符串是否是一個標題(單詞首字母大寫其他字母都小寫)
21 21str.isupper()判斷字符串中的字母字符是否都是大寫字符
22 22str.join(sequence)在sequence中每兩個元素間插入str
23 23str.ljust(width,fillchar)字符串左對齊,寬度不夠使用字符填充,默認使用空格填充
24 24str.lower()將字符串中的大寫字母轉換爲小寫字母
25 25str.lstrip(char)移除字符串開頭指定的字符,默認爲空格
26 26maketrans
27 27str.partition(str)根據指定的分隔符將字符串進行分割。如果字符串中包含分隔符則分會一個3元的元組
28 28str.replace(old,new,count)使用指定的字符串替換掉原字符串中的某個字符或者子串,並可以指定替換數量
29 29str.rfind(sub,start,end)返回字符串中某個字符或者子串的索引,從右側開始查找。如果子串或者字符不存在則返回“-130 30str.rindex(sub,start,end)返回字符串中某個字符或者子串的索引。從右側開始查詢,如果子串或者字符不存在報錯“substring not found”
31 31str.rjust(width,fillchar)功能與ljust相反,一個是左對齊一個是右對齊
32 32str.rpartition(str)使用指定的分隔符分割字符串,從右側開始查詢分隔符作爲分割點。返回一個3元的元組
33 33str.rsplit(str,num)查找指定字符作爲分割點分割字符串,從右側開始查找,可指定分割成num個子字符串,返回分割後的子字符串組成的列表
34 34str.rstrip(char)移除字符串末尾指定的字符,默認爲空格
35 35str.split(char,num)查找指定字符作爲分割點分割字符串,可指定分割成num個子字符串,返回分割後的子字符串組成的列表
36 36str.splitlines()按照行進行分割‘\n’‘\r\n’如果參數keepends爲True則保留換行符,如果keepends爲False則不保留換行符
37 37str.startswith(char,start,end)判斷字符串是否是以某個字符開始,可指定起始和結束位置
38 38str.strip(char)移除字符串開頭和末尾的指定字符,默認爲空格
39 39swapcase
40 40str.upper()將字符串中的小寫字母轉換成大寫字母
41 41str.zfill(width)指定字符串的寬度,寬度不夠字符串右對齊使用字符“0”填充

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章