圖解 Python 函數

2021-03-02 CSDN


函數是 「 一系列命令的集合」,我們可以通過調用函數來自動執行某一系列命令。雖然經常性地出現於文章中的print()是被錄入在Python的標準庫中的函數,但是,程式設計師亦可創建自己的函數。
如果想要定義函數,則需要以「def 函數名():」的格式為開頭編寫代碼。在這之下的一個模塊就是一個函數的範圍。Python的模塊就如前文中提到的,是根據縮進的等級來進行區分的。同時,對於函數也需要設定參數,函數可以根據參數的值來執 行各種指令。在Python中,可以通過使用列表或者雙精度浮點型變量來靈活指定參數。同時,也可以將函數運行的結果作為返回值返回。 函數可以多次調用。所以,如果設計出出色的函數,那麼在編寫複雜的程序時可以將行文簡潔地記述出來。

函數的定義

函數就是對程序給出的值按照既定的處理指令執行命令並將結果返回的黑箱。

其中函數所處 理的值被稱為參數、函數所返回的結果的值被稱為返回值。

將上文中的函數按Python的方式記述,則會變為如下格式。像這樣將函數的功能記述出來的方式被稱為定義函數。

參數在不必要的時候可以省略

如果要做一個什麼命令都不執行的函數,則用pass。

函數的調用

函數可以用如下的方式調用。在調用時使用的參數被稱為實參,從原則上說要引入和定義時 所指定的參數個數一樣的數量。

如果是不具備參數的函數,則是以下格式。

可以通過使用偽參數的名字來指定其對應的實參。

參數的全局調用

介紹利用雙精度浮點型變量或者字典的特點實現參數的全局調用。 

在偽參數前面添加*就可以使參數被賦值到雙精度浮點型變量中。

順便說一下,這個avg函數可以通過利用數學函數中的sum()更簡潔地書寫。

≫將關鍵參數作為字典接收 

在偽參數之前加上**就可以將關鍵參數作為字典來接收。

≫將字典展開並接收 

將參數作為字典傳遞,若想將傳遞出去的字典在函數側展開後接收參數的話,需要在調用側 的參數前添加 **。

函數的使用技巧

可以給參數規定一個默認值的函數,指定了默認值的函數在被調用時,參數可以省略。

默認參數可以從右側的參數開始設置多個,但是不可以將中間的某個參數作為默認參數。

在函數名的末尾不添加(),只寫名稱的格式所表示的是函數本身。我們將其稱之為函數對象, 可以像值一樣將其代入到變量中去。

我們可以定義函數中的函數。內部的函數被稱為本地函數,只可以在特定的函數中被使用的 函數都可以被認為是本地函數。

無名函數

如果是進行一些簡單的處理的函數,可以使用關鍵字「lambda」來記述,這種寫法可以被稱 作無名函數(lambda函數)。

函數可以將別的函數作為參數使用,被作為參數使用的函數被稱為回調函數。

回調函數的優點是可以在調用的時候決定其處理的內容。不過,這樣就需要定義一個只針對 這一目的的特殊函數。所以,這個時候使用無名函數的話,可以簡化這個記述過程。

變量範圍

在函數內部使用的變量為本地變量,本地變量只在函數內部有效。與之相對,在函數外部使 用的變量為全局變量,全局變量可以在任意函數中調用。

在函數被用於嵌套中時,只在其每一單次的函數調用內有效。

在函數中想要改變其外部的變量的時候需要注意幾個要素,像下圖那樣簡單地記述代入命令 是無法改變外部變量的。

如果想要更改函數外部的變量的話,需要使用global或者nonlocal命令來聲明變量並非本 地變量。

生成器(generator)

生成器是函數的一種。通常,函數只會返回固定的數值,但是如果使用了生成器,便會隨著 調用次數的不同,返回不同的數值。

如果想要使用生成器的話,需要以下幾個步驟:1.需要定義生成器函數;2.需要調用生成器函 數並且初始化;3.將生成器對象作為參數調用next()函數。下文是以0、1、2、3、4的數值 作為順序輸出的範例。

前一頁所提到的生成器的定義和初始化可以通過利用推導式將其記述成如下簡潔形式,這個 形式就是生成器推導式。

如果是記述成以下的格式,t將不再是生成器,而是[0,1,2,3,4]這樣的一個列表。

生成器除了可以被生成,也可以通過使用send()這個方法將值傳遞出去。

●顯示日曆 指定公曆年份和月份,並顯示相應的日曆


以上內容來自《圖解Python》


編輯推薦:

日本爆款熱銷書——《圖解Python》,聽說累計銷量已經70萬+!輕鬆有趣!,這本書全書以插畫的形式豐富的插圖、簡潔的說明,形式像繪本一樣有趣,內容像辭典一樣嚴謹,非常適合想要輕鬆、愉快學習Python編程知識的入門讀者學習使用。

以每2頁為單位進行知識點的講解與說明,內容深耕於基礎,可以幫助讀者高效快速地進行Python編程的學習。

不需要讀者有任何的編程基礎。從「編程是什麼」這樣的入門知識開始進行講解。

最後奉上書籍實物圖

掃碼一鍵購買

歡迎大家加入我們的碼書群,在這裡你可以和技術人一起聊人生,一起聊技術,一起暢談職場生活,因為群已滿100人,只能添加微信號加入了哦

