摘要:內(nèi)置函數(shù)實現(xiàn)對可迭代對象進行進一步處理。文件文件的打開權(quán)限打開文件,文件不存在報異常寫入文件,文件不存在則創(chuàng)建。文件不存在則創(chuàng)建。追加文件,具有讀寫權(quán)限。
Python基礎(chǔ)類型:
1.Tuple元組,內(nèi)容不可改變,但是允許元素內(nèi)部存在list等類型的元素,并且允許改變列表的值,所謂內(nèi)容不可變指的是在內(nèi)存中指向的地址是不變的。
temp=(1,2,[3,4]) temp[-1].append(5). print temp #(1,2,[3,4,5]).
在創(chuàng)建單元素的Tuple時,在初始化的時候一定要在元素的后面加上"," (temp=(1,)) 否則temp的類型為int 而不是tuple
2.Set集合,元素中不允許存在重復(fù)元素,通過Add方法添加重復(fù)元素也不會報錯,元素中不允許存在list等類型的元素,集合內(nèi)的元素不存在特定順序,所以無法按照索引的方式讀取。
3.Dict字典,字典的鍵-值對中鍵是不可以重復(fù)且無序,遍歷字典存在方法items() 獲取鍵-值對形成的元組list,keys() 獲取由字典中所有的鍵組成的list,values() 獲取由字典中的值組成的list,iteritems() 字典對象本身提供的迭代方法,免去了轉(zhuǎn)化為list的過程,更省內(nèi)存。
4.List列表,這里主要記錄下列表的迭代方法,要是在一次迭代中既獲取list的索引,還可以獲取list的值,可以使用enumerate() 先將list元素和索引轉(zhuǎn)換為元組列表[(index,item)]。
Python函數(shù)1.函數(shù)通過Def定義,函數(shù)的參數(shù)可以是函數(shù)的簽名,變量也可以指向函數(shù),接收函數(shù)為參數(shù)的函數(shù)稱之為高階函數(shù)。
2.內(nèi)置函數(shù)map() 實現(xiàn)對可迭代對象進行進一步處理。filter()實現(xiàn)對可迭代對象按條件過濾結(jié)果,zip()函數(shù)實現(xiàn)對2個可迭代對象進行壓縮為一個元組列表。以上方法在對于遍歷元素時可以幫助簡化代碼及方便對可迭代對象的處理。
3.閉包是在內(nèi)層函數(shù)引用了外層函數(shù)的變量并返回內(nèi)部函數(shù),實現(xiàn)對函數(shù)內(nèi)部狀態(tài)的封裝,有點像類。
4.Python裝飾器實際就是一個高級函數(shù),以函數(shù)為參數(shù)返回一個新的函數(shù)。在某些場景下類似于AOP,需要在函數(shù)的上方指定裝飾器。函數(shù)的參數(shù)必須和裝飾器最內(nèi)層函數(shù)個數(shù)一致或者使用可變參數(shù)(args,*kw)。
例如要實現(xiàn)對被調(diào)用函數(shù)的日志記載,就可以使用裝飾器實現(xiàn)。對于要實現(xiàn)帶參數(shù)的裝飾器也很簡單,在最外層再嵌套一次函數(shù)即可實現(xiàn)。
def log(type): def returnFunc(func): def internelFunc(a,b): print type func(a,b) return internelFunc return returnFunc @log("INFO") def testA(a,b): print a + b testA(1,2) # INFO 3
5.被裝飾的函數(shù),訪問函數(shù)__name__ 和__doc__屬性返回的裝飾器最內(nèi)層函數(shù)對應(yīng)的值,要想不被發(fā)現(xiàn)采用了裝飾器,可以最內(nèi)層函數(shù)簽名的上方使用@functools.wraps(func) 實現(xiàn)對func函數(shù)的上述屬性復(fù)制到最內(nèi)層函數(shù)上。
6.偏函數(shù)通過使用@functools.partial來實現(xiàn)把一個多參數(shù)函數(shù),通過設(shè)置默認值轉(zhuǎn)化為一個少參數(shù)的新函數(shù). 個人認為用處不大,對于常用的函數(shù)直接封裝為一個函數(shù)給定默認值即可。
testB=functools.partial(testA,a=2) testB(b=2)Python模塊
1.Python模塊包實際就是文件夾,但是需要在文件夾的內(nèi)部存在一個__init__.py文件,這是規(guī)定,否則不會認為是一個包,在引用多級包時通過“.”來分割(包1.包2.包3)
2.在Python的舊版中要測試新版本的功能,可以在舊版中使用
from __future__ import division
例如在python2.7中 10/3 結(jié)果是 3,但是引入上述包之后,10/3 結(jié)果是 3.33333 這是在新版中才有的特性
某些模塊存在C語言編譯的版本(例如:cStingIO等),在進行包導(dǎo)入操作時,應(yīng)該先檢查是否存在對應(yīng)的C語言編譯版本,這樣可以提升Python文件的執(zhí)行速度。Python是動態(tài)語言,解釋執(zhí)行代碼運行速度慢。
Python面向?qū)ο?/b>1.類中定義私有方法在方法的前面加上2個“_” 即可實現(xiàn), 只在類內(nèi)可以訪問。
2.類的靜態(tài)方法和靜態(tài)變量都是可以通過類的實例訪問的,類方法需要在方法上方添加裝飾器@classmethod,當類實例對類變量進行動態(tài)賦值時,對類變量并不會有任何影響,只不過是給實例本身添加一個同名的屬性。
3.對類實例中的某個屬性賦值時需要進行檢驗有效性,在C#中常用的方法是定義一個私有字段,然后定義get和set屬性,通過set屬性進行有效性檢驗,在Python也可以這么實現(xiàn),但是在Python內(nèi)部提供可一個裝飾器@property可以簡化實現(xiàn)
class A: def __init__(self): self.__age=20 @property def age(self): return self.__age @age.setter def age(self,age): #校驗有效性 self.__age=age a=A() a.age=15
4.類繼承優(yōu)先級別為從右向左,子類調(diào)用父類的方法或者是給父類進行賦值操作,只需要使用super(子類名,self). 方法或?qū)傩?/b>即可。但是父類一定要繼承object,否則就會報錯。
5.類中還有一個默認的特殊方法或?qū)傩裕覀冊谑褂脮r默認調(diào)用,可以通過dir()方法查看,例如我們在實例化類的時候,類會自動調(diào)用__init__()方法。在調(diào)用len()方法時,會調(diào)用__len__() 方法。對動態(tài)屬性的限制時會調(diào)用__slots__屬性等。如果有特殊需要可以使用這些方法來實現(xiàn)自定義操作。
對于要使用某些語法糖,需要實現(xiàn)某些特殊的方法,例如想使用 with語法糖,就必須實現(xiàn)__enter__()和__exit__()方法。
Python文件1.文件的打開權(quán)限:
r :打開文件,文件不存在報異常
w :寫入文件,文件不存在則創(chuàng)建。寫入已經(jīng)存在的文件,會先清空文件在寫入文件。
a :追加文件,文件不存在則創(chuàng)建。在文件的末尾處追加內(nèi)容。
r+ :打開文件,具有讀寫權(quán)限。文件不存在則報錯,寫文件時不會清空文件內(nèi)容,會從文件的開頭進行覆蓋,因為文件的指針在文件的開頭,先用 read() 方法,之后在進行寫文件就會變成追加的方式。
w+ :寫入文件,具有讀寫權(quán)限。文件不存在則創(chuàng)建。在進行文件讀取操作是,默認情況下read()為空字符,因在使用寫入操作時,文件內(nèi)容先被清空之后在進行寫入操作。
a+ :追加文件,具有讀寫權(quán)限。文件不存在則創(chuàng)建。
上述打開方式都存在對應(yīng)的二進制,分別為:rb,wb,ab,rb+,wb+,ab+,記住每次read()或write()之后的指針位置,就可以掌握上面的每種模式,當前文件指針的位置使用tell()方法獲取。設(shè)置文件指針的方法為seek()
2.在對文件進行寫入操作的時候,當寫入的文件為unicode格式的文字時,需要先轉(zhuǎn)化為utf-8
unicode.encode(u"非白即黑","utf-8")
以上是在學(xué)習(xí)Python中一些需要注意的地方的總結(jié),并不是講解Python基礎(chǔ),隨著逐漸深入,后續(xù)還會有更新。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/38469.html
摘要:接下來我們就來看看學(xué)到什么程度才算是真正學(xué)會可以去一展身手。一確立目標了解需求做什么事情都要先確定好目標,才不至于迷失方向。 大家在學(xué)習(xí)Python的時候,有人會問Python要學(xué)到什么程度才能出去找工作,對于在Python培訓(xùn)機構(gòu)學(xué)習(xí)Python的同學(xué)來說這都不是問題,因為按照Python課程大綱來,一般都不會有什么問題,而對于自學(xué)Python來說,那就比較難掌握,冒然出去找工作非常...
摘要:我是布小禪,一枚自學(xué)萌新,跟著我每天進步一點點吧說了這么多暫時也就夠了,那么就告辭吧 文章目錄 ?? 前言 ??? 作者簡介 ??文件操作?1??、open函數(shù)...
摘要:今天主要說一下個人情況和學(xué)習(xí)路徑規(guī)劃。個人情況作為浙江新高考最后一屆小白鼠,經(jīng)歷了許許多多手動和諧的事情,但是七選三有技術(shù)是唯一好的一件事情,讓我有了一點編程的基礎(chǔ)。 前言 Hello World!這是我思否的第一篇技術(shù)博客(不知道算不算),剛剛經(jīng)歷了高考,有個10+分的滑鐵盧,現(xiàn)坐標浙江杭州,被西南某末流211機械專業(yè)錄取。雖然被苦x的機械錄取,但還是對計算機有著幻想。以后想通...
摘要:今天主要說一下個人情況和學(xué)習(xí)路徑規(guī)劃。個人情況作為浙江新高考最后一屆小白鼠,經(jīng)歷了許許多多手動和諧的事情,但是七選三有技術(shù)是唯一好的一件事情,讓我有了一點編程的基礎(chǔ)。 前言 Hello World!這是我思否的第一篇技術(shù)博客(不知道算不算),剛剛經(jīng)歷了高考,有個10+分的滑鐵盧,現(xiàn)坐標浙江杭州,被西南某末流211機械專業(yè)錄取。雖然被苦x的機械錄取,但還是對計算機有著幻想。以后想通...
摘要:文件操作遍歷文件夾和文件獲取文件名和擴展名逐行讀取文本文件內(nèi)容寫文件判斷文件是否存在創(chuàng)建文件夾其他數(shù)字前補未完待續(xù) 1、文件操作 1-1 遍歷文件夾和文件 import os rootDir = /path/to/root for parent, dirnames, filenames in os.walk(rootDir): for dirname in dirnames:...
閱讀 1263·2021-11-25 09:43
閱讀 2000·2021-11-11 10:58
閱讀 1238·2021-11-08 13:18
閱讀 2749·2019-08-29 16:25
閱讀 3549·2019-08-29 12:51
閱讀 3349·2019-08-29 12:30
閱讀 784·2019-08-26 13:24
閱讀 3720·2019-08-26 10:38