Python 模塊之 string.py

用法

  1. 字符串常量:

    import string

    print(string.ascii_lowercase)
    print(string.ascii_uppercase)
    print(string.ascii_letters)
    print(string.digits)
    print(string.hexdigits)
    print(string.octdigits)
    print(string.punctuation)
    print(string.printable)

結果

abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789
0123456789abcdefABCDEF
01234567
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

  1. Template類:

其實,Template類,可以和格式化字符串的用法還有字符串對象的format()方法做對比,可以幫助更好地理解。首先,新建一個python文件:string_template.py,
然后在里面寫入以下內容:

import stringvalues = {'var': 'foo'}t = string.Template("""
Variable        : $var
Escape          : $$
Variable in text: ${var}iable
""")print('TEMPLATE:', t.substitute(values))s = """
Variable        : %(var)s
Escape          : %%
Variable in text: %(var)siable
"""print('INTERPOLATION:', s % values)s = """
Variable        : {var}
Escape          : {{}}
Variable in text: {var}iable
"""print('FORMAT:', s.format(**values))

然后,在python命令行中輸入:

$ python string_template.py

結果

TEMPLATE:
Variable        : foo
Escape          : $
Variable in text: fooiableINTERPOLATION:
Variable        : foo
Escape          : %
Variable in text: fooiableFORMAT:
Variable        : foo
Escape          : {}

可以看到三者之間都可以起到對字符串里進行格式化的效果。只是三者的修飾符不一樣。Template類好的一點就是其可以通過繼承類,實例化后自定義其修飾符,并且也可以對變量的名字格式進行正則表達式的定義。如string_template_advanced.py示例:

import string
class MyTemplate(string.Template):delimiter = '%'idpattern = '[a-z]+_[a-z]+'template_text = '''Delimiter : %%Replaced  : %with_underscoreIgonred   : %notunderscored
'''d = {'with_underscore': 'replaced','notunderscored': 'not replaced',
}t = MyTemplate(template_text)
print('Modified ID pattern:')
print(t.safe_substitute(d))

首先,解釋下上面python文件。里面定義了一個類MyTemplate,繼承了string的Template類,然后,對其兩個域進行重載: Delimiter為修飾符,現在指定為了‘%’,而不是之前的‘$’。 接著,idpattern是對變量的格式指定。

結果

$ python string_template_advanced.py
Modified ID pattern:Delimiter : %Replaced  : replacedIgonred   : %notunderscored

為什么notunderscored沒有被替換呢?原因是我們在類定義的時候,idpattern里指定要出現下劃線'_', 而該變量名并沒有下劃線,故替代不了。

轉載于:https://www.cnblogs.com/brad1994/p/6536676.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/282600.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/282600.shtml
英文地址,請注明出處:http://en.pswp.cn/news/282600.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

md5和password_hash孰好孰壞

md5自不必說,想必所有phper都用過,但另一個加密函數不知道你見過沒有 他就是password_hash(); 加密方式更全面.使用起來也比md5salt這種方式要簡潔很多,最主要的是難破解,因為它每時每刻都在變動 它的使用方式大致是這樣 1. 用戶注冊時提交過來密碼,我們對用戶密碼進行加密…

Logstash 命令行參數

Logstash 提供了一個 shell 腳本叫 logstash 方便快速運行。它支持以下參數&#xff1a; -e意即執行。我們在 “Hello World” 的時候已經用過這個參數了。事實上你可以不寫任何具體配置&#xff0c;直接運行 bin/logstash -e ” 達到相同效果。這個參數的默認值是下面這樣&…

上汽拒絕HW符合商業邏輯

不久前&#xff0c;上汽董事長陳虹表示“與HW合作自動駕駛是不可接受的。這就好比一家公司為我們提供整體的解決方案&#xff0c;如此一來&#xff0c;它就成了靈魂&#xff0c;而上汽就成了軀體。對于這樣的結果&#xff0c;上汽是不能接受的&#xff0c;要把靈魂掌握在自己手…

javac compiling error ( mising package)

javac 編譯java源文件時&#xff0c;提示 package does not exist 的錯誤 Test.java import java.security.MessageDigest; import org.apache.commons.codec.binary.Hex;public class Test{public static void main(String args[]){boolean isAlarmed true;boolean aa isAla…

使用ffmpeg錄音

官方教程&#xff1a;http://ffmpeg.org/ffmpeg.html 錄音方法&#xff1a; 開始找到了這個方法&#xff0c;但是不行呀&#xff0c;好像是沒有這個oss吧。 oss 是linux 下的聲音相關的東西&#xff0c;與alsa 一樣&#xff0c;不過oss 是商業的&#xff0c; 而/dev/dsp 是oss …

Mysql慢查詢日志的使用 和 Mysql的優化

一、生成實驗數據 原理&#xff1a;sql 蠕蟲復制&#xff08;這種生成數據方式同樣適用于數據表中有主鍵的情況&#xff09;。 insert into comic (name,pen_name,cover) select name,pen_name,cover from comic 二、慢查詢日志設置 當語句執行時間較長時&#xff0c;通過日…

Oracle 12C CDB、PDB常用管理命令

