函式宣告
以def開始,不指名具體的返回型別,但是通常都會有返回值,即使為空。函式宣告後即可使用
def在 python 裡面,變數從來不會顯式的指定型別。python 會在內部算出乙個變數的型別並進行跟蹤。只要你有乙個命名引數,它右邊的所有引數也都需要是命名引數。(size
,a_kilobyte_is_1024_bytes
=true
):
import
匯入(import)乙個模組的時候,python 會尋找幾個地方。具體來說,它會搜尋在sys.path
裡面定義的所有目錄。這只是乙個列表,你可以容易地檢視它或者使用標準的列表方法去修改它。(sys
模組是用 c 語言寫的。)
通過使用sys.path.insert(0, new_path)
,你可以插入乙個新的目錄到sys.path
列表的第一項
匯入(import
)了乙個 python 模組,你就可以通過module.function
的方式訪問它的函式
物件
python 裡面的所有東西都是物件,所有東西都可以有屬性和方法。所有函式都有乙個內建的屬性__doc__,用來返回這個函式的源**裡面定義的文件字串(docstring)
在 python 裡面,定義更加寬鬆。有些物件既沒有屬性也沒有方法,然而它可以有。不是所有的物件都是可衍生的。但是,所有的東西都是物件,從這個意義上說,它能夠被賦值到乙個變數或者作為乙個引數傳入乙個函式。
在 python 裡面所有東西都是物件。字串是物件,列表是物件,函式是物件,類是物件,類的例項是物件,甚至模組也是物件。
縮排
唯一的定界符就是乙個冒號(:
)和**自身的縮排
異常
所有的東西都是區分大小寫的
資料型別
列表
定義列表後,可從其中獲取任何部分作為新列表。
如果在列表中沒有找到該值,index()
方法將會引發乙個例外。直接崩掉,不像其他語言返回-1
列表永遠不會有縫隙
可以在列表解析中使用任何的python表示式 [elem * 2 for elem in a_list]
集合os.chdir('/users/chain/examples')
os.path.join(os.path.expanduser('~'), 'examples', 'humansize.py')
sys.
path
.insert(0
,'/users/chain/examples')
字串
在python 3,所有的字串都是使用unicode編碼的字串行。
定義乙個字串以後,我們可以擷取其中的任意部分形成新串。這種操作被稱作字串的分片(slice)。
正規表示式
^ 匹配字串開始. $ 匹配字串結尾
(a|b) 匹配a模式或者b模式中的乙個
注意,如果要使用鬆散正規表示式,需要傳遞乙個叫re.verbose的引數。
re.search(pattern, 'm', re.verbose)
\d 匹配所有0-9的數字. \d 匹配除了數字外的所有字元.
^ 匹配字串開始位置。
^
有特別的含義:非。[^abc]
的意思是:「 除了a
、b
或c
之外的任何字元」
$ 匹配字串結束位置。
\b 匹配乙個單詞邊界。
\d 匹配乙個數字。
\d 匹配乙個任意的非數字字元。
x? 匹配可選的x字元。換句話說,就是0個或者1個x字元。
x* 匹配0個或更多的x。
x+ 匹配1個或者更多x。
x 匹配n到m個x,至少n個,不能超過m個。
(a|b|c) 匹配單獨的任意乙個a或者b或者c。
(x) 這是乙個組,它會記憶它匹配到的字串。你可以用re.search返回的匹配物件的groups()函式來獲取到匹配的值。
\1
,它表示「嘿,記住的第乙個分組呢?把它放到這裡。>>> re.
sub(
'([^aeiou])y$',r
'\1ies'
,'vacancy')
的生成器
「yield」 暫停乙個函式。「next()」 從其暫停處恢復其執行。
yield
是一種產生乙個迭代器卻不需要構建迭代器的精密小巧的方法。
類
因為__init__()
方法呼叫時,物件已經建立了,你已經有了乙個合法類物件的引用。
迭代器就是乙個定義了__iter__()
方法的類。
檔案a_file
快取:應該使用httplib2
最後修改的時間
etag:etag
頭里返回乙個雜湊碼(如何生成雜湊碼完全取決於伺服器,唯一的要求是資料改變時雜湊碼也要改變)
壓縮重定向
cache-control: max-age
的意思是「乙個星期以內都不要來煩我。
304: not modified
的意思是 「不同的日子,同樣的資料(same ****, different day)。
第2遍:
學習了如何使用運算子、運算元和表示式——這些使任何程式的基本組成部分。
學習了如何使用三種控制流語句——if、while和for以及與它們相關的break和continue語句。
學習了函式的很多方面的知識,不過注意還有一些方面我們沒有涉及。
學習了如何使用這些模組以及如何創造我們自己的模組。
詳細**了多種python內建的資料結構。這些資料結構將是編寫程式時至關重要的部分。
學習如何建立我們自己的python程式/指令碼,以及在編寫這個程式中所設計到的不同的狀態。
研究了類和物件的多個內容以及與它們相關的多個術語。了解了物件導向的程式設計的優點和缺陷。python是乙個高度物件導向的語言
討論了多種型別的輸入/輸出,及檔案處理和使用儲存器模組。
討論了try..except和try..finally語句的用法。我們還學習了如何建立我們自己的異常型別和如何引發異常。
學習了python標準庫中的sys模組和os模組的一部分功能。
使用列表綜合可以用一種更加精確、簡潔、清楚的方法完成相同的工作。
lambda語句用來建立函式物件。本質上,lambda需要乙個引數,後面僅跟單個表示式作為函式體,而表示式的值被這個新建的函式返回。
repr函式用來取得物件的規範字串表示。
Python基礎語法學習
1 while loop 迴圈與判斷 while true x input if x q break else print x.upper 2 try except 異常處理 while true x input if x q break try x int x except print 1 els...
PYTHON 基礎語法學習
不需要宣告資料型別 a 10 語句不需要加分號 print hello world 縮排決定 塊的範圍,不需要大括號一.基本資料型別 數值型 整型,浮點型 字串 str 布林型 true false a true print type a 常用容器 資料儲存結構,能夠更好管理資料 列表list 類似...
基礎語法學習
public class hello 類名,變數名,方法名 關鍵字 以 a z a z 開頭 整數型別 byte short int long l 浮點型別 float f double 字元型別 char boolean型別 true 或 false 引用資料型別 類,介面,陣列 二進位制 0b ...