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