Python核心編程學習日記之條件和迴圈

來源:互聯網
上載者:User
第8章: 條件和迴圈
  1. if語句
    1. 格式:if expression:   expr_true_suite
  2. else語句
    1. 格式:if expression:   expr_true_suiteelse:   expr_false_suite  
    2. Python的縮排使用強制使代碼正確對齊,避免出現“懸掛else”的問題
  3. elif語句
    1. 可以使用序列和成員關係操作符,或者Python字典來替換大段的if_elif_else語句
  4. 條件運算式(三元操作符)
    1. 類比三元運算式的一種方法:(C and [X] or [Y])[0].具體實現原理參照該篇部落格。and和or的傳回值是決定其值的運算元
    2. Python2.5將文法確定為:X if C else Y
  5. while語句,for語句
    1. for迴圈會訪問一個可迭代對象(例如序列或是迭代器)中的所有元素,在所有條目都處理過後結束迴圈
    2. 迭代序列基本方法:通過序列項迭代;通過序列索引迭代;使用項和索引迭代,調用enumerate()函數
    3. for逐一查看迭代器:迭代器對象有一個next()方法,所有條目迭代完成後,迭代器引發一個StopIteration異常,for語句在內部調用next()捕獲異常
    4. range()完整文法:range(start, end, step = 1),不包括end
    5. range()簡略文法:range(end)或者range(start,end)
  6. break語句;continue語句;pass語句;else語句
    1. pass語句相當於c語言中一個只有;的語句,表示什麼操作也不做,只是為了滿足文法要求
    2. else語句也可以在while和for迴圈中使用else語句,在迴圈結束之後執行,break語句也會跳過else塊
  7. 迭代器和iter()函數
    1. 迭代器就是一個有next()方法的對象.調用一次next()擷取下一個項。全部取出,引發一個StopIteration異常,提示外部調用者,迭代完成
    2. 迭代器不能向後移動,不能回到開始,不能複製一個迭代器,“一次性使用”。
    3. 使用迭代器
      1. 序列; 字典的迭代器會遍曆它的鍵:for each in dict:, 另外三個定義迭代方法:myDict.iterkeys(),myDict.itervalues(),myDict.iteritems()
      2. 檔案對象產生的迭代器會自動調用readline()方法
      3. 可變對象:在迭代可變對象時,修改它們一定要謹慎,最好不要這樣做
      4. 調用iter(obj)或者iter(func,sentinel)得到對象的迭代器。實現了__iter__()和next()的類可以作為迭代器
      5. 列表解析文法:[expr for iter_var in iterable] 結果值是expr運算式對於每一個列表條目作用產生的列表
      6. [expr for iter_var in iterable if cond_expr] if語句過濾/捕獲序列成員。列表解析支援多重嵌套for迴圈以及多個if子句
      7. 當大量資料的迭代器用於列表解析,由於要產生所有資料,記憶體利用效能不佳。產生器運算式:(expr for iter_var in iterable if cond_expr) 產生器用作參數,每次計算出一個條目,並未建立真正列表,所有記憶體利用更有效
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.