python中函數的基礎用法

2021-02-19 生信修煉手冊

歡迎關注」生信修煉手冊」!


python中的內置函數提供了基礎功能,在實際開發中,我們需要將這些基礎功能進行搭配組合,來有效解決我們的問題。如何將我們自己構建的代碼作為一個可復用的工具,最基本的方法就是寫成函數。通過函數可以減少代碼冗餘,提高編碼效率。在python中函數的基本定義如下

>>> def hello():...     print("hello world!")...>>>>>> a =  hello()hello world!>>> type(a)<class 'NoneType'>

用def關鍵詞來聲明一個函數,函數有幾個構成元素,函數名稱,比如這裡的hello;參數列表,圓括號裡的內容,上述代碼較為簡單,不需要傳入參數,所以圓括號裡為空; 返回值,可以看到,沒有顯示聲明的情況下,返回值為None。需要注意,在python中,函數在調用前必須先聲明,這一點和perl不同。

通過函數名稱加參數的形式,可以調用函數。在傳遞參數時,有以下兩種方式

示意如下

>>> def print_info(name, age):...     return(f'Name:{name} Age:{age}')...
>>> print_info('Andy', 24)'Name:Andy Age:24'>>> print_info(24, 'Andy')'Name:24 Age:Andy'

位置傳參的好處是我們不用寫參數名稱了,比較省事,但是局限就在於,必須按照參數定義的順序依次傳入,不可亂序。

2. 按照參數名

示意如下

>>> print_info(age = 24,  name = 'Andy')'Name:Andy Age:24'
>>>print_info(name = 'Andy',age = 24)'Name:Andy Age:24'

通過變量名傳參時,程序會按照變量名賦值給指定參數,不用擔心順序的問題。以上只是最基本的示例,關於函數的參數,還有以下幾種進階用法

1. 默認參數

在函數定義時,可以給參數賦值,這個值就是參數的默認值,寫法如下

>>> def print_info(name, age = 24):...     return(f'Name:{name} Age:{age}')

需要注意的是,擁有默認值的參數必須位於沒有默認值的參數之後,如果位於之前,會報錯

>>> def print_info(name = 'Andy', age):...     return(f'Name:{name} Age:{age}')...  File "<stdin>", line 1SyntaxError: non-default argument follows default argument

默認參數的好處是顯而易見的,在調用時,如果你需要傳入的值和默認值相同,就可以省略不用寫,如果不同,再傳入指定值也可以,示意如下

>>> print_info('Andy')'Name:Andy Age:24'
>>> print_info('Andy', 25)'Name:Andy Age:25'

2. 可變參數

print作為學習python接觸的第一個函數,可以傳入任意個參數,示意如下

>>> print(1,2)1 2
>>> print(1,2,3)1 2 3
>>> print(1,2,3,4)1 2 3 4

實現這個方式的技巧就是可變參數,可變參數通過一個`*`星號加參數名的方式進行定義,寫法如下


>>> def print_info(name, age, *friends):...     print(f'Name:{name} Age:{age}')...     for people in friends:...         print(people)...

在調用時,可以傳入任意多個值

>>> print_info('Andy', 24, 'Tom', 'Jack')Name:Andy Age:24TomJack
>>> print_info('Andy', 24, 'Tom', 'Jack', 'Rose')Name:Andy Age:24TomJackRose

注意,可變參數的名稱只有函數定義時有用,在函數調用時,不可以加參數名稱。

3. 關鍵字參數

可變參數的值為列表,而關鍵字參數的值為字典,通過兩個`*`星號加參數名的形式進行定義,寫法如下

>>> def print_info(name, age, **friends):...     print(f'Name:{name} Age:{age}')...     for k,v in friends.items():...         print(f'{k}:{v}')
>>> print_info('Andy', 24, mother = 'Rose', father ='Jack')Name:Andy Age:24mother:Rosefather:Jack
>>> print_info('Andy', 24, mother = 'Rose', father ='Jack', uncle = "Tom")Name:Andy Age:24mother:Rosefather:Jackuncle:Tom

4. 命名關鍵字參數

