整型int,浮點型float,複合型complex(基本不使用),字串string,布林型bool,列表list,字典dict,集合set,元組tuple
可變資料型別:list dict set
當刪除第乙個元素的時候,後面的元素向前一定了一次,而for迴圈還是要向後走一步,這樣就錯過了在沒有刪除前的下乙個元素。為了解決這種問題,需要新建乙個空列表。迴圈原有列表,然後把迴圈的元素擴充套件到新列表裡面,迴圈新列表,刪除新列表裡面符合條件的元素,就可以解決這個問題。
只拷貝第一層,第二層不會拷貝
把元素內部的元素全部進行拷貝複製,不會產生乙個改變另乙個跟著變的問題
內層函式對外層函式變數的使用,就叫做閉包。
作用:讓乙個變數常駐與記憶體,並保護該變數不被侵害。
迭代器:可以乙個乙個的拿到資料,內部含有iter和__next__ ,通過__iter__可以拿到乙個物件的迭代器
可迭代物件:內部含有__iter__
迭代器的特點:(1)省記憶體;(2)惰性機制,不執行__next__不拿值;(3)只能向前,不能反覆,拿完了就沒有了
for迴圈的內部就是乙個迭代器,當迭代器裡面的資料被拿完了,繼續執行__next__,再接著往外拿就會報錯:stopiteration
生成器的本質就是迭代器,生成器的建立有2種方式:(1)生成器函式;(2)生成器表示式
生成器函式:函式裡面含有yield語句就是生成器函式
生成器表示式:(結果 for 迴圈 if 條件)
生成器具有惰性
send()和next()的區別:
(1)send和next都是讓生成器往下走一步;
(2)send可以給上乙個yield的位置傳遞值,不能給最後乙個yield傳送值,在第一次執行生成器的時候不能使用send()
(1)lambda:表示匿名函式,不需要用def來宣告,一句話就可以宣告乙個函式
注意事項:函式的引數可以有多個,用逗號隔開;匿名函式不管多複雜,一句話寫完,且邏輯結束時直接返回資料;返回值和函式一樣,可以是認意型別
(2)sorted( iterable , key , reverse ) 排序 reverse = false 正序;reverse = true 倒敘
(3)filter( function , iterable ) 篩選函式
(4)map( function , iterable ) 對映函式
(5)reduce( function , iterable , initinal ) map是把資料分散出去,reduce是把資料收回來。如果initinal 為none,則預設把iterable 中的前2個資料傳遞給function ,如果initinal 傳了資料,則把initinal 和iterable 中的第乙個資料傳遞給function
物件導向的方法主要是把事物給物件化,包括其屬性和行為。物件導向程式設計更貼近實際生活的思想。總體來說物件導向的底層還是面向過程,面向過程抽象成類,然後封裝,方便使用就是物件導向,(萬物皆物件)。
例項變數:最終存在物件內部的
類變數:類變數是從屬於類的,也有人叫靜態變數
屬性:本意就是我們乙個物件的例項變數,因為有些屬性需要計算,才被單獨拿出來。屬性的寫法需要乙個裝飾器@property,本質就是把乙個方法變成了乙個變數,這個變數的值就是方法執行之後的返回值。需要注意的是:該方法不能有引數,並且必須要有返回值。
例項方法:用物件去訪問之後,在執行方法的時候python會自動把正在執行該方法的物件傳遞給self,所以self被稱為當前類正在執行操作的物件。
**類方法:**和類變數一樣,是屬於類的,一般用類名去訪問,類方法在編寫的時候要加上乙個裝飾器@classmethod用來標識,該方法第乙個引數cls不用我們手動傳遞,會預設把類給傳遞進來。
**靜態方法:**寫法和類方法有點像,一般也是用類名去訪問,靜態方法的寫法需要加上乙個裝飾器@staticmethod。靜態方法是在類裡面定義的乙個函式,和方法不沾邊,推薦使用類名去訪問。
特殊成員只有在特殊的情況才會被訪問,一般情況下,我們很少去主動剛問,都會被自動呼叫的。我們在建立物件的時候,會先執行__new__開闢乙個記憶體空間,然後執行__init__初始化物件,當物件被呼叫的時候,預設執行__call__
手動輸入要執行的模組,反著去模組裡面找
關於反射的4個函式
hasattr( obj , str ) 判斷obj中是否含有str成員
getatter(obj , str ) 從obj中獲得str成員
setatter((obj , str , value) 把obj中的str成員設定成value
delatter(obj , str) 把obj中的的str成員刪
父類對子類進行約束,如果子類中沒有定義父類中的方法,系統就會報錯,就必須重寫方法。
foo: 定義的是特殊方法,一般是系統定義名字 ,類似init() 之類的。
_foo: 以單下劃線開頭的表示的是 protected 型別的變數,即保護型別只能允許其本身與子類進行訪問,不能用於 from module import *
__foo: 雙下劃線的表示的是私有型別(private)的變數, 只能是允許這個類本身進行訪問。
ios AutoLayout基礎知識 彙總
三大部分 二 storyboard 三 code to autolayout 一 autolayout簡介 autolayout 是乙個描述各種約束的行為,比如,乙個view 距離父view上邊距多少,相鄰之間的間隔,各個view之間的寬高關係等等 二 storyboard 第一部分 1.什麼是約束...
光纖基礎知識彙總
最近頻繁接觸光纖,看到上面的一些字元,都不明白是什麼,才知道書到用時方很少,於是決定馬上補課,了解一下光纖的相關知識,這裡把蒐集到的資料跟大家共享。乙太網標準中關於10base t,100base t,100base tx,100base tx等等,一般的網路書籍上都很難見到他們的解釋,很多概念都講...
TensorFlow基礎知識彙總
一 constant 常量 constant是tensorflow的常量節點,通過constant方法建立,其是計算圖 computational graph 中的起始節點,是傳入資料。建立方式 cons tf.constant value 1,2 dtype tf.float32,shape 1,...