Python標準庫筆記(1) — string模組,pythonstring

來源:互聯網
上載者:User

Python標準庫筆記(1) — string模組,pythonstring

String模組包含大量實用常量和類,以及一些過時的遺留功能,並還可用作字串操作。

1. 常用方法
常用方法 描述
str.capitalize() 把字串的首字母大寫
str.center(width) 將原字串用空格填充成一個長度為width的字串,原字串內容置中
str.count(s) 返回字串s在str中出現的次數
str.decode(encoding=’UTF-8’,errors=’strict’) 以指定編碼格式解碼字串
str.encode(encoding=’UTF-8’,errors=’strict’) 以指定編碼格式編碼字串
str.endswith(s) 判斷字串str是否以字串s結尾
str.find(s) 返回字串s在字串str中的位置索引,沒有則返回-1
str.index(s) 和find()方法一樣,但是如果s不存在於str中則會拋出異常
str.isalnum() 如果str至少有一個字元並且都是字母或數字則返回True,否則返回False
str.isalpha() 如果str至少有一個字元並且都是字母則返回True,否則返回False
str.isdigit() 如果str只包含數字則返回 True 否則返回 False
str.islower() 如果str存在區分大小寫字元,並且都是小寫則返回True 否則返回False
str.isspace() 如果str中只包含空格,則返回 True,否則返回 False
str.istitle() 如果str是標題化的(單字首大寫)則返回True,否則返回False
str.isupper() 如果str存在區分大小寫字元,並且都是大寫則返回True 否則返回False
str.ljust(width) 返回一個原字串靠左對齊的並使用空格填充至長度width的新字串
str.lower() 轉換str中所有大寫字元為小寫
str.lstrip() 去掉str左邊的不可見字元
str.partition(s) 用s將str切分成三個值
str.replace(a, b) 將字串str中的a替換成b
str.rfind(s) 類似於 find()函數,不過是從右邊開始尋找
str.rindex(s) 類似於 index(),不過是從右邊開始
str.rjust(width) 返回一個原字串靠右對齊的並使用空格填充至長度width的新字串
str.rpartition(s) 類似於 partition()函數,不過是從右邊開始尋找
str.rstrip() 去掉str右邊的不可見字元
str.split(s) 以s為分隔字元切片str
str.splitlines() 按照行分隔,返回一個包含各行作為元素的列表
str.startswith(s) 檢查字串str是否是以s開頭,是則返回True,否則返回False
str.strip() 等於同時執行rstrip()和lstrip()
str.title() 返回”標題化”的str,所有單詞都是以大寫開始,其餘字母均為小寫
str.upper() 返回str所有字元為大寫的字串
str.zfill(width) 返回長度為 width 的字串,原字串str靠右對齊,前面填充0
2.字串常量
常數 含義
string.ascii_lowercase 小寫字母’abcdefghijklmnopqrstuvwxyz’
string.ascii_uppercase 大寫的字母’ABCDEFGHIJKLMNOPQRSTUVWXYZ’
string.ascii_letters ascii_lowercase和ascii_uppercase常量的串連串
string.digits 數字0到9的字串:’0123456789’
string.hexdigits 字串’0123456789abcdefABCDEF’
string.letters 字串’abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ’
string.lowercase 小寫字母的字串’abcdefghijklmnopqrstuvwxyz’
string.octdigits 字串’01234567’
string.punctuation 所有標點字元
string.printable 可列印的字元的字串。包含數字、字母、標點符號和空格
string.uppercase 大學字母的字串’ABCDEFGHIJKLMNOPQRSTUVWXYZ’
string.whitespace 空白字元 ‘\t\n\x0b\x0c\r ‘
3.字串模板Template

通過string.Template可以為Python定製字串的替換標準,下面是具體列子:

>>>from string import Template>>>s = Template('$who like $what')>>>print s.substitute(who='i', what='python')i like python>>>print s.safe_substitute(who='i') # 缺少key時不會拋錯i like $what>>>Template('${who}LikePython').substitute(who='I') # 在字串內時使用{}'ILikePython'

Template還有更加進階的用法,可以通過繼承string.Template, 重寫變數delimiter(定界符)和idpattern(替換格式), 定製不同形式的模板。

import stringtemplate_text = '''    Delimiter : $de    Replaced : %with_underscore    Ingored : %notunderscored'''d = {'de': 'not replaced',     'with_underscore': 'replaced',     'notunderscored': 'not replaced'}class MyTemplate(string.Template):    # 重寫模板 定界符(delimiter)為"%", 替換模式(idpattern)必須包含底線(_)    delimiter = '%'    idpattern = '[a-z]+_[a-z]+'print string.Template(template_text).safe_substitute(d)  # 採用原來的Template渲染print MyTemplate(template_text).safe_substitute(d)  # 使用重寫後的MyTemplate渲染

輸出:

    Delimiter : not replaced    Replaced : %with_underscore    Ingored : %notunderscored    Delimiter : $de    Replaced : replaced    Ingored : %notunderscored

可以看出原生的Template只會渲染界定符為$的情況,重寫後的MyTemplate會渲染界定符為%且替換格式帶有底線的情況。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.