<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 6.1 懶惰即美德 ![](https://box.kancloud.cn/f0ceb48cf33ce537d5013c2578a7fb09_333x94.png) ![](https://box.kancloud.cn/e49f5157aacc60504863b2e120b57c2b_444x80.png) ![](https://box.kancloud.cn/3af97e05c79a5317b52a2c2a47e7b788_442x37.png) # 6.2 抽象和結構   程序應該是非常抽象的,就像“下載網頁、計算頻率、打印每個單詞的頻率”一樣易懂,事實上,我們現在就能把這段描述翻譯成Python程序: ~~~ page = download_page() freqs = compute_frequencies(page) for word.freq in freqs: print word.freq ~~~ # 6.3 創建函數 ![](https://box.kancloud.cn/f8f1aa8278579e75797bbefb4c16b770_571x299.png)   里面說 callable 在 Python 3.0 中不在可用,但3.4.3 里可用啊。 ![](https://box.kancloud.cn/7c35b228b6e38c3ae4cd89f030e13bc3_596x224.png) ## 6.3.1 記錄函數   如果想要給函數寫文檔,讓后面使用該函數人能理解的話,可以加入注釋(以#開頭)。另外一個方式就是直接寫上字符串。如果在函數的開頭寫下字符串,它就會作為函數的一部分進行存儲,這稱為文檔字符串。 ![](https://box.kancloud.cn/6aac0b6ebfd28af39f0c842df05140f4_401x186.png) ## 6.3.2 并非真正函數的函數   數學意義上的函數,總在計算其參數后返回點什么。Python 的有些函數卻不返回任何東西。在其他語言中(比如Pascal),這類函數可能有其他名字(比如過程)。但是Python的函數就是函數,即便它從學術上講并不是函數。沒有return語句,或者有return語句但return后邊沒有跟任何值的函數不返回值。 ![](https://box.kancloud.cn/3ad512b7b92a385fe6bf0d830b3aa897_278x142.png) # 6.4 參數魔法 ## 6.4.1 值從哪里來 ## 6.4.2 我能改參數嗎 ![](https://box.kancloud.cn/353c3ad2db9214f9b8f1c1ecdbdd19c5_355x177.png)   參數存儲在局部作用域(local scope)內。 ![](https://box.kancloud.cn/111ced6cc2cecd2b743c81d5e06b0ae5_330x101.png)   字符串(以及數字和元組)是不可變的,即無法被修改(也就是說只能用新的值覆蓋)。如果將可變的數據結構如列表用作參數,其會被改變。 ![](https://box.kancloud.cn/8de20638d4e77a597e7c5929694bf1cd_334x98.png)   為了防止這種情況出現,我們可以復制一個副本。 ![](https://box.kancloud.cn/a9bb2c071ee615e707c3a4d9682bc12a_340x193.png)   參數n包含一個副本,而原始的列表是安全的。 1.為什么我想要修改參數 ![](https://box.kancloud.cn/81476427b12d47947620b939b06466c7_497x374.png)   上面這些煩瑣的過程怎樣用函數來簡化: ![](https://box.kancloud.cn/9f20427ccf3a09aab6d8fb037e76e252_368x349.png) 上面例子沒看懂。 2.如果我的參數不可變呢 ![](https://box.kancloud.cn/d43e1bd4c7f6ab4da8760cdd284eee0a_215x202.png) ## 6.4.3 關鍵字參數和默認值 ![](https://box.kancloud.cn/57ac9f46ea85cadfcff88330945c3c86_405x411.png) ![](https://box.kancloud.cn/872e4d05e98798c7ddbf58c9db9aac7c_516x186.png) ## 6.4.4 收集參數 ![](https://box.kancloud.cn/fd685536c0d4d63effe2c876512e847b_263x99.png)   參數前星號將所有值放置在同一個元組中。 ![](https://box.kancloud.cn/dbb7d7522a5a433a08cc102dde010032_330x155.png)   星號的意思就是”收集其余的位置參數“。如果不提供任何供收集的元素,params 就是個空元組。 ![](https://box.kancloud.cn/15dafc614b72804c097609179b58ebf5_593x147.png)   二個星返回的是字典。 ![](https://box.kancloud.cn/f09af63e96a6bd26bc1311c4b6913a21_451x129.png) ![](https://box.kancloud.cn/de6028c91b9db3bc2836f7bad40ebcdd_405x378.png) ![](https://box.kancloud.cn/2fcf13118b7b8f5203ced4c320d7fdc7_776x58.png) ## 6.4.5 反轉過程 ![](https://box.kancloud.cn/dbbf28a0bcc74e0e1b7a61bece619d12_522x227.png) ![](https://box.kancloud.cn/5bcc963a1a3d9e98c645caca81a6cd27_495x241.png) ## 6.4.6 練習使用參數 ![](https://box.kancloud.cn/4afee67fbf918ee7825b595b750d1c16_538x532.png) ![](https://box.kancloud.cn/c3b55b325a359ba5ae9817d5febf1f8b_523x398.png) ![](https://box.kancloud.cn/3219a79d7681a1a89ecd2994003e462c_516x237.png) # 6.5 作用域 ![](https://box.kancloud.cn/a4ea5062f69a03c2c2fb1749488a3f92_219x101.png) ![](https://box.kancloud.cn/6a5d22e685f51845ec3257758c32a133_194x93.png) ![](https://box.kancloud.cn/5c0db8481e6fc992fe62d8c38ba21428_245x84.png) ![](https://box.kancloud.cn/f56fffa18accbd574d6a315b5f484272_483x84.png)   警告:像這樣引用全局變量是很多錯誤的引發原因,慎重使用。 ![](https://box.kancloud.cn/6b5bc866e89f1f2200d4a005eb63b1e3_381x90.png) ![](https://box.kancloud.cn/399bccfe172f8041c9e725ade6765153_399x198.png) 嵌套作用域 ![](https://box.kancloud.cn/b16a55da2c86dc8d4c14bc2639b95534_321x296.png)   類似multiplyByFactor函數存儲子封閉作用域的行為叫閉包(closure). # 6.6 遞歸 ## 6.6.1 兩個經典:階乘和冪 ![](https://box.kancloud.cn/1f0402ca22909ccfaebb005736ae9845_312x473.png) ## 6.6.2 另外一個經典:二元查找 # 6.7 小結 map(func, seq[, seq, ...]):對序列中的每個元素應用函數 filter(func, seq):返回其函數為真的元素的列表 reduce(func, seq[, initial]):等同于func(func(func(seq[0], seq[1]),seq[2])...) sum(seq):返回seq中所有元素的和 apply(func[, args[, kwargs]]):調用函數,可以提供參數
                  <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>

                              哎呀哎呀视频在线观看