Python 的各種符號


Python 的各種符號

Table 1.1. Python命令行選項

選項

作用

-c cmd

在命令行直接執行python代碼。如python -c 'print "hello world"'

-d

腳本編譯后從解釋器產生調試信息。同PYTHONDEBUG=1

-E

忽略環境變量。

-h

顯示python命令行選項幫助信息。

-i

腳本執行后馬上進入交互命令行模式。同PYTHONINSPECT=1

-O

在執行前對解釋器產生的字節碼進行優化。同 PYTHONOPTIMIZE=1

-OO

在執行前對解釋器產生的字節碼進行優化,並刪除優化代碼中的嵌入式文檔字符串。

-Q arg

除法規則選項,-Qold(default)-Qwarn-Qwarnall-Qnew

-S

解釋器不自動導入site.py模塊。

-t

當腳本的tab縮排格式不一致時產生警告。

-u

不緩沖stdinstdoutstderr,默認是緩沖的。同PYTHONUNBUFFERED=1

-v

產生每個模塊的信息。如果兩個-v選項,則產生更詳細的信息。同PYTHONVERBOSE=x

-V

顯示Python的版本信息。

-W arg

出錯信息控制。(arg is action:message:category:module:lineno)

-x

忽略源文件的首行。要在多平台上執行腳本時有用。

file

執行file里的代碼。

-

stdin里讀取執行代碼。

 

Table 2.1. Python運算符列表

運算符

描述

x+yx-y

加、減,“+”號可重載為連接符

x*yx**yx/yx%y

相乘、求平方、相除、求余,“*”號可重載為重復,“%”號可重載為格式化

<<=>>===<>!=

比較運算符

+=-=*=/=%=**=<<=>>=&=^=|=

自變運算符

x|y

按位或

x^y

按位異或

x&y

按位與

~x

按位取反

x<<x>>y

x向左或向右移y

is, is not

等同測試

in, not in

是否為成員測試

orandnot

邏輯運算符

x[i]x[i:j]x.yx(...)

索引,分片,限定引用,函數調用

(...)[...]{...}'...'

元組,列表,字典,轉化為字符串

 

Table 2.2. 運算符優先順序列表(從最高到最低)

運算符

描述

'expr'

字符串轉換

{key:expr,...}

字典

[expr1,expr2...]

列表

(expr1,expr2,...)

元組

function(expr,...)

函數調用

x[index:index]

切片

x[index]

下標索引取值

x.attribute

屬性引用

~x

按位取反

+x-x

正,負

x**y

x*yx/yx%y

乘,除,取模

x+yx-y

加,減

x<<yx>>y

移位

x&y

按位與

x^y

按位異或

x|y

按位或

x<yx<=yx==yx!=yx>=yx>y

比較

x is yx is not y

等同測試

x in yx not in y

成員判斷

not x

邏輯否

x and y

邏輯與

x or y

邏輯或

lambda arg,...:expr

Lambda匿名函數

 

Table 2.3. 

對象/常量

""

"string"

0

>=1

<=-1

()空元組

[]空列表

{}空字典

None

 

Table 3.1. 字符串格式化代碼

格式

描述

%%

百分號標記

%c

字符及其ASCII

%s

字符串

%d

有符號整數(十進制)

%u

無符號整數(十進制)

%o

無符號整數(八進制)

%x

無符號整數(十六進制)

%X

無符號整數(十六進制大寫字符)

%e

浮點數字(科學計數法)

%E

浮點數字(科學計數法,用E代替e)

%f

浮點數字(用小數點符號)

%g

浮點數字(根據值的大小采用%e%f)

%G

浮點數字(類似於%g)

%p

指針(用十六進制打印值的內存地址)

%n

存儲輸出字符的數量放進參數列表的下一個變量中

 

Table 3.2. python支持的轉義字符表

轉義字符

描述

\(在行尾時)

續行符

\\

反斜杠符號

\'

單引號

\"

雙引號

\a

響鈴

\b

退格(Backspace)

\e

轉義

\000

\n

換行

\v

縱向制表符

\t

橫向制表符

\r

回車

\f

換頁

\oyy

八進制數yy代表的字符,例如:\o12代表換行

\xyy

十進制數yy代表的字符,例如:\x0a代表換行

\other

其它的字符以普通格式輸出

 

 

 

 

  • Table 3.3. 列表對象支持的方法

方法

描述

append(x)

在列表尾部追加單個對象x。使用多個參數會引起異常。

count(x)

返回對象x在列表中出現的次數。

extend(L)

將列表L中的表項添加到列表中。返回None

