Python函數定義與使用

Python函數定義與調用

上一篇文章: Python經常使用運算符與經常使用內置函數
下一篇文章: Python類的定義與操做

一、函數定義與調用

語法:python

def 函數名():

      函數代碼

實例:segmentfault

def printHello():
    print("Hello world")

#調用函數
printHello()

結果:函數

Hello world

二、函數的幫助文檔

help(函數名稱):返回對應函數的幫助文檔。

在函數定義中的首行,用「」添加的就是幫助文檔。code

實例:排序

def printHello():
    "幫助文檔:打印hello world"
    print("Hello world")

help(printHello)

結果:文檔

Help on function printHello in module __main__:

printHello()
幫助文檔:打印hello world

三、參數與返回值

python採用應用傳參,當參數類型爲不可變類型時,對參數沒有影響,當參數類型爲可變時,可能會修改參數

實例:get

#定義b的默認值爲3
def add(a,b=3):
    return a+b

#調用函數
print(add(1,2))
print(add(1))

結果:io

3
4

四、函數嵌套調用

實例:function

def A():
    print("A函數調用")
    def B():
        print("B函數調用了")
    print("A函數調用B函數前")
    B()
    print("函數A調用函數B後")

#調用函數
A()

結果:import

A函數調用
A函數調用B函數前
B函數調用了
函數A調用函數B後

五、不定長參數

加了*的參數變量,還用元組來存儲多個參數。

加了**的參數,會用字典來存儲多個參數

實例:

#定義b的默認值爲3
#c爲元組
#d爲字典
def add(a,b=3,*c,**d):
    print("a=",a)
    print("b=",b)
    print("c=",c)
    print("d=",d)

#調用函數
add(1,2)
print("*"*30)
add(1)
print("*"*30)
add(1,2,3,4,5)
print("*"*30)
add(1,2,3,4,5,name="mark",age=18)

結果:

a= 1
b= 2
c= ()
d= {}
******************************
a= 1
b= 3
c= ()
d= {}
******************************
a= 1
b= 2
c= (3, 4, 5)
d= {}
******************************
a= 1
b= 2
c= (3, 4, 5)
d= {'name': 'mark', 'age': 18}

六、匿名函數

用lambda關鍵詞能夠建立小型函數,省略了用def關鍵字來聲明函數的標準步驟。
  • 匿名函數聲明與調用

實例:

add=lambda a,b:a+b

print(add(2,3))

結果:

5
  • 匿名函數做爲參數傳遞

實例:

def fun(a,b,lam):
    print("a=",a)
    print("b=",b)
    print("a+b=",lam(a,b))

add=lambda a,b:a+b
fun(4,5,add)

結果:

a= 4
b= 5
a+b= 9
  • 匿名函數用來協助排序

實例:

#簡單列表排序很簡單
ages=[18,19,17]
print(ages)
ages.sort()
print(ages)

#當列表內包含的是字典,怎麼根據字典內的age排序呢?
infors=[
    {"name":"mark","age":18},
    {"name":"sq","age":19},
    {"name":"xman","age":17}
]
print(infors)
'''
下面匿名函數等效於:
     def  fun(x):
         return x["age"]
'''
infors.sort(key=lambda x:x["age"])
print(infors)

結果:

[18, 19, 17]
[17, 18, 19]
[{'name': 'mark', 'age': 18}, {'name': 'sq', 'age': 19}, {'name': 'xman', 'age': 17}]
[{'name': 'xman', 'age': 17}, {'name': 'mark', 'age': 18}, {'name': 'sq', 'age': 19}]

七、函數重用

導入整個模塊:import 模塊名

導入特定的函數:from 模塊名 import 特定函數

使用as給函數重命名:from 模塊名 import 特定函數 as 新名稱

使用ad給模塊衝命名 import 模塊名 as 新名詞

導入模塊的全部函數:from 模塊名 import *

相關文章
相關標籤/搜索