1. 程式人生 > >Python的控制語言

Python的控制語言

Python 流程控制之If語句

if 條件測試表達式

Python 的比較操作
所有的Python 物件都支援比較操作
1,可用於測試相等性,相對大小等。
2,如果是複合物件,Python會檢查其所有部分,包括自動遍歷各級巢狀物件,直到可以得出最終結果。

測試操作符
1,"==" 操作符測試值的相等性
2,“is” 表示式測試物件的一致性

Python中不同型別的比較方法
1,數字:通過相對大小進行比較
2,字串:按照字典次序逐字進行比較
3,列表和元組:自左至右比較各部分內容
4,字典:對排序之後的(鍵,值)列表進行比較

Python中真和假的含義
1,非零數字為真,否則為假
2,非空物件為真,否則為假
3,None則始終為假

組合條件測試
x and y :與運算
x or y:或運算
not x :非運算
1,and
2, or
3, not:返回True 或 False

注意:Python 中,and 和 or 運算會返回真或假的物件,而不是True或False
1, 物件在本質上不是"真",就是"假"

and 和 or 是短路操作符

iF 測試的語法結構
1, if boolean_expression1:
suite1
2, elif boolean_expression2:
suite2

3,else:
else_suite

   4,elif:語句是可選的

   5,僅用於佔位,而後再填充相關語句時,可以使用pass

if/else 三元表示式

A = x if y else z
表達的意思是:當 y 表達是的條件滿足了,則A 等於 x
否則 A 就等於 z
a = 7
b = 9
if a > b:
a = y
else :
a = z

賦值方式:
a = 7
b = 9
比如: max = a if a > b else b
其通用條件表示式語法格式為:
expression 1 if boolean_expression else expression2
如果boolean_expression的值為True ,則條件表示式的結果為 expression1,否則為expression2

print max 
輸出結果為 9

Python 流程空的while 和 for迴圈

while 迴圈
1,用於編寫通用迭代結構
2,頂端測試為真,即會執行迴圈體,並會重複多次測試知道為假後執行迴圈後的其它語句
for 迴圈
1,一個通用的序列迭代器,用於遍歷任何有序的序列物件內的元素
2,可用於字串,元組,列表和其它的內建可迭代物件,以及通過類所建立的新物件

Python也提供了一些能過進行隱性迭代的工具
1,in 成員關係測試
2,列表解析
3,map,reduce 和filter 函式

while 迴圈
語法格式:
while boolean_expression:
while_suite
else:
else_suite
1, else 分支為可選部分
2, 只要boolean_expression的結果為True ,迴圈就會執行;
3, boolean_expression的結果為False時終止迴圈,此時如果有else分支,則會執行。

while :
while bool_expression:
while_suite
else:
else_suite
break:跳出最內層的迴圈;
continue:跳到所處的最近層迴圈的開始出;也就是下一個迴圈
pass:點位語句
else 程式碼塊:迴圈正常終止才會執行;如果迴圈終止是由break 跳出導致的,則else不會執行;

For 迴圈
for expression1 in iterable(可迭代物件):
for_suite
else :
else_suite
1,通常,expression或是一個單獨的變數,或是一個變數序列,一般以元組的形式給出。
2,如果以元組或列表用於expression,則其中的每個資料項都會拆分到表示式的項,
例如:
T=[(1,2),(3,4),(5,6),(7,8)]
for (a,b) in T:
print a,b

xrange 跟 range 的區別
xrange 會一個一個的吐出一個值
range 會先生存一個序列出來

一, For 迴圈比while 迴圈執行速度快
二, Python 提供了兩個內建函式,用於在For 迴圈重定製特殊的迴圈
1,range 或 xrange
range :一次性地返回連續的整數列表
xrange : 一次產生一個數據元素,相較於range更節約空間
2,zip
返回並行的元素元組的列表,常用於在For迴圈重遍歷數個序列

        1)。取得一個或多個序列為引數,將給定序列中的並排的元素配成元組,返回這些元組的列表
              當引數長度不同時,zip會以最短序列的長度為準
        2)。可在for迴圈重用於實現並行迭代
             L1 = [1,2,3,4,5,6,7]
             L2 = ['a','b','c','d','e','f','g']
           zip(L1,L2)
          此為輸出結果: [(1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e'),(6,'f'),(7,'g')]

         3) 。zip也常用語動態構造字典
            keys = [1,2,3,4,5,6,7]
            values = ['Mon','Tus','Wed','Thu','Fri','Sat'.'Sun']
            D = {}
            for (k,y) in zip (keys,values):D[k] = y

         4) 。產生偏移後的記過

Python
1,動態語言
sys.getrefcount()
增加物件的引用計數場景;
物件建立時;
將物件新增進容器時;list.append
當物件被當做引數傳遞給函式時
s1 = s2 = s3 = ‘abc’
s1 = ‘abc’
減少引用計數:
引用此物件的某變數名被顯式銷燬:del x
給引用此物件的某變數名被設定為引用了其它物件
從容器中移除物件時,類似list.pop()
容器本身被銷燬
2,if boolean_expression:

     elif boolean_expression:
         ...
          
     else
         ...
  3, while 
       while boolean_expression:
          while_suite
             if boolean_expression2:continue
             if boolean_expression3:break
        else:
            else_suite
  4, for
      for expression in object
        for_suite
        if boolean_expression2:continue
        if boolean_expression2:break
       else:
           else_suite

死迴圈:while True:

例子:
In [89]: test=[]

      In [90]: while True:
                 x = raw_input('Enter an entry:')
              if x == 'q' or x == 'quit':
                 break
              else:
                  test.append(x)