關鍵字參數功能強大,但是太過於自由,可以傳入任意的數據,而命名關鍵字參數是對關鍵字參數的限定,在函數定義時,限定好允許傳入的參數名, 用`*`星號分隔,在星號的後面定義命名關鍵字參數,直接寫允許接受的參數名稱即可,寫法如下

>>> def print_info(name, age, *, mother, father):...     print(f'Name:{name} Age:{age}')...     print(f'Mother:{mother} Father:{father}')...>>> print_info('Andy', 24, mother = 'Rose', father = 'Jack')Name:Andy Age:24Mother:Rose Father:Jack

在函數中已經有一個可變參數的情況下,命名關鍵字參數的`*`星號可以省略

def print_info(name, age, *friends, mother, father)

上述各種形式的參數可以進行組合,但是組合時需要注意順序,從頭開始,依次為位置參數,默認參數,可變參數,命名關鍵字參數, 關鍵字參數。

原創不易,歡迎收藏,點讚,轉發!生信知識浩瀚如海,在生信學習的道路上,讓我們一起並肩作戰!本公眾號深耕耘生信領域多年,具有豐富的數據分析經驗,致力於提供真正有價值的數據分析服務,擅長個性化分析,歡迎有需要的老師和同學前來諮詢。

轉發本文至朋友圈,後臺私信截圖即可加入生信交流群,和小夥伴一起學習交流。

掃描下方二維碼,關注我們,解鎖更多精彩內容!

