重拾Python學習(二) 函式

2021-08-31 09:40:42 字數 3153 閱讀 5634

本文參考:廖雪峰的官方**:

deffunction:returnpass

函式可以同時返回多個值,但其實就是乙個tuple。

位置引數

def power(x, n)

預設引數

def power(x, n=2)

預設引數必須指向不變物件strnonetuple

可變引數

def calc(*numbers)

在函式內部,引數numbers接收到的是乙個tuple

如果已經有乙個list或者tuple,要呼叫乙個可變引數:

>>

> nums =[1

,2,3

]>>

> calc(

*nums)

14

*nums表示把nums這個list的所有元素作為可變引數傳進去

這裡的*並非c中的指標?

關鍵字引數

def person(name, age, **kw)

>>

> extra =

>>

> person(

'jack',24

,**extra)

name: jack age:

24 other:

**extra表示把extra這個dict的所有key-value用關鍵字引數傳入到函式的**kw引數

命名關鍵字引數

def person(name, age, *, city, job)

和關鍵字引數**kw不同,命名關鍵字引數需要乙個特殊分隔符**後面的引數被視為命名關鍵字引數

>>

> person(

'jack',24

, city=

'beijing'

, job=

'engineer'

)jack 24 beijing engineer

如果函式定義中已經有了乙個可變引數,後面跟著的命名關鍵字引數就不再需要乙個特殊分隔符*了:

def person(name, age, *args, city, job)

使用命名關鍵字引數時,如果沒有可變引數,就必須加乙個*作為特殊分隔符。如果缺少*,python直譯器將無法識別位置引數和命名關鍵字引數

def

person

(name, age, city, job)

:# 缺少 *,city和job被視為位置引數

pass

引數組合

引數定義的順序必須是:必選引數、預設引數、可變引數、命名關鍵字引數和關鍵字引數。

def

f1(a, b, c=0,

*args,

**kw)

:print

('a ='

, a,

'b ='

, b,

'c ='

, c,

'args ='

, args,

'kw ='

, kw)

deff2

(a, b, c=0,

*, d,

**kw)

:print

('a ='

, a,

'b ='

, b,

'c ='

, c,

'd ='

, d,

'kw ='

, kw)

>>

> f1(1,

2)a =1 b =

2 c =

0 args =

() kw =

>>

> f1(1,

2, c=3)

a =1 b =

2 c =

3 args =

() kw =

>>

> f1(1,

2,3,

'a',

'b')

a =1 b =

2 c =

3 args =

('a'

,'b'

) kw =

>>

> f1(1,

2,3,

'a',

'b', x=99)

a =1 b =

2 c =

3 args =

('a'

,'b'

) kw =

>>

> f2(1,

2, d=

99, ext=

none

)a =

1 b =

2 c =

0 d =

99 kw =

>>

> args =(1

,2,3

,4)>>

> kw =

>>

> f1(

*args,

**kw)

a =1 b =

2 c =

3 args =(4

,) kw =

>>

> args =(1

,2,3

)>>

> kw =

>>

> f2(

*args,

**kw)

a =1 b =

2 c =

3 d =

88 kw =

重拾ICTCLAS,繼續學習

從去年3月份開始,經過一段時間的認真研究學習ictclas,把學習的心得發表在我的blog上,引起我很多愛好者的關注,也不斷有朋友和我聯絡,希望共同 自從去年七月份之後,一方面工作忙的原因,二方面自己也有很多的雜事,漸漸把此事拋諸了腦後,時間一長更是不想再深入,心浮氣躁也深入不進去。常常想起此事會有...

重拾CSS 學習之旅

1 什麼是css css叫做層疊樣式表,它定義了如何顯示html元素。樣式通常儲存在樣式表中,引用css外部式是為了解決表現與資料分離的問題,外部樣式也可以極大的提高工作效率。儲存在css檔案中,多個央視定義可層疊為乙個 2 語法 css例項主要由兩部分組成,選擇器以及一條或多條宣告 h1h1部分屬...

重拾C語言之指標篇(二)

指標與函式引數傳遞 c語言在傳遞引數時,會預設為形參分配新的記憶體空間,形參只有在被呼叫時才分配記憶體 單元,在呼叫結束時,即刻釋放所分配的記憶體單元。void main void change int i 我們可以看到,呼叫change 方法後並沒有改變i的值,我們可以把main方法和change...