python3自定義函式

2021-09-05 11:22:53 字數 1687 閱讀 6075

一、什麼是函式

函式是組織好的,可重複使用的,用來實現單一,或相關聯功能的**段。

函式能提高應用的模組性,和**的重複利用率。你已經知道python提供了許多內建函式,比如print()。但你也可以自己建立函式,這被叫做使用者自定義函式。

語法

def 函式名(引數列表):

函式體

def func():

print('王小川好帥') #沒有返回值情況1,沒寫return;情況2,只寫return沒寫要返回的東西,情況3,return none。這裡是情況1

func()

有乙個返回值

a = 1

b = 2

def func():

sum = a + b

return sum

print(func())

有多個返回值

a = 1

b = 2

def func():

sum = a + b

return a,b

tuple1 = func() #可以用乙個變數結收多個返回值

print(tuple1) #(1, 2)

a1,b1 =func() #可以用與返回值數量相等的變數接收返回值

print(a1,b1) #1 2

三、關於函式引數

必須引數(位置引數)

def func(a, b):  #必需引數須以正確的順序傳入函式。

print('%s是%s' %(a, b))

func('小明','好人') #呼叫時的數量必須和宣告時的一樣。

關鍵字引數

def func(a, b):  #關鍵字引數和函式呼叫關係緊密,函式呼叫使用關鍵字引數來確定傳入的引數值。

print('%s是%s' %(a, b))

func(b ='好人',a = '小明') #使用關鍵字引數允許函式呼叫時引數的順序與宣告時不一致,因為 python 直譯器能夠用引數名匹配引數值。

預設引數

def func(a, b='村民'):

'''b是乙個預設引數。呼叫函式時,如果沒有傳遞引數,則會使用預設引數。

位置先必須引數再預設引數

'''print('%s是%s' %(a, b))

func('小明')

func('小北','狼人') #位置傳參

func(b='女巫', a='小飛') #關鍵字傳參

不定長引數(動態引數)

你可能需要乙個函式能處理比當初宣告時更多的引數。這些引數叫做不定長引數

加了星號 * 的引數會以元組(tuple)的形式匯入,存放所有未命名的變數引數。

def func(*args):

print(args)

func(1,2,3,4,5) #如果在函式呼叫時沒有指定引數,它就是乙個空元組。

#(1, 2, 3, 4, 5)

加了兩個星號 ** 的引數會以字典的形式匯入

def func(**args):

print(args)

func(a=1, b=2)

#

python3 自定義比較函式

python 2 中支援類似 c 中 cmp 的寫法 python 3 放棄了這一用法 官方說明 所以不想寫lambda的話,加一句cmp to key 就行了 def 比較函式 return 原來的方式是 sorted cmp 比較函式 現在的方式是 from functools import c...

python3 自定義比較器

摘要 在一些場景中,需要重新對已有的資料排序,可能所給出的資料型別或者資料數量較多,需要給定排序規則。import functools def by score t1,t2 if t1 0 t2 0 return 1 elif t1 0 t2 1 return 1 elif t1 1 t2 1 re...

Python3中自定義包和匯入自定義包

第一篇部落格,寫得質量可能會不高,但希望能開個好頭,努力成為優秀的程式設計師!今天在惡補python基礎知識,發現我對包,庫,模組的定義非常模糊,於是我回頭看了一下基礎知識,也是一時興起想讓跟我一樣一開始有些困惑的人避坑!要想知道什麼是包,得先了解一下模組的概念!知道了模組,那緊接著看看包 上面是我...