一、字串索引
#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...