簡介
有興趣可以看看: 解釋性語言+動態類型語言+強類型語言
交互模式:(主要拿來試驗,可以試試 ipython)
腳本
環境:
建議python2.7 + easy_install + pip + virtualenv + ipython
縮進
Python 函數沒有明顯的 begin 和 end,沒有標明函數的開始和結束的花括號。唯一的分隔符是一個冒號 (:),接著代碼本身是縮進的。
例子:
if value == 1:
value += 1
elif value == 2:
pass
else:
value += 10
標識符
變量是標識符的例子。 標識符 是用來標識 某樣東西 的名字。在命名標識符的時候,你要遵循這些規則:
1.python中的標識符是區分大小寫的。
2.標示符以字母或下劃線開頭,可包括字母,下劃線和數字,大小寫敏感
3.以下劃線開頭的標識符是有特殊意義的。
以單下劃線開頭(_foo)的代表不能直接訪問的類屬性,需通過類提供的接口進行訪問,不能用“from xxx import *”而導入;
以雙下劃線開頭的(__foo)代表類的私有成員;
以雙下劃線開頭和結尾的(foo)代表python里特殊方法專用的標識,如init()代表類的構造函數。
4.標識符不能是保留字
變量
賦值語句
1、賦值語句建立對象引用值
2、變量名在首次賦值時會被建立
3、變量名在引用前必須先賦值,不能引用未聲明賦值的變量
賦值方式
簡單賦值
Variable(變量)=Value(值)
多變量賦值
python中原始的元組和列表賦值語句形成,最后已被通用化,以接受右側可以是是任何類型的序列,只要長度相等即可。注意,長度一定相等
Variable1,variable2,...=Value1,Value2,...
多目標賦值
s = h = ‘spam' 多目標賦值
自變賦值
自變賦值會修改原始對象,而不是創建一個新對象。
優點:
運算符
一個表達式可以分解為運算符和操作數
運算符 的功能是完成某件事,它們由如+這樣的符號或者其他特定的關鍵字表示
運算符需要數據來進行運算,這樣的數據被稱為 操作數
運算符優先順序列表(從最高到最低)
結合規律
運算符通常由左向右結合,即具有相同優先級的運算符按照從左向右的順序計算
計算順序
默認地,運算符優先級表決定了哪個運算符在別的運算符之前計算。然而,如果你想要改變它們的計算順序,你得使用圓括號。好的做法:默認對復雜的運算加括號,而不是依賴于默認結合和計算順序
真值
真值測試
1、任何非零數字或非空對象都為真
2、數字零,空對象以及特殊對象None都為假
3、比較和相等測試都會遞歸地運用到數據結構中
4、比較和相等測試會返回True或False
真值表
布爾表達式
三種布爾表達式運算符
比較
數字通過相對大小進行比較
字符串時按照字典順序的,一個字符一個字符比較
列表和元組從左到右對每部分的內容進行比較
字典通過排序后的鍵值列表進行比較
數字混合類型比較在python3是錯誤的,但是python2.6支持,固定但任意的排序規則
布爾數
有兩個永遠不改變的值True,False
布爾是整型的子類,但不能被再繼承
沒有nonzero()方法的對象的默認值是True
對于值為0的任何數字或空集,值False
在數學運算中,Bollean值的True和False分別對應于1和0
基本控制流
if
基本的條件測試語句,用來判斷可能遇到的不同情況,并針對不同的情況進行操作
基本形式
python根據縮進判斷, elif和else部分是可選的
例子:
if a < b and c < d:
print("branch a")
elif a == b:
print("branch b")
else:
print("branch c")
switch
python 本身沒有 switch 語句,若需要,用if/elif/else實現完成同樣的工作,某些情況可以考慮用字典
也可以用dict的形式
if/else三元運算符
for
基本語法
循環控制語句,可以用于循環遍歷某一序列
else塊可選,在循環終止的時候執行,若是break終止循環,else不執行
格式:
[code]
for <對象變量> in <對象集合>:
if<條件>:
break
if<條件>:
continue
<其他語句>
else:
<其他語句>
注意:
1.對象集合可以是列表,字典以及元組等
2.for..in循環對于任何序列都適用
3.for遍歷一個字典時,遍歷的是字典的鍵
可以通過range()函數產生一個整數列表,完成計數循環
start可選參數,起始數
stop終止數,若為x,產生從0-(x-1)的整數列表
step可選參數,步長,未寫默認為1
range(1,5) 包含序列為 [1,2,3,4]
xrange和range區別
(python3.x的可無視)
在Range的方法中,它會生成一個list的對象,但是在XRange中,它生成的卻是一個xrange的對象,當返回的東西不是很大的時候,或者在一個循環里,基本上都是從頭查到底的情況下,這兩個方法的效率差不多。但是,當返回的東西很大,或者循環中常常會被Break出來的話,還是建議使用XRange,這樣既省空間,又會提高效率。
在上面語句中,range返回了一個普通List,而xrange返回了一個特定的xrange類型的對象。由于 xrange 方法也創建整數 list(其使用相同參數),所以它與 range 方法非常相似。但是,xrange 方法僅在需要時才在 list 中創建整數。當需要迭代大量整數時,xrange 方法更適用,因為它不會創建極大的 list,那樣會消耗大量計算機內存。
while
與if語句類似,含一個條件測試語句,循環,允許重復執行一個語句塊。
可選else語句塊,同for的else塊。
格式:
說明:
while循環條件變為False的時候,else塊才被執行
若是使用break結束循環,while可選的else塊不執行
python沒有do while或do until循環語句
break & continue & pass
break,終止循環語句,停止循環,若是for/while循環中終止,其else不執行
continue,結束當前,進入下一輪循環 - 跳到最近所在循環的開頭處(來到循環首行)
pass 什么事也不做,只是空占位語句,它用于那些語法上必須要有什么語句,但程序什么也不做的場合
循環else塊 :只有循環正常離開時才會執行,即
如果你從for或while循環中break終止 ,任何對應的循環else塊將不執行。記住,break語句也可以在for循環中使用
其他
編寫循環的技巧:
在迭代過程中修改迭代序列不安全(只有在使用鏈表這樣的可變序列時才會有這樣的情況)。如果你想要修改你迭代的序列(例如,復制選擇項),你可以迭代它的復本。使用切割標識就可以很方便的做到這一點
>>>
|
新聞熱點
疑難解答
圖片精選