本篇筆記基於博主本身的的學習,理解,總結所寫。不少東西可能存在誤解,不能保證百分之百的正確。python
變量在解釋器的命名空間中,只是一個標籤,用於表示對對象的引用。能夠做爲數據類型的引用,也能夠用函數等其餘對象的引用。編程
運算符表示數據運算的類別。python中共有七種運算類型。不一樣運算類型包括不一樣的運算符。閉包
算術運算包括七種運算符:app
+ 加法計算 - 減法計算 * 乘法計算 / 除法計算 % 取模(餘)計算 ** 冪計算 // 取整除計算
關係運算包括七種運算符:模塊化
== 等於 != 不等於 <> 不等於 > 大於 < 小於 >= 大於等於 <= 小於等於
邏輯運算包括三種運算符:函數
and 布爾與 or 布爾或 not 布爾非
賦值運算包括八種運算符:學習
= 基本賦值 += 加後賦值 -= 減後賦值 *= 乘後賦值 /= 除法賦值 %= 取餘賦值 **= 冪賦值 //= 取整賦值
位運算包括六種運算符:ui
& 按位於 | 按位或 ^ 按位異或 ~ 按位取反 << 左移 >> 右移
成員運算兩種運算符:code
in not in
is not is
表達式由數據類型和運算符組成。表達式有返回值。
返回值有:對象
表達式有多種類型,好比:
返回值通常爲:
條件判斷結構,由if...elseif...else...else引導構成。
if後面爲條件表達式,條件表達式一般由關係運算,身份運算,成員運算等可以構成條件運算,且通常返回布爾類型值True或者False構成判斷條件。
esle爲條件成立後的結果。通常爲輸入,輸出,計算,或者無操做。
條件判斷不單一,通常存在一個或者多個添加。
通常會按照「判斷條件-結果分支「的形式,存在多種判斷結構。即:
單分支。經常使用於特殊狀況排除
# 簡單示例 if True: print 'ok' if 1: print 'ok' if 2 > 1: print 'ok' # 示例代碼 for i in range(10): if i % 2 != 0: print i
雙分支。經常使用於對立的兩個方面
#簡單示例 if False print 'ok' else: print 'not ok' # 示例代碼 for i in range(10): if i % 2 == 0: print "偶數:",i else: print "奇數:",i
多分支。經常使用於多個狀況的選擇或者條件嵌套
# 簡單示例 # 示例代碼 if 0 < a < 100: print "a+100=:",a+100 elif 100 <= a < 200: print "a+200=:",a+200 elif 200 < a: print "a > 200" else: print "a < 0"
#示例代碼 a = input("a的值:") b = input("b的值:") if a > 100 and b < 100: print "a > 100 and b < 100" else: print "不知足a>100,而且b<100" if a >= 100 or b >= 100: print "a >= 100 or b >= 100" else: print "a和b都不大於100"
for 遍歷一個列表(或者返回列表的表達式),來處理輸入操做
a = [ ] for i in range(10): a.append(i) print a[i]
for遍歷一個列表(或者返回列表的表達式),來處理輸出操做。示例以下:
for i in 1,2,3,4: print i for i in range(10): print i
python語句由換行符和縮進組成。語句塊是稍微複雜一點的帶有邏輯性的語句,如控制結構種的語句模塊。
語句和語句塊是模塊化編程的基礎,也就是語法基礎。由語句和語句塊,構成了編程文件。
語句和表達式的區別在於,表達式通常都有返回值,而語句只是一條包含了表達式的指令合集。
## 賦值語句 a = 100 a = input("輸入a:") ## 控制結構 if a > 0: print a else print "hello"
上述示例種,控制結構語句塊,包含了條件表達式等
若是說語句和語句塊,是編程語句的最基本組成。
那麼能夠由語句或者語句組成功能性更強,重複性更低的代碼段。能夠稱之爲函數。
函數的定義,在數學上爲:對輸入的不一樣的值,都進行一樣的操做,這也服務編程中函數的使用規範。
python函數,表示組織好的,可重複使用的,用來實現單一,或者相關功能的代碼段。
python解釋器,提供了不少內置函數,也支持用戶自定義函數
函數的使用,包括定義,調用,傳參,返回,變量做用域等概念。
函數在python中的引用極其重要,是python功能的體現。
語法層面上,函數以def關鍵字定義,後接函數名稱和圓括號括起來的參數列表
任何傳入參量和自變量,須要放入參數列表中
函數第一行語句,能夠選擇性的使用函數說明文檔。
函數一樣遵循python的語法,冒號+縮進
return 表達式,表示函數的結束,表示給調用者的返回。不帶表達式的函數返回None
定義函數時,須要肯定函數的名稱和參數個數;若是有必要,能夠先對參數的數據類型作檢查。
#語法結構 def functionname( parameters ): "函數_文檔字符串" function_suite return [experssion] #示例代碼。打印字符串函數 def helloworld(str): print "I am :%s" % str helloworld("liwanliang")
函數的定義完成以後,基本上可以知道函數的功能。函數功能的實現,經過在代碼中調用函數實現。
有多個默認參數時,調用的時候,既能夠按照順序提供的默認參數,也能夠不按順序提供部分默認參數。當不按順序提供部分默認參數時,須要把參數名寫上。
#示例代碼: def helloworld(str): print "I am :%s" % str myname = raw_input("input your name:") hellowrld(myname)
python中,一切都是對象。對象才具備類型,而變量是對象的引用,無類型。
對象有可變對象,也有不可變對象。
可變對象包括:
不可變對象包括:
python函數中,以變量來進行參數傳遞,分爲不可變類型和可變類型。
不可變類型傳遞的是值的拷貝,而可變類型傳遞得是值。
嚴格意義上講,咱們不能說是值傳遞,仍是引用傳遞。咱們應該說是傳可變對象和傳不可變對象。
#不可變對象示例代碼 def liwanliang(a): a = 100 print a b = 200 liwanliang(b) print b #可變對象示例代碼 def helloworld(str1,str2): print "Hello,I am:" + str1 +"."+ "I am "+ str2 myname = raw_input("input your name:") myage = raw_input("input your age:") helloworld(myname,myage)
python可使用的正式參數類型:
可變參數容許傳入0個或者任意個參數,這些可變參數在函數調用時自動組裝爲tuple。
關鍵字參數容許傳入0個或者任意個含參數名的參數,這些關鍵字參數在函數內部自動組裝成dict。
return 表達式。該語句表示退出函數,選擇性地向調用方返回一個表達式。不帶參數值的return語句返回None。
全部函數均有返回值,經過顯示指定,或者隱式返回None。
一個函數能夠有多個return語句,可是隻有一個被執行。若是沒有一條return被執行,則隱式返回None。
若是執行了return語句,函數會馬上返回,結束調用。被執行的return以後的語句,再也不被執行。
return和print的區別爲:print僅僅是函數代碼段中,打印標準輸出部分的語句;而return是結束調用時,返回給調用者的對象。
不管定時的返回什麼類型,return只能返回單個標準數據類型,單個數據類型能夠包括多種基本數據元素。
函數能夠同時返回多個值,但其實就是一個tuple。
python高階函數中,函數能夠做爲參數,也能夠做爲返回值,而且參與函數運算。