在寫(xiě)python程序時(shí),常能用到一些函數(shù)和方法,總結(jié)一下,保存起來(lái),方便查詢。
成都創(chuàng)新互聯(lián)于2013年創(chuàng)立,先為城廂等服務(wù)建站,城廂等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為城廂企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
一、內(nèi)置函數(shù)
# abs()獲取數(shù)字絕對(duì)值
# chr(i)數(shù)字轉(zhuǎn)換為字符類型
# divmod() 獲取兩個(gè)數(shù)值的商和余數(shù)
# enumerate() 將可遍歷序列組合為索引序列
# float()轉(zhuǎn)換為浮點(diǎn)數(shù)
# format() 格式化字符串
# int()轉(zhuǎn)換為整數(shù)?
# input() 接受用戶輸入內(nèi)容
# len() 計(jì)算元素個(gè)數(shù)
# max() 返回最大值
# min() 返回最小值
# math.ceil() 返回指定數(shù)值的上舍整數(shù)
# open()打開(kāi)文件并返回文件對(duì)象
# pow() 冪運(yùn)算
# print()打印輸出?
# range() 生成器
# reversed()反轉(zhuǎn)所有元素
# round()四舍五入求值
# sorted()對(duì)可迭代對(duì)象進(jìn)行排序?
# str() 轉(zhuǎn)換為字符串
# sum() 求和
# set() 創(chuàng)建集合
# tuple() 將序列轉(zhuǎn)換為元組
# zip()將可迭代對(duì)象打包成元組
二、方法
# append() 添加列表元素
# capitalize()首字母轉(zhuǎn)換為大寫(xiě)?
# count()字符出現(xiàn)次數(shù)
# close() 關(guān)閉文件
# decode() 解碼字符串
# dict.keys() 獲取字典所有的鍵
# find()字符串首次出現(xiàn)的索引
# f.read() 讀取文件內(nèi)容
# dict.update()更新字典
# dict.items() 獲取字典鍵/值對(duì)
# dict.get() 返回指定鍵的值
# encode() 編碼字符串
# list.sort() 排序列表元素
# index() 元素首次出現(xiàn)的索引
# isdigit() 判斷字符串是否只由數(shù)字組成
# isupper() 是否所有字母都為大寫(xiě)
# isnum() 判斷字符串是否由字母和數(shù)字組成
# islower() 是否所有字母都為小寫(xiě)
# isdecimal() 檢查字符串是否只包含十進(jìn)制字符
# isalpha() 檢測(cè)字符串是否為純字母
# random.shuffle()隨機(jī)排序
# random.sample()返回?zé)o重復(fù)隨機(jī)數(shù)列表
# random.choice() 返回一個(gè)隨機(jī)元素
# random.randint() 生成指定范圍的隨機(jī)整數(shù)
# random.randrange() 生成指定范圍的指定遞增基數(shù)隨機(jī)整數(shù)
# pop() 刪除列表中的元素
# remove()刪除列表中的指定元素
# strip()去除空格
# lstrip()去除左側(cè)空格
# rstrip() 去除右側(cè)空格
# readline() 讀取單行內(nèi)容
# root.after() Tkinter中等待一段時(shí)間后再執(zhí)行命令
# str.isnumeric() 驗(yàn)證字符串是否為數(shù)字(適用于Unicode)
# split()分割字符串
# ord() 將字符轉(zhuǎn)換為整數(shù)
# replace() 字符串替換
# ljust() 左對(duì)齊填充
# rjust() 左對(duì)齊填充
# readlines() 讀取所有行內(nèi)容
# datetime.datetime.now() 返回指定時(shí)區(qū)的本地日期時(shí)間
# datetime.datetime.today() 獲取當(dāng)前本地日期的date對(duì)象
# datetime.utcnow() 返回當(dāng)前UTC時(shí)間的datetime對(duì)象
# time.strptime()把時(shí)間字符串解析為元組
# time.time()返回當(dāng)前時(shí)間的時(shí)間戳
# time.sleep()暫停指定秒數(shù)
# time.strftime() 返回指定格式的日期字符串
# time.mktime() 接收時(shí)間元組并返回時(shí)間戳
# os.getcwd() 獲取當(dāng)前工作目錄
# os.listdir() 獲取指定路徑下的目錄和文件列表
# os.makedirs() 遞歸創(chuàng)建目錄
# os.rename() 重命名目錄或文件
# os.path.exists() 判斷路徑是否存在
# upper() 全部轉(zhuǎn)換為大寫(xiě)字母
# lower()? 全部轉(zhuǎn)換為小寫(xiě)字母
# sys.stdout.write() 標(biāo)準(zhǔn)輸出打印
# sys.stdout.flush()刷新輸出?
# shutil.copy() 復(fù)制單個(gè)文件到另一文件或目錄
# write() 寫(xiě)入文件內(nèi)容
# winsound.Beep() 打開(kāi)電腦揚(yáng)聲器
# zfill() 在字符串前面填充0
三、循環(huán)語(yǔ)句
# break終止當(dāng)前循環(huán)
# continue 終止本循環(huán)進(jìn)入下一次循環(huán)
# with open() as file 以with語(yǔ)句打開(kāi)文件(數(shù)據(jù)保存)
四、轉(zhuǎn)義字符
\ 行尾續(xù)行符
\' 單引號(hào)?
\'' 雙引號(hào)
\a 響鈴
\e 轉(zhuǎn)義
\n 換行
\t 橫向制表符
\f 換頁(yè)
\xyy 十六進(jìn)制yy代表的字符
\\反斜杠符號(hào)
\b 退格
\000 空
\v 縱向制表符
\r 回車
\0yy 八進(jìn)制yy代表的字符
\other 其他的字符以普通格式輸出
1.什么是字符串
序列,有序,不可變的
用單引號(hào)或者雙引號(hào)任意字符集,
2,字符串中的字符
普通字符:'23', 'sdfsdfsd', '+ + (**^%$#@@', '發(fā)技術(shù)規(guī)范舉案說(shuō)法'
'''
python中的字符采用的是unicode編碼
1.什么是編碼
就是數(shù)字和字符的一一對(duì)應(yīng)的,其中字符對(duì)應(yīng)的數(shù)字就是字符的編碼
a - 97
b - 98
2.編碼方式
ASCII碼表 :針對(duì)數(shù)字字符,字母字符(26個(gè)小寫(xiě)字母和26個(gè)大寫(xiě)字母),一些英文中對(duì)應(yīng)的符號(hào)進(jìn)行編碼
小寫(xiě)字母要大于大寫(xiě)字母的編碼值,采用一個(gè)字節(jié)對(duì)字符進(jìn)行編碼,只能對(duì)128個(gè)字符進(jìn)行編碼
Unicode碼 :Unicode碼包含了ASCII碼表,同時(shí)能夠?qū)κ澜缟纤姓Z(yǔ)言對(duì)應(yīng)的符號(hào)進(jìn)行編碼,
采用兩個(gè)字節(jié)進(jìn)行編碼,能夠編碼65536個(gè)字符
3.兩個(gè)函數(shù)
chr(編碼值)--將字符編碼值轉(zhuǎn)化為字符
ord(字符)-- 獲取字符對(duì)應(yīng)的編碼值
中文編碼范圍 0x4e00~~~~~0x9fa5
一旦一個(gè)字符串確定了,那么字符串中每個(gè)字符的位置就確定了,而且每個(gè)字符會(huì)對(duì)應(yīng)一個(gè)表示其位置和順序的下標(biāo)值
1,下標(biāo)(索引)
字符串中的每一個(gè)字符都有一個(gè)下標(biāo),代表在字符串中的位置
下標(biāo)范圍是:0到字符串長(zhǎng)度---1 0(代表第一個(gè)字符的位置)
-1 ~ 字符串長(zhǎng)度 -1(代表字符串中最后一個(gè)字符的位置)
'abc' # ''
獲取單個(gè)字符
語(yǔ)法:字符串[下標(biāo)]--獲取字符串中指定下標(biāo)對(duì)應(yīng)的字符
說(shuō)明 字符串--可以是字符串常量,也可以是字符串變量
[]---固定寫(xiě)法
下標(biāo)--字符的下標(biāo),不能越界。
獲取部分字符
語(yǔ)法:字符串[開(kāi)始下標(biāo):結(jié)束下標(biāo):步長(zhǎng)]
步長(zhǎng)-- 一個(gè)整數(shù)
功能: 從開(kāi)始下標(biāo)獲取到結(jié)束下標(biāo)前位置,每次下標(biāo)值增加步長(zhǎng),結(jié)果是字符串
注意:當(dāng)步長(zhǎng)是整數(shù),開(kāi)始下標(biāo)對(duì)應(yīng)的字符要在結(jié)束下標(biāo)的前面
當(dāng)步長(zhǎng)是負(fù)數(shù),開(kāi)始下標(biāo)對(duì)應(yīng)的字符要在結(jié)束下標(biāo)的后面
方法2:字符串[開(kāi)始下表:結(jié)束下標(biāo)](相當(dāng)于步長(zhǎng)是一)
獲取部分字符,省略下標(biāo)
獲取部分字符的時(shí)候開(kāi)始下標(biāo)和結(jié)束下標(biāo)都可以省略
a.開(kāi)始下標(biāo)省略
字符串[:結(jié)束下標(biāo):步長(zhǎng)] 或者字符串[:結(jié)束下表]
字符串是正數(shù):從字符串開(kāi)頭開(kāi)始往后獲取
字符串是負(fù)數(shù):從字符串結(jié)尾開(kāi)始往前獲取
結(jié)束下標(biāo)省略
字符串[開(kāi)始下標(biāo)::步長(zhǎng)]
步長(zhǎng)是正數(shù),從開(kāi)始下標(biāo)從前往后獲取到字符串最后
步長(zhǎng)是負(fù)數(shù),從開(kāi)始下標(biāo)從后往前獲取到字符串開(kāi)始
,加法運(yùn)算
字符串1 + 字符串2 將兩個(gè)字符串拼接在一起,產(chǎn)生一個(gè)新的字符串
乘法運(yùn)算
字符串 * n(正整數(shù)):字符串中的內(nèi)容重復(fù)n次產(chǎn)生一個(gè)新的字符串
比較運(yùn)算符
a. == !=
字符串1 == 字符串2 ---------判斷兩個(gè)字符串是否相等
b. , , = ,= (所有的大寫(xiě)字母編碼都比小寫(xiě)的編碼小)
兩個(gè)字符串比較大下:從第一個(gè)開(kāi)始,找到第一對(duì)不同的字符,然后比較他們的編碼值的大小
in 和 not in
字符串1 in 字符串2 :判斷字符串2是否包含字符串1
字符串1 not in 字符串2 :判斷字符串2是否不包含字符串1
len函數(shù)
len(序列)------- 獲取序列的長(zhǎng)度
len(字符串)----獲取字符串中字符的個(gè)數(shù)
str函數(shù)
str(數(shù)據(jù)): 將數(shù)據(jù)轉(zhuǎn)換成字符串
其他數(shù)據(jù)轉(zhuǎn)換成字符串
所有的數(shù)據(jù)都可以轉(zhuǎn)換成字符串,轉(zhuǎn)換的時(shí)候就是在數(shù)據(jù)的值的最外面加引號(hào)
補(bǔ)充:系統(tǒng)對(duì)應(yīng)的類型名不能用來(lái)給變量命名
字符串轉(zhuǎn)其他類型
字符串轉(zhuǎn)整數(shù): int(字符串) 去掉引號(hào)后本身就是個(gè)整數(shù)的字符串才能轉(zhuǎn)
字符串轉(zhuǎn)浮點(diǎn)型: Float(字符串)
字符串轉(zhuǎn)布爾: boll(字符串) ,除了空串會(huì)轉(zhuǎn)化成False,其他的都會(huì)轉(zhuǎn)化成True
格式字符串
指的是字符串中通過(guò)格式占位符來(lái)表示字符串中變化,然后后面再通過(guò)其他的值來(lái)給占位符賦值
含有格式占位符的字符串 % (占位符對(duì)應(yīng)的值)
說(shuō)明:
含有格式占位符有固定寫(xiě)法,可以有多個(gè)
%----固定寫(xiě)法
()----里面值 的個(gè)數(shù)要和前面的格式占位符一一對(duì)應(yīng)
%d--整數(shù)
%s--字符串
%f--小數(shù)
%c--字符(可以將數(shù)字轉(zhuǎn)換成字符)
字符串.capitalize() - 將字符串第一個(gè)字符轉(zhuǎn)換成大寫(xiě)
2.字符串對(duì)齊
字符串.center(width, fillchar) - 居中
字符串.ljust(width, fillchar) - 左對(duì)齊
字符串.rjust(width, fillchar) - 右對(duì)齊
width - 正整數(shù),表示新的字符串的寬度
fillchar - 字符, 填充字符串
字符串.isalpha 若字符串至少有一個(gè)字符,并且所有字符都是字母就返回True,否則返回False
字符串。isdigit() 若字符串中只包含數(shù)字就返回True,否則返回False
若字符串中只包含數(shù)字字符,則返回True,否則返回 False
3.join(seq)
字符串1.join(字符串2): 將字符串1的內(nèi)容插入到字符串2的每個(gè)字符之間
max(字符串) 編碼最大
min(字符串)
count(str)|返回 str 在 string 里面出現(xiàn)的次數(shù)
|islower()|如果字符串中包含至少一個(gè)區(qū)分大小寫(xiě)的字符,并且所有這些(區(qū)分大小寫(xiě)的)字符都是小寫(xiě),則返回 True,否則返回 False
expandtabs(tabsize=8)|把字符串 string 中的 tab 符號(hào)轉(zhuǎn)為空格,tab 符號(hào)默認(rèn)的空格數(shù)是 8 。
|isspace()|如果字符串中只包含空白,則返回 True,否則返回 False
endswith(suffix)|檢查字符串是否以 obj 結(jié)束,如果beg 或者 end 指定則檢查指定的范圍內(nèi)是否以 obj 結(jié)束,如果是,返回 True,否則返回 False.
字符串 :在python中是作為序列存在的,序列中的元素具有從左到右的順序,并根據(jù)他們的相對(duì)位置進(jìn)行讀取和儲(chǔ)存。嚴(yán)格意義來(lái)說(shuō),字符串是一系列單個(gè)字符組成的序列,其他類型的序列還包括列表和元組。在一串字符兩側(cè)加上雙引號(hào)或者單引號(hào)即可創(chuàng)建字符串。
注意 :如果字符串中需要出現(xiàn)雙引號(hào)或者單引號(hào),則有兩種方法。
1)使用轉(zhuǎn)義字符(\)進(jìn)行轉(zhuǎn)義。
2)將雙引號(hào)和單引號(hào)配合使用,即若向想打印單引號(hào),可以使用雙引號(hào)表示字符串,在字符串中只用一個(gè)單引號(hào)。反之亦然。
在一個(gè)字符串前面加上r;則會(huì)自動(dòng)為字符串中的反斜杠\轉(zhuǎn)義,使其只代表一個(gè)反斜杠\。但是注意,原始字符串最后不能有反斜杠\,否則會(huì)發(fā)生語(yǔ)法錯(cuò)誤。如果非要在原始字符串最后加上,則可以寫(xiě)為\。
運(yùn)行結(jié)果為:
有時(shí)我們需要?jiǎng)?chuàng)建一個(gè)跨行的字符串,則可以使用三引號(hào)來(lái)創(chuàng)建。
運(yùn)行結(jié)果為
1)可以通過(guò)len()函數(shù)得到序列的長(zhǎng)度。
運(yùn)行結(jié)果為:
2)可以通過(guò)索引操作得到序列的各個(gè)元素值。python中序列的索引是從0開(kāi)始依次向后推移。
運(yùn)行結(jié)果為:
3)python還支持反向索引,是從最后一個(gè)向前推移的。-1是指序列中的最后一個(gè)元素值,-len(str)是指該序列的第一個(gè)元素值。
運(yùn)行結(jié)果為:
4)序列還支持一種 分片(slice) 的操作,這是一種能夠一步提取整個(gè)分片的方法。
分片可以看作是字符串中一部提取出其中一部分的方法。其一般形式為:X[I:J],表示從X序列中取出第I個(gè)元素到不包含第J個(gè)元素的部分,結(jié)果為返回一個(gè)新的對(duì)象。
運(yùn)行結(jié)果為:
在一個(gè)分片(slice)中,左邊界默認(rèn)為0。同時(shí)應(yīng)注意負(fù)偏移量在分片中的邊界,也應(yīng)為左側(cè)數(shù)字比右側(cè)數(shù)字小??截惾孔址挠梅閟tr[:]。
運(yùn)行結(jié)果為:
5)作為一個(gè)序列,字符串還支持用“+”來(lái)合并字符串。
運(yùn)行結(jié)果為:
6) 不可變性 ,python中字符串具有不可變性,在創(chuàng)建一個(gè)字符串之后不可以通過(guò)對(duì)其某一位置進(jìn)行賦值而改變?cè)撟址?,但可以通過(guò)創(chuàng)建一個(gè)新的字符串并以同一個(gè)變量名命名。
運(yùn)行結(jié)果為:
7)除了一般的序列操作,字符串還有一些其特有的操作方法。
如find()方法,可以用于查找一個(gè)子字符串,可以返回該子字符串的索引值。但如果存在多個(gè)符合的子字符串,只會(huì)返回第一個(gè)索引值。如果不存在該子字符串,則返回-1。replace(S1,S2)方法會(huì)將字符串中的S1替換為S2。
運(yùn)行結(jié)果如下:
關(guān)于字符串,python還有許多內(nèi)置函數(shù),可以通過(guò)調(diào)用dir()函數(shù)來(lái)查看。
已有字符串形式的函數(shù)名稱,那么如何調(diào)用這個(gè)函數(shù)呢?
通過(guò)調(diào)用內(nèi)置函數(shù)locals()和globals()返回的字典對(duì)象,就可以可以獲得名稱與對(duì)象的映射關(guān)系。其中,locals()僅在全局范圍內(nèi)調(diào)用時(shí)可以獲得函數(shù)對(duì)象。 我們來(lái)看以下的例子。
需要注意的是,使用上述方法通過(guò)字符串調(diào)用函數(shù)時(shí),為了系統(tǒng)的安全,防止執(zhí)行任意函數(shù),需要對(duì)函數(shù)名做一些處理,也就是使用統(tǒng)一的前綴為這些函數(shù)命名。例如在上述例子中,使用前綴cmd_+函數(shù)名的形式定義函數(shù)(cmd_help,cmd_sum)。
在傳入函數(shù)名字符串時(shí),只傳入函數(shù)名的后半部分(如"help","sum"),由程序添加前綴后組成完整的函數(shù)名,再調(diào)用該函數(shù)。
對(duì)于類的成員函數(shù),則可以使用getattr()獲得類成員函數(shù)。
上述代碼通過(guò)字符串調(diào)用了類成員函數(shù),與前一段代碼執(zhí)行的結(jié)果相同。
此外,還可以使用字典將字符串與函數(shù)對(duì)應(yīng)起來(lái)調(diào)用,缺點(diǎn)就是每增加一個(gè)函數(shù)需要相應(yīng)在字典對(duì)象中添加相應(yīng)的鍵值,增加代碼維護(hù)工作量。
以上代碼在Python 3.6以上運(yùn)行通過(guò)。