Python學習筆記9 1

2021-07-27 10:26:57 字數 4365 閱讀 3241

字串序列:

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.通過命名風格來提醒使用者該變數代表的意義為常量.如常量名所有字母大寫,用...