Python程式設計入門 第六章 字串 學習筆記

2021-07-24 03:35:18 字數 4202 閱讀 2184

一、字串索引

#codesum.py

defcodesum1

(s):

"""returns the sums of the

character codes of s.

"""total=0

for c in s:

total=total+ord(c)

return total

myinput=input("please input a string:")

print("你輸入字串的字元編碼和為:"+str(codesum1(myinput)))

上述**中直接通過」for c in s」來進行索引,每次c迭代為s中的字元,表示式簡潔明瞭,ord()函式功能是返回字元的編碼數值。

如果使用正索引則如下,表達方面相對顯得更複雜:

#codesum1.py

defcodesum1

(s):

"""returns the sums of the

character codes of s.

"""total=0

for i in range(len(s)):

total=total+ord(s[i])

return total

myinput=input("please input a string:")

print("你輸入字串的字元編碼和為:"+str(codesum1(myinput)))

二、字元

1、之前提到函式ord()可以獲得字元對應的編碼值,如ord(「a」),為97。同樣,給定字元編碼,也可以獲得其對應的字元,如chr(97),為「a」。

2、轉義字元:一般常用的轉義字元:

\對應反斜槓

\』對應單引號

\」對應雙引號

\n對應換行符

\r對應回車

\t對應水平製表符

如》print(「\」and\』 are quotes」)

輸出為:」and』 are quotes

print(「\ must be written \\」)

輸出為:\ must be written \

三、字串切片

def

get_ext

(fname):

i=0for c in fname:

if c=='.':

break

i+=1

return fname[i+1:]

fn=input("please input a filename:")

print("你輸入檔名的字尾為:"+get_ext(fn))

也可以利用rfind函式:

def

get_ext

(fname):

#從右邊開始查詢字元"."

dot=fname.rfind(".")

#沒有找到

if dot==-1:

return

""else:

return fname[dot+1:]

fn=input("please input a filename:")

print("你輸入檔名的字尾為:"+get_ext(fn))

四、標準字串函式

1、測試函式

主要包括:

s.endswith(t):是否以t結尾

s.startswith(t):是否以t開頭

s.isalnum():是否只包涵字母或數字

s.isalpha():是否只包含字母

s.islower():是否只包含小寫字母

s.isupper():是否只包含大寫字母

t in s:s是否包含字串t

2、搜尋函式

主要包括:

s.find(t):如果沒有找到子串t,則返回-1;否則返回t在s中的起始位置

s.rfind(t):與find相同,但從右重點內容往左搜尋

s.index(t):與find相同,但如果找不到t則引發乙個異常

s.rindex(t):與index相同,但從右往左搜尋

3、改變大小寫的函式

s.capitalize():將s[0]改為大寫

s.lower():將s所有字母都小寫

s.upper():將s所有字母都大寫

s.swapcase():將s中字母大小寫互換

上述返回字串

4、設定格式的函式

s.center(n,ch):包含n個字元的字串,其中s位於**,兩邊用字元ch填充

s.ljust(n,ch):包含n個字元的字串,其中s位於左邊,右邊用字元ch填充

s.rjust(n,ch):包含n個字元的字串,其中s位於右邊,左邊用字元ch填充

上述返回字串

5、剝除函式

s.strip(ch):從s開頭和末尾刪除所有包含在字串ch中的字元

s.lstrip(ch):從s開頭刪除所有包含在字串ch中的字元

s.rstrip(ch):從s末尾刪除所有包含在字串ch中的字元

上述返回字串

6、拆分函式

s.partition(t):將s拆分為三個字串head、t、tail。head為t前面的子串,tail為t後面的子串。

s.rpartition(t):與partition相同,但從s右邊開始搜尋t

s.split(t):以t為分隔符,將s劃分成一系列的子串,並返回乙個由這些子串組成的列表

s.rsplit(t):與split相同,但從右邊開始搜尋t

s.splitlines():返回乙個由s中各行組成的列表

7、替換函式

s.replace(old,new):將s中的每個old替換為new

s.expandtabs(n):將s中的每個製表符替換為n個空格

上述返回字串

8、其他函式

s.count(t):返回t在s中出現的次數

s.encode():設定s的編碼

s.join(seq):使用s將seq中字串連線成乙個字串

s.zfill(width):在s左邊新增足夠多的0使得字串長度為width

五、正規表示式

一些簡單的正規表示式運算子

xy?:可描述x和xy(?表示其左邊的字元是可選可不選的)

x|y:可描述x和y

x*:可描述由0或更多個x組成的字串

x+:可描述至少由1個x組成的字串

正規表示式中可使用圓括號指出將運算子用於哪個子串。如:

(ha)+!:表示ha!,haha!,hahaha!…

ha+!:表示ha!,haa!,haaa!…

1、使用正規表示式匹配字串

對於程式如下:

def

is_done1

(s):

return s=='done'

or s=='quit'

#使用正規表示式

import re #匯入正規表示式庫

defis_done2

(s):

return re.match('done|quit',s)!=none

函式re.match(regex,s)表示當regex與s不匹配時返回none,否則返回乙個特殊的正規表示式匹配物件。針對上例,如果s不為』done』或』quit』中之一,則re.match()返回none。

如果要識別乙個:開頭為乙個或多個』ha』,末尾為乙個或多個『!』,的字串。則可以通過正規表示式匹配更容易:

import re

defis_funny

(s):

return re.match('(ha)+!+',s)!=none

程式設計第六章總結

一 主要內容摘要 1 for語句 for 表示式1 表示式2 表示式3 迴圈體語句 用途 在迴圈頂部進行迴圈條件測試,如果迴圈條件第一次迴圈就為假,則迴圈體一次也不執行,即用於實現當型迴圈控制結構。適用於迴圈次數已知 技術控制的迴圈。例 輸出1 100之間所有偶數 include using nam...

第六章 字元裝置

記錄一下 建立乙個簡單的字元裝置的編碼過程 前提準備 已經編譯好的linux核心 進入.drivers char 目錄 這裡存放著這字元裝置驅動 mkdir globalmem 建立乙個我們新建驅動的目錄並進入 新建globalmem.c檔案,清單如下 include include include...

mysql第六章 第六章 mysql日誌

第六章 mysql日誌 一 錯誤日誌 錯誤日誌的預設存放路徑是 mysql 存放資料的地方 hostname.err 1.修改錯誤日誌存放路徑 mysqld log error data mysql mysql.log 2.檢視配置命令 show variables like log error 3...