String模塊包含大量實用常量和類,以及一些過時的遺留功能,並還可用作字元串操作。 1. 常用方法 常用方法描述 str.capitalize() 把字元串的首字母大寫 str.center(width) 將原字元串用空格填充成一個長度為width的字元串,原字元串內容居中 str.count(s ...
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 string
template_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會渲染界定符為%且替換格式帶有下劃線的情況。
更多相關文章
-
以前如果需要讓網頁過幾秒自動刷新一次,我都會在頁面通過JS調用setTimeout來做,最近發現原來伺服器通過添加響應頭部信息來提示瀏覽器需要在多少時間之後重新載入頁面。 代碼很簡單: 上述代碼指定瀏覽器在5秒後重新載入當前頁面。 需要註意的是,單位是秒。 這種方式未必就比JS的方式更有優勢,但是至 ...
-
1、問題描述 原開發環境:Win7 64位旗艦版,VS2010,ThinkPad T460 出現問題:自己開發的MFC程式在WinXP環境下無法正常運行,彈框“無法定位程式輸入點InitializeConditionVariable於動態鏈接庫kernel32.dll” 重新搭建開發環境:WinXP ...
-
簡介 該頭文件包含兩個概念相似的容器 map 、 multimap 。 而這兩個容器反映的概念就是 映射 。 這兩個容器 相同 的屬性有: 關聯性 映射 動態增長 鍵(Key)唯一性 這兩個 不相同 的屬性是: 映射關係 ![][maps image] 容器類別 既然說到關聯性容器,自然得說說標準庫 ...
-
請實現一個函數,將一個字元串中的空格替換成“%20”。例如,當字元串為We Are Happy.則經過替換之後的字元串為We%20Are%20Happy。 以下是java.lang.StringBuilder.replace()方法的聲明 參數 start -- 這是開始索引(包括)。 end -- ...
-
前段時間在想Kafka怎麼監控、怎麼知道生產的消息或消費的消費是否有丟失,目前有幾個開源的Kafka監控框架這裡整理了下,不過這幾個框架都有各自的問題側重點不一樣; 1、Kafka Monitor 2、Availability Monitor for Kafka 3、Kafka Web Consol ...
-
在 github 發現一個 Ansible 任務計時插件“ansible-profile”,安裝這個插件後會顯示 ansible-playbook 執行每一個任務所花費的時間。Github 地址: https://github.com/jlafon/ansible-profile 。 這個插件安裝很 ...
-
hibernate的命名策略,可以減少對資料庫標識符命名的維護,進一步減少這部份命名的重覆性代碼量,以提高維護。 hibernate的命名方式,有兩類,一類是顯式命名,一類是隱式命名。 顯式命名:在映射配置時,設置的資料庫表名,列名等,就是進行顯式命名。 隱式命名:顯式命名一般不是必要的,所以可以選 ...
-
一.問題 隨著電腦革命的發展,“不安全”的編程方式已逐漸成為編程代價高昂的主因之一。 初始化和清理正是涉及安全的兩個問題。 二.java 解決方案 構造器:一種特殊的方法。java 中”初始化“和”創建“捆綁在一起,兩者不能分離。 垃圾回收器:釋放無用的對象。 三.方法重載 為什麼要在這裡講方法重 ...