国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

python_基本語(yǔ)法_01

2019-11-14 17:20:18
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

離畢業(yè)工作還有幾個(gè)月,本來(lái)想早點(diǎn)去公司實(shí)習(xí),無(wú)奈gb學(xué)校不給放。好吧,既然這樣,就學(xué)門(mén)語(yǔ)言。

參考與 http://m.survivalescaperooms.com/vamei ,我是跟著這位博客牛人的博客教程學(xué)的,具體的大家可以到這位博主的博客查看。

記得比較零碎,就將練習(xí)的小例子的代碼以及注釋粘了過(guò)來(lái),主要是為了防止自己忘記,大家湊活著看吧。

#coding:utf-8from logging import exceptionfrom xmlrpclib import DateTime#定義類(lèi)class Info():    age=2class Person(): #括號(hào)內(nèi)的參數(shù)代表繼承與那個(gè)對(duì)象,不代表構(gòu)造方法形參    name='hefei'    age=25    def sayHello(self,content): #成員函數(shù)需要包括self參數(shù)        PRint content    def __init__(self,Info):    #相當(dāng)于構(gòu)造方法,用來(lái)在對(duì)象創(chuàng)建時(shí),初始化一些屬性        self.age=Info.age        #類(lèi)的繼承,新建類(lèi)時(shí)括號(hào)內(nèi)寫(xiě)被繼承的父類(lèi)class American(Person):    shengao=1.88i=Info()a=Person(i)#map的賦值,python里面成為字典,無(wú)非鍵值對(duì)嘛,就是個(gè)mapm={'name':'hefei','age':25}  m.setdefault('shenggao')m['shenggao']=1.88for i in m.values():    print i#文件流f=open('test.txt','r')content = f.readline()f.close()print content#循環(huán)語(yǔ)句之幾個(gè)好用的方法S = 'abcdefghijk'for i in range(0,len(S),2):      #最后一個(gè)參數(shù)代表跳幾格    print S[i]    S = 'abcdefghijk'for (index,char) in enumerate(S): #在對(duì)list或tuple進(jìn)行迭代時(shí),枚舉方法可以獲得列表的索引,index    print index    print char    #zta=[1,2,3]tb=['a','b','c']zipped=zip(ta,tb)print type(zipped),zipped#unzipta1,tb1=zip(*zipped)    #*代表解包裹的意思,解包裹就是按照","拆分print ta1,tb1,type(ta1)#再次打包,又變回去了,不過(guò)類(lèi)型變了,呵呵,設(shè)計(jì)的真好result=zip(ta1,tb1)print result#循環(huán)對(duì)象,相當(dāng)于迭代器,一些方法的返回值就可能是一個(gè)循環(huán)對(duì)象,for循環(huán)時(shí),就是調(diào)用循環(huán)對(duì)象的next()方法f=open('test.txt')  #這里的文件對(duì)象就是一個(gè)循環(huán)對(duì)象for line in f:    print line#生成器:自定義迭代對(duì)象,每次迭代時(shí),遇到y(tǒng)ield返回,下一次迭代時(shí),從上一次yield的地方開(kāi)始迭代def gen():    a=1    yield a    a=a+1    yield afor i in gen():    print i#表推導(dǎo),和自定義迭代器一樣,有簡(jiǎn)短的表達(dá)式形式,表推導(dǎo)用來(lái)快速生成所需的列表,感覺(jué)沒(méi)有多大用途。L = []for x in range(10):    L.append(x**2)print Lxl = [1,3,5]yl = [9,12,13]L  = [ x**2 for (x,y) in zip(xl,yl) if y > 10]print L#lambda函數(shù),在面向?qū)ο蟮氖澜缋铮瘮?shù)也是對(duì)象func=lambda x,y:x+yprint func(1,2)#lambda 表達(dá)式等價(jià)于常規(guī)的方法定義def func(x,y):    return x+yprint func(2,3)#幾個(gè)特殊的方法#map 函數(shù):返回一個(gè)列表,結(jié)果為本來(lái)列表經(jīng)方法處理后的列表,返回結(jié)果為[3,5]print map(lambda x:x+1, [2,4])#reduce方法,迭代的思想,將前一個(gè)方法處理后的結(jié)果作為后一個(gè)處理的參數(shù),返回結(jié)果為6print reduce(lambda x,y:x+y, [1,2,3])#異常處理re=iter(range(5));         #使用iter方法定義一個(gè)迭代對(duì)象try:    for item in range(10): #迭代10次        print re.next()except StopIteration:    print 'here is the end ',itemfinally:    print 'this is finaly'#自行拋出一個(gè)異常對(duì)象,raise關(guān)鍵字raise StopIteration#動(dòng)態(tài)類(lèi)型,引用獨(dú)立 下例中,a+2了,雖然b的引用指向a 但,b的值不變#python中對(duì)象分為可變和不可變對(duì)象,像元組(tuple)和字符串都是不可變對(duì)象,其他的是可變對(duì)象,這點(diǎn)和java相同a = 5b = aa = a + 2print 'a=',a,'b=',b#標(biāo)準(zhǔn)庫(kù)中的api介紹print DateTime()#python深入學(xué)習(xí)內(nèi)容#上下文管理器:定義了文件對(duì)象的作用范圍,在with 語(yǔ)句之內(nèi),雖然f沒(méi)有手動(dòng)關(guān)閉,但是只要在with語(yǔ)句塊之外,對(duì)象就自動(dòng)關(guān)閉,其實(shí)就是分別執(zhí)行類(lèi)內(nèi)置函數(shù),__enter__和__exit__方法with open('test.txt','w') as f:     print f.closedprint f.closed#可以自定義上下文管理器class Teller(object):    def __enter__(self):        print 'i m come'    def __exit__(self,fexc_type,exc_value,traceback): #這里尼瑪不給提示,這里的__exit__方法需要4個(gè)參數(shù)是必須的        print 'i m out'with Teller() as teller: # with 語(yǔ)句塊內(nèi)一定要有語(yǔ)句,不然解釋不通過(guò)    print 'running..'#函數(shù)對(duì)象,就相當(dāng)于java中的內(nèi)部對(duì)象def out_fun():    def in_fun():        return 2    print in_fun()out_fun()#閉包,以下程序運(yùn)行結(jié)果為25,my——line= line_conf()返回一個(gè)函數(shù)對(duì)象,傳入5,進(jìn)行2*5+b的運(yùn)算,使用的b為外部函數(shù)所定義的b的值#這里的b也稱(chēng)為內(nèi)部函數(shù)對(duì)象的環(huán)境變量,一個(gè)函數(shù)對(duì)象和他的環(huán)境變量集合在一起就叫做閉包,環(huán)境變量的取值被放在函數(shù)對(duì)象的_closure_屬性中,該屬性是一個(gè)元組#閉包的優(yōu)勢(shì)在于減少了函數(shù)參數(shù)的設(shè)定,在"并行運(yùn)算中有很大的應(yīng)用"(不是很懂)def line_conf():    b = 15    def line(x):        return 2*x+b    return line       # return a function objectb = 5my_line = line_conf()print(my_line(5))print my_line.__closure__[0].cell_contents#裝飾器,就相當(dāng)于java中的動(dòng)態(tài)代理,修飾原有的方法,讓原有的方法得到加強(qiáng)#定義一個(gè)裝飾器,裝飾器是修飾函數(shù)的,故接收的參數(shù)也是函數(shù)對(duì)象,除此之外,裝飾器還可以修飾類(lèi),代碼如下def decorator(F):    def new_F():        print "這是加強(qiáng)內(nèi)容"        return F()   #這里一定要用F(),不能用F,否則出不了結(jié)果,這里體現(xiàn)了閉包的特性,內(nèi)部函數(shù)調(diào)用了外部的環(huán)境變量    return new_F #返回加工后的函數(shù)對(duì)象@decoratordef F():    print "原來(lái)有的內(nèi)容"F()#裝飾器還可以修飾類(lèi)def decorator1(aClass):    class newClass:        def __init__(self, age):            self.total_display   = 0            self.wrapped         = aClass(age)        def display(self):            self.total_display += 1            print("total display", self.total_display)            self.wrapped.display()    return newClass@decorator1class Bird:    def __init__(self, age):        self.age = age    def display(self):        print("My age is",self.age)eagleLord = Bird(5)for i in range(3):    eagleLord.display()    #使用的一些小技巧#但寫(xiě)有測(cè)試語(yǔ)句的模塊被別的模塊引入的時(shí)候,要想在別的模塊中不運(yùn)行這些測(cè)試語(yǔ)句,在別的模塊中可以這么寫(xiě),if __name__=='__main__':測(cè)試代碼def localMethod():    print "hello"if __name__=='__main__':    print 'test content'    

未完待續(xù)。。

 


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 车险| 工布江达县| 麟游县| 安图县| 米脂县| 恩施市| 合川市| 淮南市| 曲松县| 新昌县| 仁寿县| 老河口市| 韶关市| 读书| 大兴区| 乐清市| 石家庄市| 建平县| 上犹县| 大连市| 台北市| 嘉黎县| 聂荣县| 洛浦县| 宁德市| 陆丰市| 大同县| 江都市| 远安县| 滨州市| 金溪县| 衡南县| 酒泉市| 萨迦县| 建平县| 岳阳县| 莱阳市| 富民县| 清涧县| 色达县| 轮台县|