--查看PDB信息&#xff08;在CDB模式下&#xff09; show pdbs --查看所有pdb select name,open_mode from v$pdbs; --v$pdbs為PDB信息視圖 select con_id, dbid, guid, name , open_mode from v$pdbs; --切換容器 alter session set containerorcl1 --切換到PDBorcl1容器…

指定時間的月初和月末一天的寫法

DateTime dt Convert.ToDateTime("2017-2");DateTime FirstDay new DateTime(dt.Year, dt.Month, 1);//本月初1號DateTime LastDay new DateTime(dt.AddMonths(1).Year, dt.AddMonths(1).Month, 1).AddDays(-1);//下月初1號減一天本月底 轉載于:https://www.cnblo…

mysql數據表設計要點以及快門

一個sql表的設計首先要考慮的是字段 然后去考慮這個字段應該具有哪些特性, 最后,考慮哪些字段經常用于查詢,設置為索引 下面是一個比較簡單的例子,大概說明了怎么樣去構造sql語句創建一個sql表 create table user_message( id int UNSIGNED not null auto_increment COMMEN…

分享實錄|區塊鏈技術與智能合約入門(開發實例)

1 什么是區塊鏈 1.1白話講解區塊鏈 現在區塊鏈特別火&#xff0c;可能大家都聽說過區塊鏈&#xff0c;聽說過比特幣&#xff0c;那到底什么是區塊鏈&#xff1f; 前幾天和一個朋友擼串&#xff0c;我給他安利區塊鏈和比特幣以及一些數字貨幣的知識&#xff0c;這個朋友也是一個…

大型網站技術架構:核心原理與案例分析筆記

1.大型網站軟件系統的特點&#xff1a; 高并發&#xff0c;大流量  高可用 海量數據  用戶分布廣泛&#xff0c;網絡情況復雜  安全環境惡劣  需求快速變更&#xff0c;發布頻繁  漸進式發展  2.大型網站演變架構 1)初步應用&#xff1a;數據&#xff08;數據…

1777:文件結構“圖”

1777:文件結構“圖” 查看提交統計提問總時間限制: 1000ms內存限制: 65536kB描述在計算機上看到文件系統的結構通常很有用。Microsoft Windows上面的"explorer"程序就是這樣的一個例子。但是在有圖形界面之前&#xff0c;沒有圖形化的表示方法的&#xff0c;那時候最…

thinkphp出現Call to undefined function Think\C() in ... online 313

造成這個問題的原因很多,在這里我只說明我自己遇到之后解決的辦法 我將functions.php改成了function.php之后,修改了一些其他無關緊要的東西出現了這個問題,來回排查,各種嘗試,最后,將function.php改回functions.php,可以正常運行

Oracle數據庫IP訪問限制(IP白名單黑名單)

1、編輯sqlnet.ora內容為&#xff1a;#允許訪問的IP&#xff08;白名單&#xff09;TCP.INVITED_NODES(127.0.0.1,192.168.56.109,ip2,ip3,..,..本地IP..)若使用白名單&#xff0c;必須有本地IP&#xff0c;否則監聽會起不來#不允許訪問的IP&#xff08;黑名單&#xff09;#TCP…

WPF效果第一百九十九篇之Gamma曲線

前面效果中分享了模塊對比;今天大周末那就再來分享一下最近實現的效果;基于YX^n公式根據不同的系數繪制Gamma曲線效果如下圖:1、曲線的話,咱就用最簡單的方式繪制一堆點:PathFigure pathFigure new PathFigure(){StartPoint new Point(0, count),};for(double x 0; x < 1…

圖片序列化和反序列化成圖片文件(代碼)

// // ViewController.m // 圖片序列化和反序列化 // // Created by Qlinchao on 17/3/14. // Copyright © 2017年 QLC. All rights reserved. //#import "ViewController.h"interface ViewController () property (weak, nonatomic) IBOutlet UIImageView …

windows 下 MyEclipse 逆向工程生成hiberate 對應配置文件以及 javaBean。

步驟1&#xff1a; 右邊工具欄 -> 右擊你的項目 -> 選中 MyEclipse -> Project Facets -> install Hibernate Facet -> 選擇對應的版本&#xff08;以及一些你想要的配置&#xff09; 步驟2&#xff1a; 導航欄 -> window -》 show View -> Other 。 然…

php加解密

一 對稱加密 1.mycyrpt的對稱加密: /*** param $key //數據加密密鑰 由自己定義,長度有限制 string* param $string //需要進行加解密的字符串 string* param $decrypt //加密還是解密 (最簡單的,0代表加密,1代表解密)* return string*/ function encryptDecrypt($key, $st…

深入理解Spring Boot數據源與連接池原理

? Create by ysterfoxmail.com 2018-8-2一&#xff1a;開始 在使用Spring Boot數據源之前&#xff0c;我們一般會導入相關依賴。其中數據源核心依賴就是spring‐boot‐starter‐jdbc 如下 <dependency><groupId>org.springframework.boot</groupId> …

Dapr 集成 Open Policy Agent 實現 接口的訪問控制

大型項目中基本都包含有復雜的訪問控制策略&#xff0c;特別是在一些多租戶場景中&#xff0c;例如Kubernetes中就支持RBAC&#xff0c;ABAC等多種授權類型。Dapr 的 中間件 Open Policy Agent 將Rego/OPA策略應用到傳入的Dapr HTTP請求中。Open Policy AgentOpen Policy Agent…