相關焦點

  • 圖解 Python 中深淺拷貝(copy)
    一、深淺copy賦值運算l1 = [1, 2, 3, [22, 33]]l2 = l1l1.append(666)print(l1) print(l2)  圖解:將l1列表中第一個元素改為6l1 = [1, 2, 3, [22, 33]]l2 = l1.copy()l1[0] = 6print(l1) print(l2)  圖解:例1
  • Python每天一分鐘:如何把元組/字典作為參數傳遞給函數(附代碼)
    學習程式語言的讀者對於函數參數的傳遞應該都不陌生,目前業內已經有多種高級語言允許定義個數可變的參數,這樣的好處是可以在調用函數時傳入任意多個參數。python可變參數當然,Python 也不例外,那麼如何在定義函數時支持使用可變參數呢?
  • Python函數概述
    /usr/bin/python # 可寫函數說明def changeme( mylist ):   "修改傳入的列表"   mylist.append([1,2,3,4])   print "函數內取值: ", mylist # 調用changeme函數mylist = [10,20,30
  • Python函數的基本特徵詳解
    那這一節我們先學習函數的最基本用法吧首先我們先學習一下在python中如何去編寫一個函數。今天我們先拋出點兒理論:需要注意的是,函數在python中同在C語言中是有所不同的。當python運行到def語句時,它將會生成一個新的函數對象並將其賦值給這個函數名。和普通對象賦值一樣,函數名就成了某一個函數的引用。python中,萬物皆對象,因此函數也是一種對象,他可以賦值給其他的變量名,並且可以保存在列表之中。第三:函數是通過賦值語句(對象引用)傳遞的。
  • Python re模塊常見函數
    )函數。該函數與re.match()函數最大的不同是,re.match()函數從源字符串的開頭進行匹配,而re.search()函數會在全文中進行檢索匹配。<_sre.SRE_Match object; span=(4, 10), match='python'>pythonre.compile()在以上兩個函數中,即便源字符串中有多個結果符合模式,也只會匹配一個結果,那麼我們如何將符合模式的內容全部都匹配出來呢?
  • python的內置函數:sum求和函數
    前言看到sum,我們就知道這是一個求和函數,無論是java、javascript還是mysql中,求和是簡單的,但在python中,可以進行一些複雜的元組求和,具體是怎樣的呢?python中的sum求和函數1.sum的使用語法sum(iterable[, start]) iterable -- 可迭代對象,如:列表、元組、集合。
  • python 函數定義以及函數的調用
    函數的定義1. 函數的定義的格式def 函數名(參數):passreturn 表達式2.函數名命名規則: 字母、數字和下劃線組成,和變量命名規則一致return 後面可以返回任意表達式,但不能是賦值語句3. 函數調用:函數名(參數)4.
  • 圖解四個實用的pandas函數!
    作者:Baijayanta Roy來源:towardsdatascience編譯&內容補充:早起Python在用python進行機器學習或者日常的數據處理中,pandas是最常用的Python庫之一,熟練掌握pandas是每一個數據科學家的必備技能
  • Python sorted函數及用法
    sorted() 函數的基本語法格式如下:list = sorted(iterable, key=None, reverse=False)  其中,iterable 表示指定的序列,key 參數可以自定義排序規則;reverse 參數指定以升序(False,默認)還是降序(True)進行排序。sorted() 函數會返回一個排好序的列表。
  • 給妹子講python-S01E17函數的基本特徵
    容器遍歷和列表解析式給妹子講python-S01E05字符串的基本用法給妹子講python-S01E06字符串用法進階給妹子講python-S01E07字符編碼歷史觀:從ASCII到Unicode給妹子講python-S01E08理清python中的字符編碼方法給妹子講python-S01E09文件操作小意思
  • Python之函數學習(八)
    python語言,即可以進行函數式的編程的語言,又是可以進行面向對象編程的語言,所謂函數,簡單的理解就是將一些語句集合到一起,這樣可以在程序中多次的調用
  • Python代碼結構:函數
    「1.定義函數與調用函數定義python函數:依次輸入def、函數名、帶有函數參數的圓括號,最後緊跟一個冒號(:)函數命名規範:必須使用字母或者下劃線_開頭,僅能含有字母、數字和下劃線;定義函數:def do_nothing():... pass註:python函數中的pass表明函數沒有做任何事情。
  • python畫圖函數大全
    很多時候,我們需要用python畫圖,這樣就可以更加直觀的看到數據的走勢,而不是乾巴巴的數字。
  • python 內置函數
    列舉部分python內置函數描述abs() 函數返回數字的絕對值
  • Python中的map函數
    軟硬體環境anaconda3 with python 3.7簡介map是python中的一個內置函數
  • Python數據分析—apply函數
    而這些操作都可以藉助python中的apply函數進行處理。今天介紹數據分析的第四課,教大家如何在python中用apply函數對數據框進行一些複雜一點的操作。型的數據分段處理在建模過程中,要把不同分段的值轉化成對應的woe,需要用到apply函數進行處理
  • 詳解 Python 的 enumerate 函數
    Python部落(python.freelycode.com)組織翻譯,禁止轉載,歡迎轉發。
  • 詳細講解:python中的lambda與sorted函數
    本文內容主要介紹了python中的lambda與sorted函數的相關資料,幫助大家更好的理解和學習python,感興趣的朋友可以了解下!!!
  • 柳小白Python學習筆記 8 函數(function)之內置函數
    函數是組織好的,可重複使用的,用來實現單一或相關聯功能的代碼段。python提供了很多內置函數,當然我們也可以自定義函數。今天主要學習一些內置函數的用法。python裡內置了很多函數,這些函數可以直接調用。
  • 為什麼 Python 3 把 print 改為函數?
    [譯] PEP 3105--改 print 為函數PEP原文 : https://www.python.org/dev/peps/pep-3105PEP標題: Make print a functionPEP作者: Georg Brandl