摘要:依次寫出函數名括號參數語句結束符。使用和是的習慣寫法,當然也可以用其他參數名,但最好使用習慣用法。命名的關鍵字參數作用為了限制調用者可以傳入的參數名,同時可以提供默認值。
Run
源代碼
Python源代碼的文件以"py"為擴展名,由Python程序解釋,不需要編譯
命令:python 文件
字節代碼
Python源文件經過編譯后生成的擴展名為"pyc"的文件
編譯方法:
import py_compile py_compile.compile("url") # url編譯的文件的路徑
編譯后的文件為:xxx.cpython-36.pyc
優化代碼
經過優化的源文件,擴展名為".pyo"
命令:pyhont -O -m py_comile 編譯的文件
編譯后的文件為:xxx.cpython-36.opt-1.pyc
Typeint, float, str, bool, NoneType tuple, list, dict, setLists
list = [] list[i:j] # 返回列表的子集 list[-1] # 訪問的最后一個元素 list[:-1] # 只返回最后一個元素 list[i] = val list[i:j] = otherlist # replace ith to jth element with otherlist del list[i:j] list.append(item) list.extend(list) list.insert(0, item) list.pop() list.remove(i) list1 + list2 # 結合兩個列表 set(list) # 從列表中刪除重復元素 list.reverse() list.count(item) sum(list) list.sort() zip(list1, list2) sorted(list) ",".join(list)Dict
dict.keys() dict.values() "key" in dict dict["key"] # throws KeyError dict.get("key") dict.setdefault("key", 1)Iteration
for item in ["a", "b", "c"]: for i in range(4): # 0 到 3 for i in range(4, 8): # 4 到 7 for key, val in dict.items():String
str[0:4] len(str) string.replace("-", " ") ",".join(list) "hi {0}".format("j") str.find(",") str.index(",") str.count(",") str.split(",") str.lower() str.upper() str.title() str.lstrip() str.rstrip() str.strip() str.islower() len() # 求序列長度 + # 連接2個序列 * # 重復序列元素 in # 判斷元素是否在序列中 max() # 返回最大值 min() # 返回最小值Set
集合Set于列表,元組類似,可以存儲多個數據,但是,這些數據是不重復的。
集合對象支持union(聯合), intersection(交集), difference(差集)和sysmmetric_difference(對稱差集)等數學運算
>>> x = set("abcd") >>> x {"c", "a", "b", "d"} >>> type(x)Casting>>> y = set(["h","e","l","l","o"]) >>> y {"h", "e", "o", "l"} >>> z = set("spam") >>> z {"s", "a", "m", "p"} >>> y&z # 交集 set() >>> x&z # 交集 {"a"} >>> x|y # 并集 {"a", "e", "d", "l", "c", "h", "o", "b"} >>> x-y # 差集 {"c", "a", "b", "d"} >>> x^z # 對稱差集(在x或z中,但不會同時出現在二者中) {"m", "d", "s", "c", "b", "p"}
int(str) float(str) str(int) str(float) bool(1)Comprehensions
[fn(i) for i in list] # .map map(fn, list) # .map, 返回的迭代 filter(fn, list) # .filter, 返回的迭代 [fn(i) for i in list if i > 0] # .filter.mapRegex
import re re.match(r"^[aeiou]", str) re.sub(r"^[aeiou]", "?", str) re.sub(r"(xyz)", r"1", str) expr = re.compile(r"^...$") expr.match(...) expr.sub(...)Function
定義函數
使用關鍵字:def。 依次寫出函數名, 括號, 參數, 語句結束符 :。然后,在縮進塊中編寫函數體,函數的返回值用return語句返回
def my_abs (x): if x >= 0: return x else: return -x
空函數
定義一個什么也不做的空函數,使用pass語句
def nop () pass
空函數的作用:提供占位符
參數
默認參數一定要用不可變對象(基本變量類型和tuple), 如果是可變對象,程序運行時會有邏輯錯誤。
定義可變參數和關鍵字參數的使用:
*args是可變參數,args接收的是一個tuple
**kw是關鍵字參數,kw接收的是一個dict
調用函數時如何傳入可變參數和關鍵字參數:
可變參數既可以直接傳入:func(1, 2, 3),又可以先組裝list或tuple,再通過*args傳入:func(*(1, 2, 3));
關鍵字參數既可以直接傳入:func(a=1, b=2),又可以先組裝dict,再通過**kw傳入:func(**{"a": 1, "b": 2})。
使用*args和**kw是Python的習慣寫法,當然也可以用其他參數名,但最好使用習慣用法。
命名的關鍵字參數作用:為了限制調用者可以傳入的參數名,同時可以提供默認值。
定義命名的關鍵字參數在沒有可變參數的情況下不要忘了寫分隔符*,否則定義的將是位置參數
返回值
函數執行完畢也沒有return語句時,自動return None
函數可以同時返回多個值,但其實就是一個tuple
匿名函數
lamdba 參數:函數體
匿名函數自動具有返回值
Characteristic區分大小寫
語句結尾使用:
Tab符
if的各種假
Flase: "", None, 0, -0.0, 0.0 [], {}, (), Flase
==與is
is是比較兩個引用是否指向了同一個對象(引用比較)
==是比較兩個對象是否相等
a = 2 b = 2 a is b # True, 為True的原因是[-5, 256] c = 500 d = 500 c is d # False
python解釋器為了優化速度,會把[-5, 256]之間的數據提前存放到小整數對象池中,程序中要使用到[-5, 256]之間范圍的數據,就不會重新創建一份,都是指向對象池中的同一份數據,除了這個區間之外的數據,每次使用時解釋器都會重新申請一塊內存,用來存儲數據。
深拷貝和淺拷貝
淺拷貝:對于一個對象的頂層拷貝(拷貝了引用,并沒有拷貝內容)
深拷貝:重新申請內存存儲復制的數據.
import copy a = [1, 2, 3] b = a # 淺拷貝 c = copy.deepcopy(a) # 深拷貝
區別copy和deepcopy:
deepcopy:所有的內容都重新申請內存,依次拷貝
copy: 外層重新申請內存
拷貝元組的特點:
都是相同引用地址(元組是不可變類型,拷貝之后還是相同地址)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/41346.html
摘要:以下這些項目,你拿來學習學習練練手。當你每個步驟都能做到很優秀的時候,你應該考慮如何組合這四個步驟,使你的爬蟲達到效率最高,也就是所謂的爬蟲策略問題,爬蟲策略學習不是一朝一夕的事情,建議多看看一些比較優秀的爬蟲的設計方案,比如說。 (一)如何學習Python 學習Python大致可以分為以下幾個階段: 1.剛上手的時候肯定是先過一遍Python最基本的知識,比如說:變量、數據結構、語法...
摘要:在種,使用關鍵字定義的迭代器也被稱為生成器迭代器迭代器是訪問集合內元素的一種方式。調用任何定義包含關鍵字的函數都不會執行該函數,而是會獲得一個隊應于該函數的迭代器。 上一篇文章:Python:Tornado 第一章:異步及協程基礎:第一節:同步與異步I/O下一篇文章:Python:Tornado 第一章:異步及協程基礎:第三節:協程 協程是Tornado中進行異步I/O代碼開發的方法...
摘要:本文的分享主要圍繞以下幾個方面能做什么常見應用場景介紹如何學習語法基礎實戰面向對象編程實戰練熟基礎小游戲項目的實現與實戰一能做什么一種編程語言往往可以應用于多方面,有些方面比較常用,有些方面極為常用。比如表示是一個空列表。 摘要:Python語言的教程雖然隨處可見,但是忙于日常業務/學習的你或許:一直想要找個時間學一點,但是又不知道該從何下手?本文將從Python能做什么,如何學習Py...
摘要:標準模塊附帶了一個標準模塊庫。它返回一個如果調用不傳遞參數,則列出當前已經定義的所有名字用可以查看所有的內置類型變量函數等,方法是借助標準模塊模塊高級技巧總結的搜索路徑,順序一定要搞得清編譯后的文件內置函數查看模塊定義的名字。 上一節,我們講解了Python模塊的基礎知識,這一節我們繼續深入了解模塊的更多知識,從而讓大家全面了解、掌握和運用模塊到我們實際的編程中。 在上一節中有一句話接...
摘要:一運算符重載基礎運算符重載對已有的運算符進行重新定義,賦予其另一種功能,以適應不同的數據類型。重載一元運算符重載一元運算符只需實現相應的特殊方法,這些特殊方法只有一個參數。 導語:本文章記錄了本人在學習Python基礎之面向對象篇的重點知識及個人心得,打算入門Python的朋友們可以來一起學習并交流。 本文重點: 1、掌握運算符重載的定義和作用,以及Python對其的內部限制;2、掌握...
閱讀 3045·2021-09-03 10:33
閱讀 1273·2019-08-30 15:53
閱讀 2622·2019-08-30 15:45
閱讀 3382·2019-08-30 14:11
閱讀 532·2019-08-30 13:55
閱讀 2584·2019-08-29 15:24
閱讀 1912·2019-08-26 18:26
閱讀 3568·2019-08-26 13:41