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

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                我們可以創建一個用來生成指定邊界的斐波那契數列的函數: ~~~ >>> def fib(n): # write Fibonacci series up to n ... """Print a Fibonacci series up to n.""" ... a, b = 0, 1 ... while a n: ... print(a, end=' ') ... a, b = b, a+b ... print() ... >>> # Now call the function we just defined: ... fib(2000) 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 ~~~ 關鍵字?def?引入了一個函數?_定義_。在其后必須跟有函數名和包括形式參數的圓括號。函數體語句從下一行開始,必須是縮進的。 函數體的第一行語句可以是可選的字符串文本,這個字符串是函數的文檔字符串,或者稱為_docstring_。(更多關于 docstrings 的信息請參考?[_文檔字符串_](http://www.pythondoc.com/pythontutorial3/controlflow.html#tut-docstrings)) 有些工具通過 docstrings 自動生成在線的或可打印的文檔,或者讓用戶通過代碼交互瀏覽;在你的代碼中包含 docstrings 是一個好的實踐,讓它成為習慣吧。 函數?_調用_?會為函數局部變量生成一個新的符號表。確切的說,所有函數中的變量賦值都是將值存儲在局部符號表。變量引用首先在局部符號表中查找,然后是包含函數的局部符號表,然后是全局符號表,最后是內置名字表。因此,全局變量不能在函數中直接賦值(除非用?global?語句命名),盡管他們可以被引用。 函數引用的實際參數在函數調用時引入局部符號表,因此,實參總是?_傳值調用_?(這里的?_值_?總是一個對象 引用 ,而不是該對象的值)。[[1]](http://www.pythondoc.com/pythontutorial3/controlflow.html#id10)?一個函數被另一個函數調用時,一個新的局部符號表在調用過程中被創建。 一個函數定義會在當前符號表內引入函數名。函數名指代的值(即函數體)有一個被 Python 解釋器認定為?_用戶自定義函數_?的類型。 這個值可以賦予其他的名字(即變量名),然后它也可以被當做函數使用。這可以作為通用的重命名機制: ~~~ >>> fib >>> f = fib >>> f(100) 0 1 1 2 3 5 8 13 21 34 55 89 ~~~ 如果你使用過其他語言,你可能會反對說:fib?不是一個函數,而是一個方法,因為它并不返回任何值。事實上,沒有?return?語句的函數確實會返回一個值,雖然是一個相當令人厭煩的值(指 None )。這個值被稱為?None?(這是一個內建名稱)。如果?None?值是唯一被書寫的值,那么在寫的時候通常會被解釋器忽略(即不輸出任何內容)。如果你確實想看到這個值的輸出內容,請使用print()?函數: ~~~ >>> fib(0) >>> print(fib(0)) None ~~~ 定義一個返回斐波那契數列數字列表的函數,而不是打印它,是很簡單的: ~~~ >>> def fib2(n): # return Fibonacci series up to n ... """Return a list containing the Fibonacci series up to n.""" ... result = [] ... a, b = 0, 1 ... while a n: ... result.append(a) # see below ... a, b = b, a+b ... return result ... >>> f100 = fib2(100) # call it >>> f100 # write the result [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89] ~~~ 和以前一樣,這個例子演示了一些新的 Python 功能: * return?語句從函數中返回一個值,不帶表達式的?return?返回?None。過程結束后也會返回None。 * 語句?result.append(b)?稱為鏈表對象?result?的一個?_方法_。方法是一個“屬于”某個對象的函數,它被命名為?obj.methodename,這里的?obj?是某個對象(可能是一個表達式),?methodename?是某個在該對象類型定義中的方法的命名。不同的類型定義不同的方法。不同類型可能有同樣名字的方法,但不會混淆。(當你定義自己的對象類型和方法時,可能會出現這種情況,_class_?的定義方法詳見?[_類_](http://www.pythondoc.com/pythontutorial3/classes.html#tut-classes)?)。示例中演示的?append()?方法由鏈表對象定義,它向鏈表中加入一個新元素。在示例中它等同于?result?=?result?+?[b],不過效率更高。
                  <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>

                              哎呀哎呀视频在线观看