1. 程式人生 > >python引數補充及引數的混合使用

python引數補充及引數的混合使用

##定義一個x~n
def power(x,n=2):#3預設引數
s =1
while n>0:
        n=n-1
s=s*x
    return s

#input(power(5,3))
##定義一個東西
def add_end(L=None):
    if L is None:
            L=[]
    L.append("END")
    return  L

#print(add_end([1,2,3]))
##可變引數的定義
def calculate(*numbers):
    sum=0
for n in numbers:
        sum=sum+n*n
    return 
sum #print(calculate(1,2,3,4,5)) ##關鍵字引數: def person(name,age,**kw): print('name:',name,'age:',age,'others:',kw) print(person('hyw',30)) print(person('lxl',28, city='zs')) print(person('zb',31,gendle='M',job='Engineer')) extra = {'city': 'ZhongShan', 'job': 'Assisent'} print(person('lxl', 28, city
=extra['city'], job=extra['job'])) person('lxl', 28, **extra)##簡單寫法 #檢查是否有相應的引數 def person(name, age, **kw): if 'city' in kw:# 有 city 引數 pass if 'job' in kw: # 有 job 引數 pass print('name:', name, 'age:', age, 'other:', kw) def person(name, age, *, city, job):#和關鍵字引數**kw 不同,命名關鍵字引數需要一個特殊分隔符*, *後面,的引數被視為命名關鍵字引數。
print(name, age, city, job) #呼叫方式 person('Jack', 24, city='Beijing', job='Engineer') #命名關鍵字引數必須傳入引數名,這和位置引數不同。如果沒有傳入參 #數名,呼叫將報錯: ##person('Jack', 24, 'Beijing', 'Engineer') ##一定要傳入命名引數名 #命名關鍵字引數可以有預設值,從而簡化呼叫: def person(name, age, *, city='Beijing', job): print(name, age, city, job) ##引數的混合使用: #在 Python 中定義函式,可以用必選引數、預設引數、可變引數、關鍵 #字引數和命名關鍵字引數,這 5 種引數都可以組合使用,除了可變引數 #無法和命名關鍵字引數混合。但是請注意,引數定義的順序必須是:必 #選引數、預設引數、可變引數/命名關鍵字引數和關鍵字引數。 #比如定義一個函式,包含上述若干種引數: def f1(a, b, c=0, *args, **kw): print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw) def f2(a, b, c=0, *, d, **kw): print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw)