Python基礎語法學習

2021-06-04 12:22:34 字數 3773 閱讀 1406

函式宣告

以def開始,不指名具體的返回型別,但是通常都會有返回值,即使為空。函式宣告後即可使用

def

(size

,a_kilobyte_is_1024_bytes

=true

):

在 python 裡面,變數從來不會顯式的指定型別。python 會在內部算出乙個變數的型別並進行跟蹤。只要你有乙個命名引數,它右邊的所有引數也都需要是命名引數。

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]的意思是:「 除了abc之外的任何字元」

$ 匹配字串結束位置。

\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 ...