<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ### 4.2.2 用函數改善程序結構 上一節討論了函數的減少重復代碼、精簡程序的作用,并利用函數的這個功能將程序 4.1 改進成了程序 4.2。在該節的最后,我們也給出了一個不宜用函數來減少重復代碼的情況。 還能不能利用函數將程序 4.2 變得更好呢? 我們在 4.1 節中一般地討論了模塊化編程,在 Python 中,函數就是用于模塊化編程的 重要工具。當算法很復雜時,程序就會變得難以理解。據說人類擅長同時應付 8 到 10 件事 情,當面對成百上千行的算法時,最好的程序員也會感到難以把握。應對程序復雜性的一種 方法就是模塊化,將程序分解成多個較小的相對獨立的子程序。下面我們來看程序 4.2 還能 怎樣改進。 我們定義一個新函數 treetrunk,它的語句序列就是程序 4.2 的主函數中用于畫樹干的三條 print 語句。即: ``` def treetrunk(): print " #" print " #" print " #" ``` 然后我們用這個函數取代主函數的那三條 print 語句,就得到畫樹程序的一個新版本。 【程序 4.3】tree3.py ``` def treetop(): print " *" print " ***" print " *****" print "*******" def treetrunk(): print " #" print " #" print " #" def main(): treetop() treetop() treetrunk() main() ``` 注意我們將程序主函數的名字從 tree 改成了更符合慣例的 main。 簡單地比較一下程序 4.2 與 4.3 這兩個版本就看出,由于多了函數 treetrunk 的定義與調用,新版本的代碼不但沒有減少,反而增加了。那為何要引進 treetrunk 函數呢?其實我們的目的是使主程序的結構更清晰,從而更容易理解程序功能。通過將一些實現細節轉移到一個單獨的函數中,并對函數進行合適的命名,能夠使程序的可讀性大大增強。例如我 們來讀程序 4.3 的主程序 main,就會發現該程序不過是先畫樹冠(由兩個相同形狀組成), 再畫樹干而已,程序的功能一目了然。 如果進一步發揮上述思想,就會發現程序 4.3 的結構還不夠完美。問題出在主程序的第 一步——畫樹冠,這一項任務邏輯上是個整體卻用了兩個函數調用來完成,這就好比老師對 學生說“請大家畫上一半樹冠,再畫下一半樹冠”,顯然不如直接說“請大家畫樹冠”來得 清晰易懂。因此,我們再引入一個新函數用于隱藏樹冠的實現細節(上下兩部分),從而得 到程序 4.4,這個版本在避免重復代碼和模塊化兩方面可以說達到了完美。 【程序 4.4】tree4.py ``` def treetop1(): print " *" print " ***" print " *****" print "*******" def treetop(): treetop1() treetop1() def treetrunk(): print " #" print " #" print " #" def main(): treetop() treetrunk() main() ``` 現在再來讀主程序 main,顯然更容易理解了——從程序頂層看,整個程序不外乎就是畫樹 冠、畫樹干兩步而已。如果只想了解程序的總體功能,那么讀懂 main 函數就夠了;如果還 想了解更多細節,那就再去讀輔助函數 treetop1 和 treetrunk 等。 讀者在編程時應當多模仿、多體會程序 4.4 中函數的用法,并學會欣賞模塊化程序在結 構方面的優美。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看