-
繼承類super用法
super(子類, self).父類方法(父類屬性1,父類屬性2)
查看全部 -
匿名函數(shù)使用lambda定義:lambda x: x * x,就可以完成原來顯式定義的f(x)函數(shù)的功能,
冒號前面的x表示匿名函數(shù)的參數(shù),
后面的是一個表達(dá)式,
匿名函數(shù)有個限制,就是只能有一個表達(dá)式,不寫return,
返回值就是該表達(dá)式的結(jié)果。
查看全部 -
對字符串排序時,有時候忽略大小寫排序更符合習(xí)慣。請利用sorted()高階函數(shù),實(shí)現(xiàn)忽略大小寫排序的算法。
輸入:['bob', 'about', 'Zoo', 'Credit']
輸出:['about', 'bob', 'Credit', 'Zoo']
思路:將元素統(tǒng)一成小寫或者大寫,再排序
sorted接受key參數(shù),用來指定排序的字段,key的值是一個函數(shù),接受待排序列表的元素作為參數(shù),并返回對應(yīng)需要排序的字段。
sorted(需要排序的內(nèi)容,key,reverse = True(降序)/False(升序))
用key的內(nèi)容來排序,然后一一對應(yīng)到需要排序的內(nèi)容予以排序。
l5 = ['bob', 'about', 'Zoo', 'Credit']
def name1(item):
??? return item.upper()
print(sorted(l5,key = name1))
key的內(nèi)容是l5經(jīng)過函數(shù)后的內(nèi)容['BOB', 'ABOUT', 'ZOO', 'CREDIT'],
對key進(jìn)行排序,得到['ABOUT', 'BOB', 'CREDIT','ZOO'],
逐一對應(yīng)給實(shí)際要排序的內(nèi)容['bob', 'about', 'Zoo', 'Credit']進(jìn)行排序。查看全部 -
filter函數(shù)
filter(函數(shù)1,list)把list傳入函數(shù)1,得到結(jié)果,進(jìn)行判斷,輸出True的值,去掉False的值
Python把0、空字符串和None看成False,其他數(shù)值和非空字符串都看成True
.strip()
刪除首尾的空白字符(包括'\n', '\r', '\t', ' '),在字符串中間的不刪除
加參數(shù)則刪除首尾的對應(yīng)參數(shù)查看全部 -
from functools import reduce
def a(x,y):
??? return x * y
l2 = [1,3,5,7,9]
print(reduce(a,l2))
reduce函數(shù)
reduce(函數(shù)1(參數(shù)1,參數(shù)2),list,初始值)
1、py3的reduce函數(shù)是在functools中,調(diào)用前需要先import
2、reduce函數(shù)要求調(diào)用的函數(shù)是接收2個參數(shù)
3、reduce可以設(shè)置初始值,可以不設(shè)置查看全部 -
map()函數(shù)
定義函數(shù)1
for item in map(函數(shù)1,要進(jìn)行函數(shù)計算的list)查看全部 -
有必要注意的是,返回函數(shù)和返回函數(shù)值的語句是非常類似的,
返回函數(shù)時,不能帶小括號,
返回函數(shù)值時,則需要帶上小括號以調(diào)用函數(shù)。
查看全部 -
__slots__的目的是限制當(dāng)前類所能擁有的屬性,避免因?yàn)橥獠繉傩缘牟僮鲗?dǎo)致類屬性越來越難以管理查看全部
-
如果一個類表現(xiàn)得像一個list,想使用len()函數(shù)來獲取元素個數(shù)時,則需要實(shí)現(xiàn)__len__()方法查看全部
-
在定義 Person 類時,可以為Person類添加一個特殊的__init__()方法,當(dāng)創(chuàng)建實(shí)例時,__init__()方法被自動調(diào)用,我們就能在此為每個實(shí)例都統(tǒng)一加上以下屬性查看全部
-
with關(guān)鍵字對資源進(jìn)行訪問的場合,會確保不管在使用過程中是否發(fā)生異常,都會執(zhí)行必要的“清理”的操作,釋放資源,比如文件使用后自動關(guān)閉等等。
with open(文件路徑文件名,'r/w/a')as 變量名:
查看全部 -
with關(guān)鍵字,對資源訪問后執(zhí)行清理操作,釋放資源
with open(文件路徑文件名,'r/w/a')as 變量名:
查看全部 -
with關(guān)鍵字,對資源訪問后執(zhí)行清理操作,釋放資源
with open(文件路徑文件名,'r/w/a')as 變量名:
查看全部 -
追加內(nèi)容:
a打開文件并在末尾追加內(nèi)容
ab以二進(jìn)制格式打開文件在末尾追加內(nèi)容
a+打開文件并使用追加進(jìn)行讀寫
追加內(nèi)容后,游標(biāo)是在內(nèi)容末尾,此時使用readlines(),會返回空列表
文件名.seek()
移動文件的游標(biāo)位置,它接受一個參數(shù),表示文件的位置,
0:文件首部,
1:當(dāng)前位置,
2:文件尾部
通過seek()可以把文件游標(biāo)移動到文件首部但不刪除文件的內(nèi)容
查看全部 -
字符串反轉(zhuǎn)可以使用切片實(shí)現(xiàn): reverse = str_[::-1]
f?=?open('test.txt',?'r')???#打開文件 lines?=?f.readlines()???????#讀取文件內(nèi)容,保存在lines變量中 f1?=?open('test1.txt',?'w')?#打開文件2 for?line?in?lines:??????????#對line內(nèi)容進(jìn)行遍歷 ????line?=?line[::-1]???????#對遍歷的內(nèi)容進(jìn)行反轉(zhuǎn) ????f1.write(line)??????????#把反轉(zhuǎn)的內(nèi)容寫入文件2 f1.close() f.close()
查看全部 -
可以把路徑先定義到變量path內(nèi),后邊直接調(diào)用path,文件名一定要帶后綴
如果路徑不存在,會先創(chuàng)建文件path?=?r'E:\unittest\text.txt'?? f?=?open(path,'w') f.write('hello,python') f.close() a?=?open(path,'r') b?=?a.read(2)??#read()括號內(nèi)的數(shù)字表示要讀取的字符數(shù)量 print(b)??#輸出he a.close()??#文件打開后一定要有關(guān)閉操作
readline()?#括號內(nèi)不填寫是讀取一行的內(nèi)容,下次執(zhí)行會讀取到下一行
readlines()#讀取多行的內(nèi)容,返回一個list,不填寫參數(shù)是返回所有行;有參數(shù)的下一次執(zhí)行會順著讀取后行的內(nèi)容
readlines(hint)?#1、如果hint參數(shù)小于第一行字符數(shù),返回第一行,大于第一行字符數(shù)小于(第一行+第二行)字符數(shù),返回第一第二行,以此類推2、如果讀取完最后一行后又調(diào)用帶hint的readlines,會返回空列表
3、重復(fù)調(diào)用帶hint的readlines時,同一行不會讀取到兩次,下一次的調(diào)用一定是從還未讀取過的新的一行開始
eg.
文件內(nèi)容
hello,python
hello,world
hello,boys and girlsa1?=?open(path,'r') b1?=?a1.readlines()??#hint?=?12,=>['hello,python\n'] ?????????????#hint?=?13,=>['hello,python\n',?'hello,world\n'] ?????????????#hint?=?0或者-1或者空,=>['hello,python\n',?'hello,world\n',?'hello,boys?and?girls'] print(b1) a1.close()
a1?=?open(path,'r') b1?=?a1.readlines(12) b2?=?a1.readlines(12) print(b1) print(b2) a1.close() #輸出結(jié)果: #['hello,python\n'] #['hello,world\n',?'hello,boys?and?girls']? #b2的hint=11,輸出第二行,hint>11,輸出第二第三行
如果readline和readlines同時存在
a1?=?open(path,'r') b1?=?a1.readlines(12) b2?=?a1.readlines(11) b3?=?a1.readline() print(b1)??#=>['hello,python\n'] print(b2)??#=>['hello,world\n'] print(b3)??#=>hello,boys?and?girls a1.close()
如果read,readline,readlines同時存在
a1?=?open(path,'r') b3?=?a1.read(2) b1?=?a1.readline(30) b2?=?a1.readlines(11) print(b3) print(b1) print(b2) a1.close() 輸出結(jié)果 he llo,python ['hello,world\n']
readline和readlines會從read讀取后剩下的字符開始讀取,readlines對字符的計數(shù)也是從剩下的開始
查看全部 -
while?True: ????s?=?input('>>>?') ????if?s?==?'break':??#不輸入break,則會一直處于進(jìn)行計算狀態(tài) ????????break ????result?=?eval(s) ????print(result)
eval()
可以將字符串轉(zhuǎn)化為等值結(jié)果
eval(expression[,?globals[,?locals]])
參數(shù)
expression -- 表達(dá)式。
globals -- 變量作用域,全局命名空間,如果被提供,則必須是一個字典對象。locals -- 變量作用域,局部命名空間,如果被提供,可以是任何映射對象。
返回值
返回表達(dá)式計算結(jié)果。
查看全部
舉報