<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 功能強大 支持多語言、二開方便! 廣告
                #### 默認參數 Python中的函數定義以及參數的使用:? 定義函數要使用def+函數名 ~~~ def enroll(name,gender,age = 6,city = 'Beijing'): print(name) print(gender) print(age) print(city) enroll('Billy','Six') ~~~ 這里使用了默認參數,降低了函數調用的難度,而一旦需要更復雜的調用時,又可以傳遞更多的參數來實現。無論是簡單調用還是復雜調用,函數只需要定義一個。 默認參數的坑:先定義一個函數,傳入一個list,添加一個END再返回: ~~~ def add_end(L=[]): L.append('END') return L add_end([1,2,3]) ~~~ 正常調用的時候沒有錯誤,但是如果使用默認參數多次調用的話: ~~~ print(add_end()) print(add_end()) print(add_end()) print(add_end()) ~~~ 結果會是:? [‘END’]? [‘END’, ‘END’]? [‘END’, ‘END’, ‘END’]? [‘END’, ‘END’, ‘END’, ‘END’]? Python函數在定義的時候,默認參數L的值就被計算出來了,即[],因為默認參數L也是一個變量,它指向對象[],每次調用該函數,如果改變了L的內容,則下次調用時,默認參數的內容就變了,不再是函數定義時的[]了。 所以,定義默認參數要牢記一點:默認參數必須指向不變對象!? 要修改上面的例子,可以使用None這個不變對象來實現: ~~~ def add_end(L=None): if L is None: L = [] L.append('END') return L ~~~ #### 可變參數 在Python函數中,還可以定義可變參數。顧名思義,可變參數就是傳入的參數個數是可變的,可以是1個、2個到任意個,還可以是0個。 我們以數學題為例子,給定一組數字a,b,c……,請計算a2 + b2 + c2 + ……。 要定義出這個函數,我們必須確定輸入的參數。由于參數個數不確定,我們首先想到可以把a,b,c……作為一個list或tuple傳進來,這樣,函數可以定義如下: ~~~ def calc(numbers): sum = 0 for n in numbers: sum = sum + n * n return sum ~~~ 但是調用的時候,需要先組裝出一個list或tuple: calc([1, 2, 3])? 14? calc((1, 3, 5, 7))? 84 如果利用可變參數,調用函數的方式可以簡化成這樣:? calc(1, 2, 3)? 14? calc(1, 3, 5, 7)? 84? 所以,我們把函數的參數改為可變參數: ~~~ def calc(*numbers): sum = 0 for n in numbers: sum = sum + n * n return sum ~~~ 定義可變參數和定義一個list或tuple參數相比,僅僅在參數前面加了一個*號。在函數內部,參數numbers接收到的是一個tuple,因此,函數代碼完全不變。但是,調用該函數時,可以傳入任意個參數,包括0個參數: calc(1, 2)? 5? calc()? 0? 如果已經有一個list或者tuple,要調用一個可變參數怎么辦?可以這樣做: nums = [1, 2, 3]? calc(nums[0], nums[1], nums[2])? 14? 這種寫法當然是可行的,問題是太繁瑣,所以Python允許你在list或tuple前面加一個*號,把list或tuple的元素變成可變參數傳進去: nums = [1, 2, 3]? calc(*nums)? 14? *nums表示把nums這個list的所有元素作為可變參數傳進去。這種寫法相當有用,而且很常見。 轉載自 :[廖雪峰的官方網站:函數的參數](http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431752945034eb82ac80a3e64b9bb4929b16eeed1eb9000)
                  <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>

                              哎呀哎呀视频在线观看