Index(x)

返回列表中匹配對象x的第一個列表項的索引。無匹配元素時產生異常。

insert(i,x)

在索引為i的元素前插入對象x。如list.insert(0,x)在第一項前插入對象。返回None

pop(x)

刪除列表中索引為x的表項,並返回該表項的值。若未指定索引,pop返回列表最后一項。

remove(x)

刪除列表中匹配對象x的第一個元素。匹配元素時產生異常。返回None

reverse()

顛倒列表元素的順序。

sort()

對列表排序,返回nonebisect模塊可用於排序列表項的添加和刪除。

 

Table 3.4. 字典方法

方法

描述

has_key(x)

如果字典中有鍵x,則返回真。

keys()

返回字典中鍵的列表

values()

返回字典中值的列表。

items()

返回tuples的列表。每個tuple由字典的鍵和相應值組成。

clear()

刪除字典的所有條目。

copy()

返回字典高層結構的一個拷貝,但不復制嵌入結構,而只復制對那些結構的引用。

update(x)

用字典x中的鍵值對更新字典內容。

get(x[,y])

返回鍵x,若未找到該鍵返回none,若提供y,則未找到x時返回y

 

 

Table 3.5. 數組類型代碼

代碼

等價的C類型

以字節為單位的最小尺寸

c

char

1

b(B)

byte(unsigned byte)

1

h(H)

short(unsigned short)

2

i(I)

int(unsigned int)

2

l(L)

long(unsigned long)

4

f

float

4

d

double

8

 

 

Table 9.1. mode

模式

描述

r

以讀方式打開文件,可讀取文件信息。

w

以寫方式打開文件,可向文件寫入信息。

a

以追加方式打開文件,文件指針自動移到文件尾。

r+

以讀寫方式打開文件,可對文件進行讀和寫操作。

w+

消除文件內容,然后以讀寫方式打開文件。

a+

以讀寫方式打開文件,並把文件指針移到文件尾。

b

以二進制模式打開文件,而不是以文本模式。該模式只對WindowsDos有效,類Unix的文件是用二進制模式進行操作的。

Table 9.2. bufsize

bufsize取值

描述

0

禁用緩沖

1

行緩沖

>1

指定緩沖區的大小

<1

系統默認的緩沖區大小

open()函數返回一個文件對象,我們可通過read()write()函數對文件進行讀寫操作,下面是一些文件對象方法:

Table 9.3. 文件對象方法

方法

描述

f.close()

關閉文件,記住用open()打開文件后一定要記得關閉它,否則會占用系統的可打開文件句柄數。

f.fileno()

獲得文件描述符

f.flush()

刷新輸出緩存

f.isatty()

如果文件是一個交互終端,則返回True,否則返回False

f.read([count])

讀出文件,如果有count,則讀出count個字節。

f.readline()

讀出一行信息。

f.readlines()

讀出所有行,也就是讀出整個文件的信息。

f.seek(offset[,where])

把文件指針移動到相對於whereoffset位置。offset0表示文件開始處,這是默認值 ;1表示當前位置;2表示文件結尾。

f.tell()

獲得文件指針位置。

f.truncate([size])

截取文件,使文件的大小為size

f.write(string)

string字符串寫入文件。

f.writelines(list)

list中的字符串一行一行地寫入文件。

 

 

Table 10.1. 正則表達式基本字符

字符

描述

text

匹配text字符串

.

匹配除換行符之外的任意一個單個字符

^

匹配一個字符串的開頭

$

匹配一個字符串的末尾

在正則表達式中,我們還可用匹配限定符來約束匹配的次數。

Table 10.2. 匹配限定符

最大匹配

最小匹配

描述

*

*?

重復匹配前表達式零次或多次

+

+?

重復匹配前表達式一次或多次

?

??

重復匹配前表達式零次或一次

{m}

{m}?

精確重復匹配前表達式m

{m,}

{m,}?

至少重復匹配前表達式m

{m,n}

{m,n}?

至少重復匹配前表達式m次,至多重復匹配前表達式n

據上所述,".*"為最大匹配,能匹配源字符串所有能匹配的字符串。".*?"為最小匹配,只匹配第一次出現的字符串。如:d.*g能匹配任意以d開頭,以g結尾的字符串,如"debug""debugging",甚至"dog is walking"。而d.*?g只能匹配"debug",在"dog is walking"字符串中,則只匹配到"dog "

在一些更復雜的匹配中,我們可用到組和運算符。

Table 10.3. 組和運算符

描述

[...]

