1. 程式人生 > 其它 >3.Python字串常用方法

3.Python字串常用方法

認識Python中物件

  • Python中一切都是物件
  • 每個物件都有各自的屬性與方法
  • 物件的特點就是它的屬性,它的功能就是它的方法

字串的capitalize函式

  • capitalize的功能

    • 將字串的首字母大寫,其他字母小寫。
  • capitalize的用法

    • 用法:

      • newstr=string.capitalize()
        
    • 引數

      • 函式括弧內什麼都不用填寫
    • 示例程式碼:

      • name='ckk'
        print(name.capitalize())#Ckk
        
        name2='Ckk'
        print(name2.capitalize())#Ckk
        
  • capitalize的注意事項

    • 只對第一個字母大寫有效
    • 只對字母有效
    • 已經是大寫,則無效

字串的小寫函式

  • casefold與lower功能

    • 將字串全體小寫
  • casefold與lower用法

    • #函式括弧內什麼都不用填寫
      newstr=string.casefold()
      newstr=string.lower()
      
  • casefold與lower的注意事項

    • 只對字串中的字母有效
    • 已經是小寫則無效
  • casefold與lower的區別

    • lower函式只支援ascill表中的字元,而casefold則支援很多不同種類的語言。
  • 示例程式碼

    • name='CKK'
      print(name.casefold())#ckk
      
      name2='Ckk'
      print(name2.lower())#ckk
      

字串的upper函式

  • upper的功能

    • 將字串全體大寫
  • upper的用法

    • 用法:

      • big_str=string.upper()
        
    • 引數:

      • 函式括弧內什麼都不用填寫
    • 示例程式碼:

      • name='ckk'
        print(name.upper())#CKK
        
        name2='CKk'
        print(name2.upper())#CKK
        
  • upper的注意事項

    • 只對字串中的字母有效
    • 已經是大寫,則無效

字串的swapcase函式

  • swapcase的功能

    • 將字串中大小寫字母進行轉換
  • swapcase的用法

    • 用法:

      • newstr=string.swapcase()
        
    • 引數

      • 函式括弧內什麼都不用填寫
    • 示例程式碼:

      • name='ckk'
        print(name.swapcase())#CKK
        
        name2='CKk'
        print(name2.swapcase())#ckK
        
  • swapcase的注意事項

    • 只對字串中的字母有效

字串的zfill函式

  • zfill的功能

    • 為字串定義長度,如不滿足,缺少的部分用0填補
  • zfill的用法

    • 用法:

      • newstr=string.zfill(width)
    • 引數:

      • Width:新字串希望的寬度
    • 示例程式碼:

      • name='ckk'
        print(name.zfill(10))#0000000ckk
        
        name2='ckk'
        print(name2.zfill(3))#ckK
        
  • zfill的注意事項

    • 與字串的字元無關
    • 如果定義長度小於當前字串長度,則不發生變化。

字串的count函式

  • count的功能

    • 返回當前字串中某個成員(元素)的個數
  • count的用法

    • 用法:

      • string.count(sub)
    • 引數:

      • 括弧裡需要傳一個你想查詢個數的元素,返回一個整數
    • 示例程式碼:

      • name='ckk'
        print(name.count('k'))#2
        print(name.count('a'))#0
        
        name2='jalksdjlkJdkljalskdjlkqnc2oijo23kfnknslkdjflkjsalkdjfkahdfkjabdkjfbaj'
        print(name2.count('j'))#11
        
  • count的注意事項

    • 如果查詢的成員(元素)不存在,則返回0
    • count函式可以限制字串的欄位,學習索引後會不上該知識點。

字串的startswith和endswith函式

  • startswith和endswith的功能

    • startswith判斷字串開始是否是某成員(元素)
    • endswith判斷字串結尾是否是某成員(元素)
  • startswitch和endswitch的用法

    • #你想查詢匹配的元素,返回一個布林值
      string.startswith(sub)
      string.endswith(sub)
      
  • 示例程式碼:

    • name='ckk'
      print(name.startswith('c'))#True
      print(name.startswith('a'))#False
      
      print(name.endswith('c'))#False
      print(name.endswith('k'))#True
      

字串的find與index函式

  • find和index的功能

    • find好index都是返回你想尋找的成員的位置。
  • find和index的用法

    • 用法:

      • # sub你想查詢的元素,返回一個整型
        string.find(sub)
        # sub你想查詢的元素,返回一個整型或者報錯
        string.index(sub)
        
    • ps:字串裡的位置是從0開始的。

    • 示例程式碼:

      • name='my name is ckk'
        print(name.find('c'))#True
        print(name.find('z'))#-1
        
        print(name.index('c'))#11
        print(name.index('z'))#報錯 ValueError: substring not found
        
  • find與index的區別

    • 如果find找不到元素,會返回-1
    • 如果index找不到元素,會導致程式報錯

