Python標準庫筆記(1) — string模塊

来源:http://www.cnblogs.com/jhao/archive/2017/01/23/6344869.html
-Advertisement-
Play Games

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會渲染界定符為%且替換格式帶有下劃線的情況。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 以前如果需要讓網頁過幾秒自動刷新一次,我都會在頁面通過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 中”初始化“和”創建“捆綁在一起,兩者不能分離。 垃圾回收器:釋放無用的對象。 三.方法重載 為什麼要在這裡講方法重 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...