亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python3基礎之函數(shù)用法

 更新時間:2014年08月13日 18:04:44   投稿:shichen2014  
這篇文章主要介紹了Python3的函數(shù)用法,非常重要,需要的朋友可以參考下

一般來說,函數(shù)(function)是組織好的、可重復使用的、具有一定功能的代碼段。函數(shù)能提高應用的模塊性和代碼的重復利用率,在Python中已經(jīng)提供了很多的內(nèi)建函數(shù),比如print(),同時Python還允許用戶自定義函數(shù)。

本文就來實例總結一下Python3的函數(shù)用法,具體內(nèi)容如下:

一、定義

定義函數(shù)使用關鍵字def,后接函數(shù)名和放在圓括號( )中的可選參數(shù)列表,函數(shù)內(nèi)容以冒號起始并且縮進。一般格式如下:

def 函數(shù)名(參數(shù)列表): 
  """文檔字符串""" 
  函數(shù)體 
  return [expression] 

注意:參數(shù)列表可選,文檔字符串可選,return語句可選。

示例:

def fib(n): 
  """Print a Fibonacci series""" 
  a, b = 0, 1 
  while b < n: 
    print(b, end=' ') 
    a, b = b, a+b 
  print() 
 
fib(2000) # call 
f = fib  # assignment 
f(2000) 

函數(shù)名的值是一種用戶自定義的函數(shù)類型。函數(shù)名的值可以被賦予另一個名字,使其也能作為函數(shù)使用。

二、函數(shù)變量作用域

在函數(shù)內(nèi)部定義的變量擁有一個局部作用域,在函數(shù)外定義的擁有全局作用域。注意:在函數(shù)內(nèi)部可以引用全局變量,但無法對其賦值(除非用global進行聲明)。

a = 5     # 全局變量a 
 
def func1(): 
  print('func1() print a =', a) 
 
def func2(): 
  a = 21  # 局部變量a 
  print('func2() print a =', a)  
 
def func3(): 
  global a 
  a = 10  # 修改全局變量a 
  print('func3() print a =', a) 
 
func1() 
func2() 
func3() 
print('the global a =', a) 

三、函數(shù)調(diào)用

1、普通調(diào)用

與其他語言中函數(shù)調(diào)用一樣,Python中在調(diào)用函數(shù)時,需要給定和形參相同個數(shù)的實參并按順序一一對應。

def fun(name, age, gender): 
  print('Name:',name,'Age:',age,'Gender:',gender,end=' ') 
  print() 
 
fun('Jack', 20, 'man') # call 


2、使用關鍵字參數(shù)調(diào)用函數(shù)

函數(shù)也可以通過keyword=value 形式的關鍵字參數(shù)來調(diào)用,因為我們明確指出了對應關系,所以參數(shù)的順序也就無關緊要了。

def fun(name, age, gender): 
  print('Name:',name,'Age:',age,'Gender:',gender,end=' ') 
  print() 
 
fun(gender='man', name='Jack', age=20) # using keyword arguments 

3、調(diào)用具有默認實參的函數(shù)

Python中的函數(shù)也可以給一個或多個參數(shù)指定默認值,這樣在調(diào)用時可以選擇性地省略該參數(shù):

def fun(a, b, c=5): 
  print(a+b+c) 
 
fun(1,2) 
fun(1,2,3) 

注意:通常情況下默認值只被計算一次,但如果默認值是一個可變對象時會有所不同, 如列表, 字典, 或大多類的對象時。例如,下面的函數(shù)在隨后的調(diào)用中會累積參數(shù)值

def fun(a, L=[]): 
  L.append(a) 
  print(L) 
 
fun(1) # 輸出[1] 
fun(2) # 輸出[1, 2] 
fun(3) # 輸出[1, 2, 3] 

4、調(diào)用可變參數(shù)函數(shù)

通過在形參前加一個星號(*)或兩個星號(**)來指定函數(shù)可以接收任意數(shù)量的實參。

def fun(*args): 
  print(type(args)) 
  print(args) 
 
fun(1,2,3,4,5,6) 
 
# 輸出: 
# <class 'tuple'> 
# (1, 2, 3, 4, 5, 6) 

def fun(**args): 
  print(type(args)) 
  print(args) 
 
fun(a=1,b=2,c=3,d=4,e=5) 
 
# 輸出: 
# <class 'dict'> 
# {'d': 4, 'e': 5, 'b': 2, 'c': 3, 'a': 1} 

從兩個示例的輸出可以看出:當參數(shù)形如*args時,傳遞給函數(shù)的任意個實參會按位置被包裝進一個元組(tuple);當參數(shù)形如**args時,傳遞給函數(shù)的任意個key=value實參會被包裝進一個字典(dict)。