字串的strip函式

  • strip的功能

    • strip將去掉字串左右兩邊的指定元素,預設是空格。
  • strip的用法

    • 用法:

      • newstr=string.strip(sub)
        
    • 引數:

      • 括弧裡需要傳一個你想去掉的元素,可不填寫
    • 示例程式碼:

      • name=' my name is ckk  '
        print(name.strip())#my name is ckk
        
        print(name.lstrip(' m'))#y name is ckk
        print(name.rstrip("  k"))# my name is c
        
  • strip的擴充套件知識

    • 傳入的元素如果不在開頭或結尾則無效
    • lstrip僅去掉字串開頭的指定元素或空格
    • rstrip僅去掉字串結尾的指定元素或空格

字串的replace函式

  • replace的功能

    • 將字串中的old(舊元素)替換成new(新元素),並能指定替換的數量
  • replace的用法

    • 用法:

      • newstr=string.replace(old,new,max)
        
    • 引數:

      • old:被替換的元素
      • new:替代old的新元素
      • Max:可選,代表替換幾個,預設全部替換全部匹配的old元素。
  • 示例程式碼:

    • name = ' my name is ckk,ckk ,  '
      print(name.replace("ckk", "cgq"))  # my name is cgq,cgq ,
      print(name.replace("ckk", 'cgq', 1))  # my name is cgq,ckk ,
      

字串中返回bool型別的函式集合

  • isspace

    • 功能:

      • isspace判斷字串是否是一個由空格組成的字串
    • 用法:

      • # 無引數可傳,返回一個布林型別
        booltype=string.isspace()
        
    • 示例程式碼:

      • name=' ckk'
        print(name.isspace())#False
        names=' '
        print(names.isspace())#True
        
        
    • Ps:由空格組成的字串,不是空字串:‘ ‘ != ’ ‘

  • istitle

    • 功能:

      • istitle:判斷字串是否是一個標題型別
    • 用法:

      • #無引數可傳,返回一個布林型別
        booltype=string.istitle()
        
    • 示例程式碼:

      • title='My Name Is Ckk'
        title_2='My name is ckk'
        
        print(title.istitle())#True
        print(title_2.istitle())#False
        
    • ps:該函式只能用於英文

  • isupper和islower

    • 功能:

      • isupper:判斷字串中的字母是否都是大寫
      • islower:判斷字串中的字母是否都是小寫
    • 用法:

      • #無引數可傳,返回一個布林型別
        booltype=string.isupper()
        booltype=string.islower()
        
    • 示例程式碼

      • msg='my name is ckk'
        print(msg.isupper())#False
        print(msg.islower())#True
        
        msg='MY NAME IS CKK'
        print(msg.isupper())#True
        print(msg.islower())#False
        
    • Ps:只檢測字串裡的字母,對其他字元不做判斷

  • join和split後章節見

    • 我們資料型別轉換的時候詳解

字元的編碼格式

  • 什麼是編碼格式

    • 有一定規則的規則
    • 使用了這種規則,我們就能知道傳輸的資訊是什麼意思
  • 常見的編碼格式

    • ASCII英文編碼

      • #coding:ascii
        print('哈哈')#??
        
      • #coding:ascii
        print('haha')#haha
        
    • gbk是中文編碼

  • 通用的編碼格式

    • utf-8是一種國際通用的編碼格式

    • # coding:utf-8
      print('哈哈')#哈哈
      print('haha')#haha
      

字串的格式化

  • 什麼是格式化

    • 一個固定的字串中有部分元素是根據變數的值而改變的字串

    • 今天是xx,星期xx,大家好
      date='20210810'
      
  • 使用格式化場景和目的

    • 傳送郵件的時候
    • 傳送簡訊的時候
    • App上發推送的時候
    • 對於重複性很多的資訊,通過格式化的形式,可以減少程式碼的書寫量
  • 格式化的三種方式

根據型別定義的格式化

  • 字串格式化使用操作符%來實現。

  • msg='my name is %s,my age is %s'%('ckk','28')
    
    • 對應格式符的變數,變數與格式符按順序一一隊形,數量保持一致,超過1個格式化變數用小括號包裹。
    • 格式化字串與格式符變數之間用一個%s連線,%兩邊有一個空格。

字串格式化函式-format

  • string.format函式用來格式化字串

  • 使用format的字串主體使用{}大括號來替代格式符

  • string.format(data,data,data.....)

  • print('hello {0},今天看起來起色{1}'.format('Ckk','不錯'))#hello Ckk,今天看起來起色不錯
    

Python3.6加入的新的格式化方法---f-strings

  • 定義一個變數

  • 字串前加f符號

  • 需要格式化的位置使用{變數}

  • name='ckk'
    print(f'hello {name}')#hello ckk
    

字串格式化的符號

  • 用於對應各種資料型別的格式化符號------格式化符號

字串的轉義字元

  • 什麼是轉義字元

    • 字元要轉成其他含義的功能,所以我們叫他轉義字元
    • \+字元
  • Python中的轉義字元們

  • 轉義無效符

    • 在Python中在字串前加r來將當前字串的轉義字元無效化

    • print(r'hello \f')#hello \f