常用的基本數(shù)據(jù)類型:
int,str,float,bool,list,tuple,dict,set。整型,字符串,小數(shù),bool,列表,元組,資源,Set集合
命名推薦使用駝峰法及下劃線命名
格式化輸出:類似C系:%s:輸出字符串。%d:輸出int類型數(shù)字。%f:輸出浮點(diǎn)數(shù)。%x:輸出16進(jìn)制數(shù)據(jù) 。 str/double/float
print("你的名字:%s" %name)
循環(huán)中常用的是for..in功能,遍歷元組,set集合等。此外還有一個(gè)range函數(shù)。for i in range(5):從1加到5。
字符串
字符串中,可以利用下標(biāo)取到對(duì)應(yīng)的元素,想要截取到一段元素就要用到切片片。切片的語(yǔ)法 :[起始:結(jié)束:步長(zhǎng)] name[:10],name[1:10],name[1:-1]
字符串常用方法:name.find("abc",0,10) 從0-10的下標(biāo)中找出含有abc的索引,不在則會(huì)返回-1,index與find含義一致,只是不存在則會(huì)拋出異常。
1.count:計(jì)算數(shù)量 mystr.count("kkb")
2.replace:字符串替換:mystr.replace(str1,str2,my.count(str1))
3.split字符串分割:mystr.split(str=" ", 2)
4.capitalize:第一個(gè)字符大寫(xiě) mystr.capitalize()
5.title:返回標(biāo)題的方式,也就是首字母大寫(xiě),其余的字母小寫(xiě)
6.startswith/endwith
列表
1.有序集合,可以是不同類型的??梢耘cjava做一個(gè)對(duì)比,一般java中的list都是存放范型的對(duì)象。
2.可以用切片片來(lái)取得其中的數(shù)據(jù),用for.int來(lái)遍歷其中的數(shù)據(jù)
3.添加元素.使用append/extend/insert即可添加元素,區(qū)別如下:append是將集合整體添加到另一個(gè)集合中。extend是將集合中的元素依次添加到另外一個(gè)集合中,inser可以指定位置添加元素。
mylist = ["ff","ww","yz"]
appendlist = ["xiaowang","xiaofan"]
print("添加前的mylist:")
print(mylist)
print("append后的mylist")
mylist.append(appendlist)
print(mylist)
print("extend后的mylist")
mylist.extend(appendlist)
print(mylist)
添加前的mylist:
['ff', 'ww', 'yz']
append后的mylist
['ff', 'ww', 'yz', ['xiaowang', 'xiaofan']]
extend后的mylist
['ff', 'ww', 'yz', ['xiaowang', 'xiaofan'], 'xiaowang', 'xiaofan']
Process finished with exit code 0
4.刪除元素用del/pop/remove: del根據(jù)下標(biāo)刪除。pop刪除最后一個(gè)。remote是根據(jù)值刪除。
5.排序:sort方法是從小到大排序,參數(shù)reverse=True可以改為倒敘。
元組tuple(一旦初始化就不能修改)請(qǐng)嚴(yán)格記住元組和集合的書(shū)寫(xiě)
1.定義:t=() 定義空的元組,無(wú)append,inser等方法。定義t=(1):代表t=1這個(gè)數(shù),只有一個(gè)元素的tuple時(shí)必須加一個(gè)逗號(hào),t=(1,)在只有一個(gè)元素的tuple時(shí)也要加一個(gè)逗號(hào)??梢詫uple中的值進(jìn)行修改。
字典:
1.定義:根據(jù)花括號(hào)的方式:a{"wff":"100","ff":"80"} 如果想取得value:a[wff] = 100 即可
2.刪除:對(duì)字典進(jìn)行刪除操作:以下兩種方式:del與clear: del info["name"] del info:清空整個(gè)字典 info.clear()
3.keys:返回一個(gè)包含所有key的列表。
4.values:返回一個(gè)包含字典左右value的列表,
5.items:返回一個(gè)包含所有元組的列表。
集合set:無(wú)序不重復(fù)
1.創(chuàng)建方式:使用大括號(hào)或者set()函數(shù)創(chuàng)建,如果是空的,那么必須用set()。
2.搞清楚列表list,元組tuple與集合set之間的區(qū)別。
函數(shù):
1.如果使用默認(rèn)參數(shù)時(shí),必須指向不可變對(duì)象,因?yàn)楦淖兞藢?duì)象之后下一次計(jì)算時(shí)就不是默認(rèn)的對(duì)象了,因此可以將參數(shù)設(shè)置為不可變的None,Str等對(duì)象,
2,可變參數(shù):可以做簡(jiǎn)化:例如傳遞一個(gè)list或者tuple:
def cal(number):
count = 1
for x in number:
count = count * x
return count
print(cal((1,2,3)))
此時(shí)如果寫(xiě)成cal(1,2,3)就會(huì)報(bào)錯(cuò),那么修改函數(shù)定義,將number前加入*number即可:
def cal(*number):
count = 1
for x in number:
count = count * x
return count
print(cal(1,2,3))
注意:表明是將list中的所有元素當(dāng)做可變參數(shù)傳進(jìn)去,寫(xiě)法很有用,也很常見(jiàn)。因此可以這樣寫(xiě): cal(mylist)即可。
還可以命名關(guān)鍵字參數(shù),通過(guò)kw進(jìn)行檢查,到底傳入了哪些參數(shù)。此時(shí)需要key時(shí),需要使用*的方式,例如:
def person(name, age , **kw):
if 'city' in kw:
pass
if 'add' in kw:
pass
print("name:",name,'age: ',age,"other:",kw)
person("wv",22,city='chengdu',add="chaoyang",zipcode=111)
def person1(name,age,*,city,address):
print(name,age,city,address)
person1("name",22,city="xj",address="wlmq")
3.參數(shù)組合:
可選參數(shù)順序:必選參數(shù)/默認(rèn)參數(shù)/可變參數(shù)/關(guān)鍵字參數(shù)和命名關(guān)鍵字參數(shù)
def f1(a,b,c=0,args,*kw)
def f2(a,b,c=0,,d,*kw) 可以根據(jù)傳遞的參數(shù)順序和類型一一對(duì)應(yīng)填入即可
面向?qū)ο?/h3>
1.匿名函數(shù)函數(shù)沒(méi)名,增加效率,返回值不需要添加return。
匿名函數(shù):result = (lambda a,b,c:a+b+c)(1,2,3) print(result)
共有的類屬性就是基本的屬性。私有的類屬性:__age=12即可是私有屬性。
屬性分為類屬性和對(duì)象屬性,同時(shí)方法也是分為靜態(tài)方法和類方法:類方法:@classmethod即可,一般第一個(gè)參數(shù)喜歡用cls來(lái)修飾??梢酝ㄟ^(guò)實(shí)例對(duì)象和類訪問(wèn)。靜態(tài)方法:通過(guò)修飾器:@staticmethod來(lái)修飾,可以通過(guò)對(duì)象和類來(lái)訪問(wèn)。區(qū)別:一般類方法的第一個(gè)參數(shù)是cls,實(shí)例方法的第一個(gè)參數(shù)是init,靜態(tài)方法不需要額外定義參數(shù)。