又是好幾天沒來認真學

2021-08-18 16:51:50 字數 1724 閱讀 8260

今天看函式的引數

位置引數:

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函式裡,我們保證能接收到nameage這兩個引數,但是,如果呼叫者願意提供更多的引數,我們也能收到。試想你正在做乙個使用者註冊的功能,除了使用者名稱和年齡是必填項外,其他都是可選項,利用關鍵字引數來定義這個函式就能滿足註冊的需求。

和可變引數類似,也可以先組裝出乙個dict,然後,把該dict轉換為關鍵字引數傳進去:

好幾天沒寫Blog了。

不是懶,實在是沒時間呀。這兩天一直在邊熟悉vs2003邊看c 語法,而且還抱著本ado.net在狂啃!在開發上嘛 2 把我原來寫的基於xml的無極限樹又優化了,htc由原來的4個檔案變成了只有乙個!xml在同樣可用資訊量的前提下,檔案體積也有所減小,xslt檔案把邏輯完全重構了一下,檔案大小也縮小了...

好幾天沒有寫部落格了

自從到公司上班以後,就沒有寫生活小記部落格了 不是沒有話說,是整天忙的沒有時間寫 今天,我必須說點什麼了。在我第一天去公司上班的時候,我很高興,晚上回來的路上,我打 給家裡,他們很是關心我的面試怎麼樣了?這兩天跑來跑去的,沒有時間給他們說 打通了,妹妹接了 說了兩句後。我問,媽去 了?通常都是她第乙...

好幾天沒女友的音訊了

之前女友說我每天都必須在晚上十點到十點半之間給她打 開始連續好幾天我都做到了。可是前天我因為去外面吃了點心,回來晚了點。還不到十一點啦,打 過去,她手機真的關了 本來也覺得晚上睡覺關機很正常,但是按照她的個性,第二天她應該會給我打 才是的,結果沒有 聽舍友說昨天十點十幾分的時候她有打 過來,但是那時...