python是一門物件導向的解釋性語言(指令碼語言),這一類語言的特點就是不用編譯,程式在執行的過程中由對應的直譯器向cpu進行編譯,一邊編譯一邊執行他屬於指令碼語言,不想編譯型語言那樣先將程式編譯成二進位制在執行。
1)程式塊不是以「」括起來來定義的,而是依據程式的縮進來表示程式的塊和**的層次
2)程式以乙個邏輯行尾單位進行執行,乙個邏輯行可以由多個物理行組成(通過\來連線下一行),乙個物理行可以分成多個邏輯行(通過「;」來分隔同一物理行的多個邏輯行。但是一般不建議使用「;」來分隔邏輯行,建議使用換行和縮進來組織程式結構)
3)程式中沒有類似main函式的主程式,乙個檔案中的所有內容(**)按照行從上到下從左到右執行。在檔案中有函式,函式定義部分等到呼叫才執行。
4)變數在定義時沒有型別,在執行期間才去確定資料型別。變數沒有固定型別,前一次賦值的時候是什麼型別就是什麼型別,而且是可以動態變動的。
5)函式定義中沒有返回值及返回值型別的說明,只有函式名和引數列表(引數也沒有型別,同一函式在同一程式中可接收不同型別的引數)。如果沒有返回值則預設返回none,如果有顯示的return語句,則返回被return的值。(在同一函式,多個return可以返回不同型別的或不返回)
6)常用的函式 a. raw_input(str)函式:接收使用者從控制台輸入的資料,返回乙個字串。引數str是提示語句。 b. int(str)等函式:將字串轉換成int型別,可以配合raw_input(str)函式使用,從使用者輸入獲取int資料。 c. len(obj)函式:獲取列表、元組、字典等的長度,返回長度的值 d. print 函式:列印內容到控制台,可以是數值、字串、序列等各種型別。列印完後預設是自動換行,如果後面接「,」則不換行。可以格式化字串,使用%d(%o、%x)、%f、%s等,
7)python的關鍵字
8)python的資料型別
控制語句
控制語句
控制語句分別有表示選擇的if語句(if、else、elif),注意沒有switch case語句;有表示迴圈的while語句,while末尾也有else的可選項,但是沒有do while語句;還有表示迴圈的for語句,for末尾也有else的可選項,但是for語句是for var in list型別的語句,而不是像c語言的三段式;在for和while語句中還有break語句和continue語句,意義和其他語言中一樣。注意在python中沒有使用大括號表示語句塊的方法,而是通過縮進來表示的。具體的控制語句總結如下。
1)if條件判斷語句:if、elif、else後面要跟冒號,其中elif和else部分是可選的。
2)while迴圈語句:注意while後面跟冒號,else部分可選
3)for迴圈語句:else部分可選
函式函式定義沒有返回值的說明,但是可以使用return語句返回乙個值,如果在函式中有多個return語句,那麼返回值型別可以不同,如果沒有return語句,預設是返回none。函式的引數列表也只有形參名稱,而沒有形參的型別,具體的型別根據執行時動態確定,在同一程式中,可以給同一函式傳遞不同型別的引數來呼叫這個函式。注意函式定義時後面跟「:」。函式呼叫的形式為functionname(arg1, arg2, ……,argn)。 預設引數:在函式定義時指定引數的值,則在呼叫時,這些引數的值可以不給定,而直接根據定義時給定的值預設。如def say(message, times = 1):,那麼在呼叫時可以直接say(「hello」)或say(「hello」,5)。如果沒有指定times的值的話就將該值預設為1。預設引數必須在非預設引數之後,由於呼叫時引數個數不確定,因此按照順序依次給各引數賦值,沒有被賦值的後面的預設引數就被賦值為預設值。 只有在形參表末尾的那些引數可以有預設引數值,即你不能在宣告函式形參的時候,先宣告有預設值的形參而後宣告沒有預設值的形參。這是因為賦給形參的值是根據位置而賦值的。例如,def func(a, b=5)是有效的,但是def func(a=5, b)是無效的。
模組使用模組時引用模組就行了,通過語句import或from …… import……。如果你想要輸入所有sys模組使用的名字,那麼你可以使用from sys import *語句。比如有乙個模組被寫在mou.py中,在程式testmou.py中要用模組,你需要通過「import mou」語句匯入模組,注意「.py」不用寫。假如mou.py中定義了乙個變數和乙個函式分別叫var和fun(),通過上面的import語句匯入模組mou之後你可以通過語句「mou.var」和「mou.fun()」來呼叫其中的變數和函式。如果你想匯入mou中的所有變數和函式,則可以使用「from mou import *」來匯入,這樣匯入的方式使得使用時就不需要模組名來引用變數和函式,直接使用。如果你只想匯入mou中的fun()函式,則可以使用「frommou import fun」語句來匯入,使用時就不需要模組名了,直接使用fun()函式。 python中有許多標準庫模組,是語言自帶的一些模組,也可以自定義自己的模組。 標準庫模組常用的有sys、os、re、time等。自定義時就和平常寫python一樣,乙個.py結尾的檔案就是乙個模組。 注意:匯入某模組時,該模組的主塊將被執行,無論是匯入全部還是匯入該模組的某乙個變數或函式。
資料結構
使用模組時引用模組就行了,通過語句import或from …… import……。如果你想要輸入所有sys模組使用的名字,那麼你可以使用from sys import *語句。比如有乙個模組被寫在mou.py中,在程式testmou.py中要用模組,你需要通過「import mou」語句匯入模組,注意「.py」不用寫。假如mou.py中定義了乙個變數和乙個函式分別叫var和fun(),通過上面的import語句匯入模組mou之後你可以通過語句「mou.var」和「mou.fun()」來呼叫其中的變數和函式。如果你想匯入mou中的所有變數和函式,則可以使用「from mou import *」來匯入,這樣匯入的方式使得使用時就不需要模組名來引用變數和函式,直接使用。如果你只想匯入mou中的fun()函式,則可以使用「frommou import fun」語句來匯入,使用時就不需要模組名了,直接使用fun()函式。 python中有許多標準庫模組,是語言自帶的一些模組,也可以自定義自己的模組。 標準庫模組常用的有sys、os、re、time等。自定義時就和平常寫python一樣,乙個.py結尾的檔案就是乙個模組。 注意:匯入某模組時,該模組的主塊將被執行,無論是匯入全部還是匯入該模組的某乙個變數或函式。 資料結構 具體的資料型別在3.2.1python語言概述中有詳細的列舉,其他的也很簡單,和其他語言的資料型別差不多,本節主要介紹一些python語言特有的一些資料結構。主要的資料結構是列表、元組、字典、序列。下面分別簡單總結一下。
1)列表 特點:列表是可變的,可以刪除、排序、追加(列表中的列表也不會失去它的身
2)元組 特點:元組是不可變的。 元組和列表十分類似,只不過元組和字串一樣是不可變的,即你不能修改元組。元組通過圓括號中用逗號分割的專案定義。元組通常用在使語句或使用者定義的函式能夠安全地採用一組值的時候,即被使用的元組的值不會改變。 注意元組之內的元組不會失去它的身份。含有0個或1個專案的元組。乙個空的元組由一對空的圓括號組成,如myempty = ()。然而,含有單個元素的元組就不那麼簡單了。你必須在第乙個(唯一乙個)專案後跟乙個逗號,如singleton = (2 , )。
3)字典 特點:字典就是類似於map,是以鍵-值對的形式存在的,鍵值對在字典中以這樣的方式標記:d = 。鍵/值對用冒號分割,而各個對用逗號分割,所有這些都包括在花括號中。
4)序列 列表、元組和字串都是序列,序列的兩個主要特點是索引操作符和切片操作符。索引操作符讓我們可以從序列中抓取乙個特定專案。切片操作符讓我
們能夠獲取序列的乙個切片,即一部分序列。
課程學習總結報告
一 linux系統 作業系統主要完成兩個目標 與硬體互動,為應用程式提供執行環境 為了防止使用者程式直接和硬體互動,將cpu分為兩種執行模式,稱使用者態和核心態 linux是乙個多使用者多工的作業系統,一般主要有4個部分 使用者程序,系統呼叫介面,linux核心,硬體 本課程的重點主要是中斷和程序管...
課程學習總結報告
要求 請您根據本課程所學內容總結梳理出乙個精簡的linux系統概念模型,最大程度統攝整頓本課程及相關的知識資訊,模型應該是邏輯上可以運轉的 自洽的,並舉例某一兩個具體例子 比如讀寫檔案 分配記憶體 使用i o驅動某個硬體等 納入模型中驗證模型。談談您對課程的心得體會,改進建議等。linux系統的組成...
ACM 學習總結報告(三)
因為還沒有學習新的知識,所以這次先不進行知識點總結了,於是想寫一些隨筆來談談這段時間做題的感悟體會吧。一 貪心演算法例題分析 做了幾個貪心演算法的題後發現這些題都大同小異,基本上都是先定義乙個結構體,把所包括的元素都放進去。然後定義乙個排序函式,根據題目要求進行排序,最後再在主函式中貪心。做的多了不...