今天看函式的引數
位置引數:
def power( x ):
return x * x
如果要計算x的n次方,
def power( ):
s = 1
while n> 0:
n = n -1
s = s * x
return s
預設引數:
即預設上述引數中n = 2
def power ( x, n=2):
s =1
while n > 0:
n = n - 1
s = s * x
return s
呼叫power(5)時相當於輸入power(5,2)
而 power(5,3)中的3必須輸入
預設引數的問題:
def add_end(l = ):
return l
正常呼叫時:add_end([1,2,3])-------->[1, 2, 3, 'end' ]
使用預設引數進行呼叫:add_end( )----->['end']
繼續呼叫:add_end( )-------->['end','end']
add_end( )-------> ['end', 'end', 'end']
原因是:在定義函式時 預設引數l 的值就被計算出來,即【 】,因為預設引數l 也是乙個變數,
要修改這個問題,就需要使用none這個不變物件
def add_end(l = none):
if l is none:
l = [ ]
return l
可變引數:
就是指引數的個數可以變,不是固定的,
計算a^2+b^2+c^2+.....
def calc(numbers):
sum = 0
for n in numbers:
sum = sum + n*n
return sum
在引數前加 * 將其變為可變引數:
def calc (*numbers):
sum =0
for n in numbers:
sum = sum + n * n
return sum
思考:當a^2不是2次方而是 n 次方呢?
關鍵字引數:
def
person
(name, age, **kw):
print('name:', name, 'age:', age, 'other:', kw)
>>> person('bob', 35, city='beijing')
name: bob age: 35 other:
>>> person('adam', 45, gender='m', job='engineer')
name: adam age: 45 other:
關鍵字引數有什麼用?它可以擴充套件函式的功能。比如,在person
函式裡,我們保證能接收到name
和age
這兩個引數,但是,如果呼叫者願意提供更多的引數,我們也能收到。試想你正在做乙個使用者註冊的功能,除了使用者名稱和年齡是必填項外,其他都是可選項,利用關鍵字引數來定義這個函式就能滿足註冊的需求。
和可變引數類似,也可以先組裝出乙個dict,然後,把該dict轉換為關鍵字引數傳進去:
好幾天沒寫Blog了。
不是懶,實在是沒時間呀。這兩天一直在邊熟悉vs2003邊看c 語法,而且還抱著本ado.net在狂啃!在開發上嘛 2 把我原來寫的基於xml的無極限樹又優化了,htc由原來的4個檔案變成了只有乙個!xml在同樣可用資訊量的前提下,檔案體積也有所減小,xslt檔案把邏輯完全重構了一下,檔案大小也縮小了...
好幾天沒有寫部落格了
自從到公司上班以後,就沒有寫生活小記部落格了 不是沒有話說,是整天忙的沒有時間寫 今天,我必須說點什麼了。在我第一天去公司上班的時候,我很高興,晚上回來的路上,我打 給家裡,他們很是關心我的面試怎麼樣了?這兩天跑來跑去的,沒有時間給他們說 打通了,妹妹接了 說了兩句後。我問,媽去 了?通常都是她第乙...
好幾天沒女友的音訊了
之前女友說我每天都必須在晚上十點到十點半之間給她打 開始連續好幾天我都做到了。可是前天我因為去外面吃了點心,回來晚了點。還不到十一點啦,打 過去,她手機真的關了 本來也覺得晚上睡覺關機很正常,但是按照她的個性,第二天她應該會給我打 才是的,結果沒有 聽舍友說昨天十點十幾分的時候她有打 過來,但是那時...