Python基礎——函數(0414)

1、習題講解:下面代碼會輸出什麼? 

① f(2)
② f(3,[3,2,1])
③ f(3)python

解答:函數

解題思路——range函數spa

python range() 函數可建立一個整數列表,通常用在 for 循環中。對象

格式爲:range(start, stop[, step])    標綠色的部分,能夠省略掉。排序

參數說明:generator

  • start: 計數從 start 開始。默認是從 0 開始。例如range(5)等價於range(0, 5);
  • stop: 計數到 stop 結束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]沒有5
  • step:步長,默認爲1。例如:range(0, 5) 等價於 range(0, 5, 1)
def f(x,l=[])    #定義函數;第一個參數是整型,第二個參數是list類型,l的默認值爲[]

f(2) 的輸出結果是 [0,1]it

f(3,[3,2,1]) 的輸出結果是 [3,2,1,0,1,4]io

f(3) 的輸出結果是 [0,1,4]匿名函數

 

2、函數的關鍵字基礎

      def 定義函數

      return  表明函數執行完返回的值

      pass    略過

      exit(1)    直接退出

                示例:print 與  result 的區別

                

3、函數的參數

      參數  *args           表明tuple類型(即:一個*表明是tuple類型)

      參數  **kwargs     表明dict 字典類型(即:兩個**表明是dict類型)

4、匿名函數

匿名函數就是沒有名字的函數,爲何設置匿名函數呢?

     lambda 函數是一種快速定義單行的最小函數,能夠用在任何須要函數的地方。

     例如: def fun(x,y)            等同於          r = lambda x,y:x*y

                return x*y

5、高階函數(用的比較多的是  sorted )

一、map(fun,list)  

     接收一個函數fun 和一個list,並經過函數 fun 依次做用在list的每一個元素上,獲得一個新的list並返回。

     map() 函數不改變原有的list,而是返回一個新的list。

     由於list能夠包含任意類型的元素,所以map函數能夠包含任意類型的list,只要fun函數能夠處理便可。

     Python2   例如:

     Python2   結果:

     Python3   例如:

                              

     Python3  結果:

注意:Python2 與 Python3 在運行map函數時有區別  。                                                                   

         Python2 不須要 list() 轉換。Python3 須要list() 轉化。                                                            

         Python3中不進行list轉換運行結果爲:                                                                                     

                                                             

二、reduce(fun,list)

     接收一個函數fun 和一個 list。可是函數 fun 必須是兩個參數,reduce() 對list的每一個元素反覆調用函數fun,並返回最終結果。

     注意:reduce 函數 存在於Python2的全局變量中。   在Python3中,它被放置於fucntools 模塊中。 

三、sorted() 函數對全部可迭代的對象進行排序操做,返回從新排序的列表

     sort 是應用在 list 上的方法,sorted 能夠對全部可迭代的對象進行排序操做。

     list 的 sort 方法返回的是對已經存在的列表進行操做;

     內建函數 sorted 方法返回的是一個新的 list,而不是在原來的基礎上進行的操做。

     3.1  sorted() 函數語法   

sorted(iterable, key=None, reverse=False)

    3.2  參數說明

          iterable -- 可迭代對象。

          key -- 用來進行比較的元素,只有一個參數;具體的函數的參數就是取自於可迭代對象中,指定可迭代對象中的一個元素來進行排序。 

          reverse -- 排序規則,reverse = True 降序 , reverse = False 升序(默認)。

     3.3 示例

          ①:默認排序爲升序  

                結果   

          ②:降序  

                結果   

           ③:字典排序

                  

                 結果:

                  

6、列表生成式

      格式:[exp for val n collection if condition]

      例如:

      結果:

7、生成器:使用了 yield 的函數被稱爲生成器(generator)

      生成器是一個返回迭代器的函數,只能用於迭代操做,更簡單點理解生成器就是一個迭代器。

     在調用生成器運行的過程當中,每次遇到 yield 時函數會暫停並保存當前全部的運行信息,返回 yield 的值, 並在下一次執行 迭代器 next() 方法時從當前位置繼續運行。

     應用場景:只須要得到 list 中的前幾個元素,節省存儲空間。

                    Generator 是一種一邊循環一邊計算的機制。

 

      示例:

      結果:

相關文章
相關標籤/搜索