匹配集合內的字符,如[a-z],[1-9][,./;']

[^...]

匹配除集合外的所有字符,相當於取反操作

A|B

匹配表達式AB,相當於OR操作

(...)

表達式分組,每對括號為一組,如([a-b]+)([A-Z]+)([1-9]+)

\number

匹配在number表達式組內的文本

有一組特殊的字符序列,用來匹配具體的字符類型或字符環境。如\b匹配字符邊界,food\b匹配"food""zoofood",而和"foodies"不匹配。

Table 10.4. 特殊字符序列

字符

描述

\A

只匹配字符串的開始

\b

匹配一個單詞邊界

\B

匹配一個單詞的非邊界

\d

匹配任意十進制數字字符,等價於r'[0-9]'

\D

匹配任意非十進制數字字符,等價於r'[^0-9]'

\s

匹配任意空格字符(空格符、tab制表符、換行符、回車、換頁符、垂直線符號)

\S

匹配任意非空格字符

\w

匹配任意字母數字字符,等價於[a-zA-Z0-9_]。注意,包含'_'字符。

\W

匹配任意非字母數字字符,等價於[^a-zA-Z0-9_]

\Z

僅匹配字符串的尾部

\\

匹配反斜線字符

有一套聲明(assertion)對具體事件進行聲明。

Table 10.5. 正則表達式聲明

聲明

描述

(?iLmsux)

匹配空字符串,iLmsux字符對應下表的正則表達式修飾符。

(?:...)

匹配圓括號內定義的表達式,但不填充字符組表。

(?P<name>)

匹配圓括號內定義的表達式,但匹配的表達式還可用作name標識的符號組。

(?P=name)

匹配所有與前面命名的字符組相匹配的文本。

(?#...)

引入注釋,忽略圓括號內的內容。

(?=...)

如果所提供的文本與下一個正則表達式元素匹配,這之間沒有多余的文本就匹配。這允許在一個表達式中進行超前操作,而不影響正則表達式其余部分的分析。如"Martin"其后緊跟"Brown",則"Martin(?=Brown)"就只與"Martin"匹配。

(?!...)

僅當指定表達式與下一個正則表達式元素不匹配時匹配,是(?=...)的反操作。

(?<=...)

如果字符串當前位置的前綴字符串是給定文本,就匹配,整個表達式就在當前位置終止。如(?<=abc)def表達式與"abcdef"匹配。這種匹配是對前綴字符數量的精確匹配。

(?<!...)

如果字符串當前位置的前綴字符串不是給定的正文,就匹配,是(?<=...)的反操作。

正則表達式還支持一些處理標志,它會影響正則式的執行方法。

Table 10.6. 處理標志

標志

描述

IIGNORECASE

忽略表達式的大小寫來匹配文本。

 

 

Table 10.7. MatchObject對象方法

方法

描述

expand(template)

展開模板中用反斜線定義的內容。

m.group([group,...])

返回匹配的文本,是個元組。此文本是與給定group或由其索引數字定義的組匹配的文本,如果沒有組定組名,則返回所有匹配項。

m.groups([default])

返回一個元組,該元組包含模式中與所有組匹配的文本。如果給出default參數,default參數值就是與給定表達式不匹配的組的返回值。default參數的默認取值為None

m.groupdict([default])

返回一個字典,該字典包含匹配的所有子組。如果給出default參數,其值就是那些不匹配組的返回值。default參數的默認取值為None

m.start([group])

返回指定group的開始位置,或返回全部匹配的開始位置。

m.end([group])

返回指定group的結束位置,或返回全部匹配的結束位置。

m.span([group])

返回兩元素組,此元組等價於關於一給定組或一個完整匹配表達式的(m.start(group),m.end(group)))列表

m.pos

傳遞給match()search()函數的pos值。

m.endpos

傳遞給match()search()函數的endpos值。

m.lastindex

 

m.lastgroup

 

m.re

創建這個MatchObject對象的正則式對象

m.string

提供給match()search()函數的字符串。

 

 

Table 10.8. 正則式對象方法/屬性

方法/屬性

描述

r.search(string[,pos[,endpos]])

search()函數,但此函數允許指定搜索的起點和終點

r.match(string[,pos[,endpos]])

match()函數,但此函數允許指定搜索的起點和終點

r.split(string[,max])

split()函數

r.findall(string)

findall()函數

r.sub(replace,string[,count])

sub()函數

r.subn(replace,string[,count])

subn()函數

r.flags

創建對象時定義的標志

r.groupindex

r'(?Pid)'定義的符號組名字映射為組序號的字典

r.pattern

在創建對象時使用的模式

 







免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM