函式之間或類的方法之間用空行分隔,表示一段新的**的開始。類和函式入口之間也用一行空行分隔,以突出函式入口的開始。
空行與**縮排不同,空行並不是python語法的一部分。書寫時不插入空行,python直譯器執行也不會出錯。但是空行的作用在於分隔兩段不同功能或含義的**,便於日後**的維護或重構。
記住:空行也是程式**的一部分。
isinstance 和 type 的區別在於:
type()不會認為子類是一種父類型別。
isinstance()會認為子類是一種父類型別。
/ 實數,// 整除。
** 冪
x is y, 類似 id(x) == id(y) , 如果引用的是同乙個物件則返回 true,否則返回 false
注:id() 函式用於獲取物件記憶體位址。
is 用於判斷兩個變數引用物件是否為同乙個, == 用於判斷引用變數的值是否相等。
字串不能改變,向乙個索引位置賦值,比如word[0] = 'm』會導致錯誤。
元組與列表類似,但不可修改,但可以包含可變元素比如列表(修改列表元組會改變)、變數(修改變數元組不會改變)
沒有實際含義 佔位符
還沒弄的太明白
函式必須先定義後呼叫,但函式呼叫函式不用遵循該法則
關於引數:
型別屬於物件,變數是沒有型別的
a=[1
,2,3
]a="runoob"
[1,2,3] 是 list 型別,「runoob」 是 string 型別,而變數 a 是沒有型別,她僅僅是乙個物件的引用(乙個指標),可以是指向 list 型別物件,也可以是指向 string 型別物件。
其中strings, tuples, 和 numbers 是不可更改的物件,而 list,dict 等則是可以修改的物件。
不可變型別:變數賦值 a=5 後再賦值 a=10,這裡實際是新生成乙個 int 值物件 10,再讓 a 指向它,而 5 被丟棄,不是改變a的值,相當於新生成了a。
可變型別:變數賦值 la=[1,2,3,4] 後再賦值 la[2]=5 則是將 list la 的第三個元素值更改,本身la沒有動,只是其內部的一部分值被修改了。
不可變型別:類似 c++ 的值傳遞,如 整數、字串、元組。如fun(a),傳遞的只是a的值,沒有影響a物件本身。比如在 fun(a)內部修改 a 的值,只是修改另乙個複製的物件,不會影響 a 本身。
可變型別:類似 c++ 的引用傳遞,如 列表,字典。如 fun(la),則是將 la 真正的傳過去,修改後fun外部的la也會受影響
for k,v in dict.items():
enumerate()
待更新。。。。。
基礎 容易忽略的地方
1在 異常處理中,error異常一般不需要程式設計師自己捕獲.2runtimeexception 異常語句必須封裝在try語句中3 3有關arraylist和vector的區別 在使用中基本上沒有區別,但在多執行緒編寫程式中vector執行緒安全的 4set list map 都繼承於collect...
滑鼠事件中容易被忽略的API
在處理乙個 mousedown 事件過程中呼叫這個方法來把全部的滑鼠事件重新定向到這個元素,直到滑鼠按鈕被釋放或者 document.releasecapture 被呼叫。element.setcapture retargettoelement retargettoelement 如果被設定為 tr...
c 中容易忽略的效能優化點
private static void main string args time console.readkey 使用 號連線字串時,值型別需要通過裝箱操作轉化為引用型別才可以新增到字串中。但是裝箱操作對效能影響較大,因為在進行這類處理時,將在託管堆中分配乙個新的物件,原有的值複製到新建立的物件中...