python 函式的引數

2021-07-16 23:31:53 字數 2006 閱讀 1870

位置引數:

def power

(x, n): s = 1

while n > 0: n = n - 1 s = s * xreturn s

以上的函式旨在於實現計算x的n次方

預設引數:

def

power

(x, n=2):

s = 1

while n > 0:

n = n - 1

s = s * x

return s

以上函式中,預設n=2,這樣情況下,不需要每次輸入n=2,只鍵入power(5)即可,而如果計算3次方時可以:

power(5,3),與vba類似,改變多個預設引數時,可以順序寫入,也可以直接調取引數名進行修改:

rnroll('adam','m',city='shanghai')

預設引數容易出現的問題:
1:def

add_end

(l=none):

if l is

none:

l =

return l

2:def

add_end

(l=):

return l

以上兩個做對比:2中定義l為空,然後當呼叫add_end()時,自動生成[end],但再次呼叫時,就會出現[end,end]的情況,這是由於此時的add_end中已經有乙個end

而第乙個函式就不會出現該問題。

以上問題類似於vba中重複新增的問題。

可變引數:
1:def

calc

(numbers):

sum = 0

for n in numbers:

sum = sum + n * n

return sum

2:def

calc

(*numbers):

sum = 0

for n in numbers:

sum = sum + n * n

return sum

對比以上兩個函式:1在每次計算的時候,都需要裝載乙個list,即calc([1,2,3]),而2則直接輸入即可calc(1,2,3)

這是由於*加上以後,自動將number的形式定義為接收tuple

那麼如果我們需要陣列中再次鍵入陣列怎麼辦?

>>> nums = [1, 2, 3]

>>> calc(*nums)『只需要將需要鍵入的陣列錢再次加上*即可』

14

關鍵字引數:

def

person

(name, age, **kw):

print('name:', name, 'age:', age, 'other:', kw)

除了必選引數外,還可以新增任意關鍵字

命名關鍵字引數:

如果要限制關鍵字引數的名字,就可以用命名關鍵字引數,例如,只接收cityjob作為關鍵字引數。這種方式定義的函式如下:

def

person

(name, age, *, city, job):

print(name, age, city, job)

命名關鍵字引數必須傳入引數名,這和位置引數不同。如果沒有傳入引數名,呼叫將報錯:

命名關鍵字引數:
在python中定義函式,可以用必選引數、預設引數、可變引數、關鍵字引數和命名關鍵字引數,這5種引數都可以組合使用。但是請注意,引數定義的順序必須是:必選引數、預設引數、可變引數、命名關鍵字引數和關鍵字引數。

python引數函式 Python函式引數總結

coding utf 8 整理一下python函式的各種引數型別 位置引數 呼叫函式時,傳入的兩個值按照位置順序依次賦給引數 def power x,n s 1 while n 0 n n 1 s s x return s print power 5,2 預設引數 簡化函式的呼叫 def power...

python 引數 Python函式 引數

python中將函式作為引數,區分將引數直接寫成函式名和函式名 的區別。def fun1 fun print print print fun 執行fun1 fun4 時,fun為函式fun3的返回值x print type fun type fun type fun fun 執行fun1 fun4 ...

python函式的引數

1.python函式的返回值 python使用def關鍵字定義函式,和其他語言一樣,函式基本上可以分為有返回值和沒有返回值2種,一般來說還可以分為運算功能和處理功能型函式。先說點題外話 python2和python3在函式的使用上的些微差別 defrun name print name runing...