Python3學習筆記(十一) 函式引數詳解

2022-03-31 17:41:00 字數 2941 閱讀 4474

根據引數的位置來傳遞引數,呼叫函式時,傳遞的引數順序和個數必須和定義時完全一致

#

定義函式

defman(name, age):

print("

my name is %s,i am %d years old.

" %(name, age))

#呼叫函式

>>> man('

eastonliu

',32)

my name

is eastonliu,i am 32years old.

#呼叫時傳入的引數順序必須和定義時一致

>>> man(32, '

eastonliu')

traceback (most recent call last):

file

"", line 1, in

man(32, '

eastonliu')

file

"", line 2, in

man

print("

my name is %s,i am %d years old.

" %(name, age))

typeerror: %d format: a number is required, not

str#

呼叫時傳入的引數個數必須和定義時一致

>>> man("

eastonliu")

traceback (most recent call last):

file

"", line 1, in

man(

"eastonliu")

typeerror: man() missing 1 required positional argument: '

age'

定義函式時,為引數提供預設值,呼叫函式時,可傳可不傳該預設引數的值。如果不傳就取預設值,傳了的話就取傳入的值。定義和呼叫函式時,所有位置引數必須在預設引數前面

#

正確的定義方式

def man(name, age=18):

print("

my name is %s,i am %s years old.

" %(name, age))

#錯誤的定義方式

def man(age=18, name):

print("

my name is %s,i am %s years old.

" %(age, name))

#呼叫時預設引數不傳則取預設引數

>>> man("

eastonliu")

my name

is eastonliu,i am 18years old.

#呼叫時預設引數傳值則取傳入的值

>>> man("

eastonliu

",32)

my name

is eastonliu,i am 32 years old.

呼叫函式時,通過「鍵-值」形式指定引數

#

定義函式

defman(name, age):

print("

my name is %s,i am %d years old.

" %(name, age))

#呼叫函式

>>> man(name="

eastonliu

",age=32)

my name

is eastonliu,i am 32years old.

#關鍵字引數不分順序

>>> man(age=32, name="

eastonliu")

my name

is eastonliu,i am 32years old.

#位置引數必須在關鍵字引數前面

>>> man("

eastonliu

",age=32)

my name

is eastonliu,i am 32years old.

>>> man(name="

eastonliu

",32)

syntaxerror: positional argument follows keyword argument

在函式定義的時候,用*和**來收集位置引數和關鍵字引數,這樣使用者在呼叫函式時,可以給函式提供任意多的引數

def print_params(*params):

print

(params)#呼叫

>>> print_params(1,2,3,4,5)

(1, 2, 3, 4, 5)

def print_params(**params):

print

(params)#呼叫

>>> print_params(x=1,y=2,z=3)

#聯合使用

def print_params(x,y,z=6,*pospar,**keypar):

print

(x,y,z)

print

(pospar)

print

(keypar)

>>> print_params(1,2,3,8,9,10,foo=12,bar=16)

1 2 3(8, 9, 10)

在呼叫函式的時候,使用*和**來解包元組或字典形式引數

def

add_demo(a,b,c)

print(a+b+c)

#解包元組

>>> params=(1,2,3)

>>> add_demo(*params)6#

解包字典

>>> d =

>>> add_demo(**d)

6

Python3學習筆記 三 函式

在python中,一切皆為物件,函式也可以賦給乙個變數,就是指向乙個函式物件的引用,相當於給這個函式起了乙個 別名 a max a 1,2,3 3 a 123 可以對可迭代物件進行操作 3 函式的定義 def power x,n 2 可以計算計算x4 x5 s 1 while n 0 n n 1s ...

Python3學習筆記(十四) 函式

函式是組織好的,可重複使用的,用來實現單一,或相關聯功能的 段。函式能提高應用的模組性,和 的重複利用率。已經知道python提供了許多內建函式,比如print 但你也可以自己建立函式,這被叫做使用者自定義函式。規則如下 python定義函式使用def關鍵字,一般格式如下 def 函式名 引數列表 ...

Python3學習筆記

最近在起步學python,聚合一下這個過程中蒐集的資源和對一些基本知識做個小總結,語法基於python3,方便以後查詢。python官方文件 不錯的基礎課程 基本語法 演算法 建模 練習 以下是整理常用可能遺忘的基礎點 python3中的輸入是input 獲得使用者輸入的字串 a input ple...