成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

python學習筆記 函數(shù)

Scorpion / 2354人閱讀

摘要:一等函數(shù)在中,函數(shù)是一等對象。匿名函數(shù)關(guān)鍵字在表達式內(nèi)創(chuàng)建匿名函數(shù)然而,簡單的句法限制了函數(shù)的定義體只能使用純表達式,即函數(shù)的定義體中不能賦值,不能使用等語句。匿名函數(shù)適合用于作為函數(shù)的參數(shù)

一等函數(shù)

在python中,函數(shù)是一等對象。編程語言理論家把“一等對象”定義為滿足以下條件的程序?qū)嶓w:

在運行時創(chuàng)建

能賦值給變量或數(shù)據(jù)結(jié)構(gòu)中的元素

能作為參數(shù)傳給函數(shù)

能作為函數(shù)的返回結(jié)果

在python中,整數(shù)、字符串和字典都是一等對象,沒有什么特別之處。

標題“一等函數(shù)”是“把函數(shù)視作一等對象”的簡稱,雖然并不完美,但只是一種稱謂。

>>> def factorial(n):
...     """returns n"""
...     return 1 if n < 2 else n * factorial(n - 1)
...
>>> factorial(42)
1405006117752879898543142606244511569936384000000000
>>> type(factorial)

>>> fact = factorial
>>> fact

>>> fact(5)
120
>>> map(factorial, range(11))

>>> list(map(factorial, range(11)))
[1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800]
>>>

程序中定義了一個階乘函數(shù) factorial, 其本身是一個遞歸函數(shù),可以理解為函數(shù)可以作為函數(shù)的返回值(的一部分),可以做正常運算,也可以復制給另一個變量fact,也可以作為高等函數(shù)map 的一個參數(shù)。

高等函數(shù)

接受函數(shù)作為參數(shù),或者把函數(shù)作為結(jié)果返回的函數(shù)是高等函數(shù)

python中常用的高等函數(shù)包括map, filter, sorted, reduce等等

>>> fruits = ["strawberry", "apple", "banana", "peach", "fig", "cherry"]
>>> sorted(fruits)
["apple", "banana", "cherry", "fig", "peach", "strawberry"]
>>> def reverse(word):
...     return word[::-1]
...
>>> reverse("testing")
"gnitset"
>>> sorted(fruits, key=reverse)
["banana", "apple", "fig", "peach", "strawberry", "cherry"]

sorted 是一個高級函數(shù),其可以接受函數(shù) reverse 作為參數(shù)

>>> from functools import reduce
>>> from operator import add
>>> reduce(add, range(100))
4950
>>> sum(range(100))
4950

從python3.0 起,reduce不再是內(nèi)置函數(shù),其作用被減弱,可輕易被替代。上例是計算0~99 的和。sum 和 reduce 的通用思想是把某個操作連續(xù)運用到序列的元素上,累積計算,把一系列值規(guī)約成一個值。

匿名函數(shù)

lambda關(guān)鍵字在python表達式內(nèi)創(chuàng)建匿名函數(shù)

然而,python簡單的句法限制了 lambda 函數(shù)的定義體只能使用純表達式,即lambda 函數(shù)的定義體中不能賦值,不能使用while、try等python語句。

匿名函數(shù)適合用于作為函數(shù)的參數(shù)

>>> fruits
["strawberry", "apple", "banana", "peach", "fig", "cherry"]
>>> sorted(fruits, key=lambda word: word[::-1])
["banana", "apple", "fig", "peach", "strawberry", "cherry"]






文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/42239.html

相關(guān)文章

  • python學習筆記-調(diào)用函數(shù)

    摘要:調(diào)用函數(shù)時常見的錯誤函數(shù)參數(shù)個數(shù)不正確會給我們返回,并給出確切的錯誤信息。例如將變量名指向這個取整函數(shù)調(diào)用函數(shù),即調(diào)用這個取整數(shù)的函數(shù) python有許多內(nèi)置的函數(shù)(Build-in Functions)例如abs()——求絕對值的函數(shù)供我們使用。那么我們?nèi)绾握{(diào)用這些函數(shù)呢?直接書寫函數(shù)名帶括號并在括號內(nèi)傳入?yún)?shù)即可。例如abs(-10.2)即可。python內(nèi)置的函數(shù)可以到https...

    AZmake 評論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.30 - 學習 Python 來做一些神奇好玩的事情吧

    摘要:學習筆記七數(shù)學形態(tài)學關(guān)注的是圖像中的形狀,它提供了一些方法用于檢測形狀和改變形狀。學習筆記十一尺度不變特征變換,簡稱是圖像局部特征提取的現(xiàn)代方法基于區(qū)域圖像塊的分析。本文的目的是簡明扼要地說明的編碼機制,并給出一些建議。 showImg(https://segmentfault.com/img/bVRJbz?w=900&h=385); 前言 開始之前,我們先來看這樣一個提問: pyth...

    lifesimple 評論0 收藏0
  • python學習筆記-定義函數(shù)

    摘要:空函數(shù)如果想要定義一個什么都不做的函數(shù),那么可以用語句。為函數(shù)添加參數(shù)檢查我們對作一些改寫。此時調(diào)用函數(shù)時傳入錯誤的參數(shù)則會拋出。函數(shù)返回多個值支持返回多個值。 python中定義函數(shù)的關(guān)鍵詞是def,例如定義一個叫my_function的函數(shù)我們可以這么定義, 其中括號內(nèi)的x,y為傳入的參數(shù)。 def my_function(): # function body 返回值 函數(shù)...

    CoderStudy 評論0 收藏0
  • Python入門學習筆記匯總

    摘要:導語本文章匯總了本人在學習基礎之緒論篇數(shù)據(jù)結(jié)構(gòu)篇函數(shù)篇面向?qū)ο笃刂屏鞒唐驮幊唐獙W習筆記的鏈接,打算入門的朋友們可以按需查看并交流。 導語:本文章匯總了本人在學習Python基礎之緒論篇、數(shù)據(jù)結(jié)構(gòu)篇、函數(shù)篇、面向?qū)ο笃?、控制流程篇和元編程篇學習筆記的鏈接,打算入門Python的朋友們可以按需查看并交流。 第一部分:緒論篇 1、Python數(shù)據(jù)模型 第二部分:數(shù)據(jù)結(jié)構(gòu)篇 2、序列構(gòu)成...

    U2FsdGVkX1x 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<