5、通過解包參數(shù)調(diào)用函數(shù)

上一點說到傳遞任意數(shù)量的實參時會將它們打包進一個元組或字典,當然有打包也就有解包(unpacking)。通過 單星號和雙星號對List、Tuple和Dictionary進行解包:

def fun(a=1, b=2, c=3): 
  print(a+b+c) 
 
fun()  # 正常調(diào)用 
list1 = [11, 22, 33] 
dict1 = {'a':40, 'b':50, 'c':60} 
fun(*list1)  # 解包列表 
fun(**dict1) # 解包字典 
 
# 輸出: 
# 6 
# 66 
# 150 

注:*用于解包Sequence,**用于解包字典。解包字典會得到一系列的key=value,故本質上就是使用關鍵字參數(shù)調(diào)用函數(shù)。

四、lambda表達式

lambda關鍵詞能創(chuàng)建小型匿名函數(shù)。lambda函數(shù)能接收任何數(shù)量的參數(shù)但只能返回一個表達式的值,它的一般形式如下:

lambda [arg1 [,arg2,.....argn]] : expression 

lambda表達式可以在任何需要函數(shù)對象的地方使用,它們在語法上被限制為單一的表達式:

f = lambda x, y: x+y 
print(f(10, 20)) 

def make_fun(n): 
  return lambda x: x+n 
 
f = make_fun(15) 
print(f(5)) 

五、文檔字符串

函式體的第一個語句可以是三引號括起來的字符串, 這個字符串就是函數(shù)的文檔字符串,或稱為docstring 。我們可以使用print(function.__doc__)輸出文檔:

def fun(): 
  """Some information of this function. 
  This is documentation string.""" 
  return 
 
print(fun.__doc__) 

文檔字符串主要用于描述一些關于函數(shù)的信息,讓用戶交互地瀏覽和輸出。建議養(yǎng)成在代碼中添加文檔字符串的好習慣。

相關文章

  • python網(wǎng)絡爬蟲學習筆記(1)

    python網(wǎng)絡爬蟲學習筆記(1)

    這篇文章主要為大家詳細介紹了python網(wǎng)絡爬蟲學習筆記的第一篇,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Pytorch Tensor 輸出為txt和mat格式方式

    Pytorch Tensor 輸出為txt和mat格式方式

    今天小編就為大家分享一篇Pytorch Tensor 輸出為txt和mat格式方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 詳解python解壓壓縮包的五種方法

    詳解python解壓壓縮包的五種方法

    這里討論下使用Python解壓五種壓縮文件,.gz .tar .tgz .zip .rar的相關知識,文中給大家介紹了python實現(xiàn)rar文件解壓的方法,感興趣的朋友跟隨小編一起看看吧
    2019-07-07
  • python3 中的幾種除法介紹,小數(shù)的不同顯示

    python3 中的幾種除法介紹,小數(shù)的不同顯示

    這篇文章主要介紹了python3 中的幾種除法介紹,小數(shù)的不同顯示,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • python基于搜索引擎實現(xiàn)文章查重功能

    python基于搜索引擎實現(xiàn)文章查重功能

    這篇文章主要介紹了python基于搜索引擎實現(xiàn)文章查重功能,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-05-05
  • python?使用?with?open()?as?讀寫文件的操作方法

    python?使用?with?open()?as?讀寫文件的操作方法

    這篇文章主要介紹了python?使用?with?open()as?讀寫文件的操作代碼,寫文件和讀文件是一樣的,唯一區(qū)別是調(diào)用open()函數(shù)時,傳入標識符'w'或者'wb'表示寫文本文件或寫二進制文件,需要的朋友可以參考下
    2022-11-11
  • 詳解Python的文件處理

    詳解Python的文件處理

    這篇文章主要為大家介紹了Python的文件處理,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • Pytorch基礎之torch.randperm的使用

    Pytorch基礎之torch.randperm的使用

    這篇文章主要介紹了Pytorch基礎之torch.randperm的使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Python操作json數(shù)據(jù)的一個簡單例子

    Python操作json數(shù)據(jù)的一個簡單例子

    這篇文章主要介紹了Python操作json數(shù)據(jù)的一個簡單例子,需要的朋友可以參考下
    2014-04-04
  • tensorflow實現(xiàn)softma識別MNIST

    tensorflow實現(xiàn)softma識別MNIST

    這篇文章主要為大家詳細介紹了tensorflow實現(xiàn)softma識別MNIST,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03

最新評論