相關焦點

  • Python sorted函數及用法
    下面程序演示了 sorted() 函數的基本用法:a = [5,3,4,2,1]print(sorted(a))a = (5,4,3,1,2)print(sorted(a))a = {4:1,\ 5:2,\ 3:3,\ 2:6,\ 1:8}print(sorted(a.items
  • python中int函數的其他用法
    泰山版初中信息技術第1冊python編程中出現了int函數,教材中int函數的作用是把輸入的字符型數字轉變成整數,其實int函數還有其他的用法
  • python中str內置函數用法總結
    大家在使用python的過程中,應該在敲代碼的時候經常遇到str內置函數,為了防止大家搞混,本文整理歸納了str內置函數。
  • 掌握這兩個方法:助你學會Python 中所有函數(方法)的功能與用法
    python語言已經接觸過python的讀者應該都對python海量的內置函數有所了解,這些函數把我們原本在C/C++等語言中需要手動實現的功能(如排序/字符串組合/查找)都用最優化的代碼封裝成了內置函數,可供開發者直接調用
  • python語法基礎
    函數函數通過def關鍵詞來定義,函數具有函數名稱,參數列表,返回值等特徵,最基本的用法如下# 定義def add(a, b): return(a, b)# 調用total = add(2, 3)關於函數,在python中其實有很多的用法細節,後續在深入討論。10.
  • Python sleep()函數用法:線程睡眠
    位於 time 模塊中的 sleep(secs) 函數,可以實現令當前執行的線程暫停 secs 秒後再繼續執行。
  • python入門基礎之lambda匿名函數詳解
    python入門基礎之lambda匿名函數詳解剛開始學習python的時候很多人可能對於lambda函數不了解,感覺和def很混亂,下面我來介紹一下lambda函數我從一下幾個方面來介紹lambda:1、lambda簡介2、lambda與def不同之處3、lambda的使用方法
  • Python中format函數用法
    format優點format是python2.6新增的一個格式化字符串的方法,相對於老版的%格式方法,它有很多優點。1.不需要理會數據類型的問題,在%方法中%s只能替代字符串類型2.單個參數可以多次輸出,參數順序可以不相同3.填充方式十分靈活,對齊方式十分強大4.官方推薦用的方式,%方式將會在後面的版本被淘汰format應用一:填充(1)通過位置來填充字符串print("hello {0} i am {1}".format
  • Python zip函數及用法
    所謂「壓縮」,其實就是將這些序列中對應位置的元素重新組合,生成一個個新的元組。和 Python 3.x 版本不同,Python 2.x 版本中的 zip() 函數會直接返回列表,而不是返回 zip 對象。但是,返回的列表或者 zip 對象,其包含的元素(都是元組)是相同的。zip() 函數的語法格式為:zip(iterable, ...)
  • Python入門基礎之map()、reduce()函數使用
    本文環境都是基於python3.X的,畢竟要學會擁抱未來,擁抱新的知識。Python3 現在已經發展的差不多了。1、 map()函數map()是 python 內置的高階函數,它接收一個函數 f 和一個 list,並通過把函數 f 依次作用在 list 的每個元素上,得到一個新的object並返回。
  • Python每天一分鐘:lambda表達式 (匿名函數)及用法詳解
    lambda表達式介紹python中有一種靈活,便捷的且具有函數功能的表達式:lambda表達式!lambda 表達式可以用來替換局部函數(感興趣的讀者可以自行查閱「局部函數」),下面為大家演示lambda表達式的具體用法。lambda表達式定義首先以一個代碼例子讓大家對lambda表達式有一個直觀的認識:
  • 【Python基礎】Python 函數使用總結
    ,目錄結構:Python 函數專題基礎部分1 函數組成2 引用傳參3 默認參數與關鍵字參數4 可變參數5 內置函數進階部分6 偏函數7 遞歸函數8 匿名函數9 高階函數10 嵌套函數總結6 偏函數偏函數固定函數的某些參數後,重新生成一個新的函數。通常用法,當函數的參數個數太多,需要簡化時,使用partial創建一個新的函數。
  • Python for循環及用法詳解
    圖 1 for 循環語句的執行流程圖下面的程序演示了 for 循環的具體用法:add = "http://c.biancheng.net/python/"#for循環,遍歷 add 字符串for ch in add: print(ch,end="")運行結果為:
  • 詳解Python中的import的用法
    import語句用來導入其他python文件(稱為模塊module),使用該模塊裡定義的類、方法或者變量,從而達到代碼復用的目的。為了方便說明,我們用實例來說明import的用法,讀者朋友可以跟著嘗試(嘗試時建議使用python3,python2和python3在import的表現有差異,之後會提到)。
  • python之lambda函數使用
    lambda還可以寫成以下幾種方式:lambda X:None lambda *args: sum(args) lambda **kwargs: 1      以下實例可以幫我們更好的理解這一用法:import timetime.sleep
  • python核心部分創建對象中各種名詞的定義及用法
    學了之前的基礎之後你會發現你基本上可以寫出很多小程序來了,包括用序列,字典,數字,字符串來創建函數,基本上可以完成你遇到的問題。但是python被稱為面向對象的語言,所以創建對象才是python的核心部分,我們今天就走進python的核心部分-創建對象。接下來幾天的章節非常重要非常核心,非常重要非常核心,非常重要非常核心,重要的事情說是三次。首先說一下幾個名詞的定義,方便你在以後的學習中理解。
  • Python 3.x中reduce()函數完整用法
    在Python 3.x中,reduce()不再是內置函數,而是移到了標準庫functools中,需要先導入再使用,其官方解釋如圖所示:
  • Python函數的基本特徵詳解
    那這一節我們先學習函數的最基本用法吧首先我們先學習一下在python中如何去編寫一個函數。今天我們先拋出點兒理論:需要注意的是,函數在python中同在C語言中是有所不同的。第一:def引導一段可執行的代碼:def本身是一個可執行的語句,函數此時並不存在,直到python運行了def後,函數才存在,def後面包含的就是函數語句。在典型的操作中,def語句在模塊文件中編寫,並自然而然的在模塊文件第一次被導入的時候生成定義的函數。第二:函數也是對象。
  • 好程式設計師Python培訓分享Django中間件基礎用法詳解
    好程式設計師Python培訓分享Django中間件基礎用法詳解,首先django的中間件可以在視圖函數執行前執行,比如登陸驗證、日誌記錄等,下面簡單說明一下中間件的基礎用法吧。
  • 詳解 Python 的 enumerate 函數
    Python 的 enumerate() 函數就像是一個神秘的黑箱,你無法簡單地用一句話來概括這個函數的作用與用法。enumerate() 函數屬於非常有用的高級用法,而對於這一點,很多初學者甚至中級學者都沒有意識到。這個函數的基本應用就是用來遍歷一個集合對象,它在遍歷的同時還可以得到當前元素的索引位置。我們看一個例子: