字串序列:
1. 使用+操作符。a=』abc』 +』cba』 則 a的值為』abccba』
2. 使用strobj.join(序列) 方法。a= 『 abc』.join((『a』,』b』,』c』))則a的值為』abcabc』
3.字串格式符%s。a=』%s%s』 %(『abc』,』abc』)則a的值為』abcabc』
通過這種方法,你可以把長的字串分成幾部分來寫,而不用加反斜槓。如上所示,
你可以在一行裡面混用兩種分號。這種寫法的好處是你可以把注釋也加進來,如下:
如你所想,**等價於
字串格式化符號
字格式化字元 轉換方式
%c 轉換成字元(ascii 碼值,或者長度為一的字串)
%r a 優先用 repr()函式進行字串轉換
%s 優先用 str()函式進行字串轉換
%d / %i 轉成有符號十進位制數
%u b 轉成無符號十進位制數
%o b 轉成無符號八進位制數
%x b /%x b (unsigned)轉成無符號十六進製制數(x/x 代表轉換後的十六進製制字元的大
小寫)%e/%e 轉成科學計數法(e/e 控制輸出 e/e)
%f/%f 轉成浮點數(小數部分自然截斷)
%g/%g %e 和%f/%e 和%f 的簡寫
%% 輸出%符串格式化:
格式化操作符輔助指令
符號 作用
* 定義寬度或者小數點精度
- 用做左對齊
+ 在正數前面顯示加號( + )
在正數前面顯示空格
# 在八進位制數前面顯示零('0'),在十六進製制前面顯示'0x'或者'0x'(取決於
用的是'x'還是'x')
0 顯示的數字前面填充『0』而不是預設的空格。
% '%%'輸出乙個單一的'%'
(var) 對映變數(字典引數)
m.n m 是顯示的最小總寬度,n 是小數點後的位數。
例:「%10s」%(『abc』)為』 abc』
例:」%03.3f」%(1.45) 為001.450
字串模板函式設定字串格式:在模板中使用$。模板函式是string模組中的方法。
首先用template()方法建立帶佔位符的字串物件,在使用字串物件時,用字串的sbustitute()he safe_substitute()方法指定佔位符的值,如下例所示:
>>>from string import template
>>> s =template('there are $ $ quotation symbols')
>>>print s.substitute(lang='python', howmany=3)
>>> thereare 3 python quotation symbols
特殊字元,控制字元與原始字串:\與r/r
單引號』』, 雙引號 「」 ,三引號』』』 』』』(「」」 」」」)以及反斜槓\是具有特殊含義的字元。
字元\可對字元進行轉義,字元前加\可使之代表特殊含義, 在特殊字元前前加\可取消特殊字元代表的含義,而僅僅將其作為普通字元對待。
\n, \t, \a, \b, \v,\f, \r, \』, \」, \\
在字串前面加r或者r可以取消字串中的轉義字元進行轉義操作,而返回原始字元。
r」c:\log.txt」
unicode: u/u:
unicode 通過使用乙個或多個位元組來表示乙個字元的方法突破了ascii 的限制.在這樣機
制下,unicode 可以表示超過 90,000 個字元。
python中可以通過在字串前面加乙個'u'字首的方式宣告 unicode 字串,這個'u'字首告訴python 後面的字串要編碼成unicode字串. 例:u』i love you』
>>>"hello world" # ascii string
>>>u"hello world" # unicode string
str(obj) 和chr([0-255])只支援acsii編碼字串,unicode(obj)和unichar([0-65535])是用來支援unicode編碼字串。unicode(obj)可以呼叫obj的__unicode__()方法返回乙個unicode字串。
codec是 coder/decoder 的首字母組合,表示字元的編碼方式。因為unicode支援多種編碼方式:utf-8/utf-16/iso8859-1(latin-1)
utf-8: 相容ascii,用1-4個位元組來編碼字元。是最常用的編碼方式。
utf-16: 每個字元編碼用等長的16位字(兩個位元組)來儲存,不相容ascii。在不同的系統上,這兩個位元組順序不一樣。一般的utf-16編碼檔案都需要乙個bom(byte ordermark),或者顯示定義位元組序(大端utf-16-be/小端utf-16-le)
因為unicode支援多種編碼,因此在讀寫字串時要指定編碼方式(encoding引數).
python 的字串物件提供了encode([codec])/decode([codec])方法編碼解碼字串。decode()和 encode()內建函式接受乙個字串做引數返回該字串對應的解碼後/編碼後
的字串
codec=』utf-8』
init_str=』helloworld』
bytes_out=init_str.encode(codec)
程式設計中要提前考慮如何對unicode的支援,否則一旦出現問題,會非常麻煩,浪費很多任務作量。需要了解python各個模組是否支援unicode。
常用unicode 編輯碼
編碼 描述
utf-8 變數長度為 8 的編碼(預設編碼)
utf-16 變數長度為 16 的編碼(大/小端)
utf-16-le 小端 utf-16 編碼
utf-16-be 大端 utf-16 編碼
ascii 7-bit 7 位 ascii 碼表
iso-8859-1 iso 8859-1 (latin-1) 碼表
unicode-escape (定義見 python unicode 建構函式)
raw-unicode-escape(定義見python unicode 建構函式)
native python 用的內部格式
字串模組與函式:
模組 描述
string 字串操作相關函式和工具,比如 template 類. 只支援acsii碼。
re 正規表示式:強大的字串模式匹配模組
struct 字串和二進位制之間的轉換
c/stringio 字串緩衝物件,操作方法類似於 file 物件.
base64 base 16,32,64 資料編譯碼
codecs 解碼器註冊和基類
crypt 進行單方面加密
difflib 找出序列間的不同
hashlib 多種不同安全雜湊演算法和資訊摘要演算法的 api
hma hmac 資訊鑑權演算法的 python 實現
md5 rsa 的 md5 資訊摘要鑑權
rotor 提供多平台的加解密服務
sha niat 的安全雜湊演算法 sha
stringprep 提供用於 ip 協議的 unicode 字串
textwrap 文字打包和填充
unicodedata unicode 資料庫
9 1課堂筆記
課堂筆記 一 1 file類的構造方法 public file string pathname 根據parent抽象的路徑名和child路徑名字串建立乙個新的file物件。pathname指路徑名字串,parent父抽象路徑名 父抽象路徑名既可以是字串,也可以是file物件 public file ...
改善python程式的91個建議讀書筆記1
引論 建議1 理解pythonic 的概念pythonic 也許可以遮陽定義 充分體現python 自身特色的 風格。python 中兩個變數交換只需一行 a,b b,a 遍歷乙個容器時可以為 for i in alist do sth with i 開啟檔案,需要安全的關閉檔案可以為 with o...
改善python程式的91個建議讀書筆記 3
建議7.將常量集中到乙個檔案 python的內建命名空間是支援一小部分常量的,如true,false,none.只是python沒有提供定義常量的直接方式而已.那麼在python中應該如何使用常量呢?一般來說有以下兩種方法 1.通過命名風格來提醒使用者該變數代表的意義為常量.如常量名所有字母大寫,用...