python函式定義語法總結

2021-09-07 16:15:35 字數 3007 閱讀 9011

見下面**及注釋:

1

defcalc(value):

2 sum=0

3for m in

value:

4 sum=sum+m

5return

sum6

7 data=[1,2,3,4,5,6,7,8,9,10]

8print

(str(calc(data)))

9print(calc([1,2,3]))

10print(calc((1,2,3)))11#

print(calc(1,2,3)) 這句會報錯,不過可以用可變引數改造函式calc

1213

def calc1(*value):

14 sum=0

15for m in

value:

16 sum=sum+m

17return

sum18

#函式calc1為可變引數

19print(calc1(1,2,3))

20print(calc1()) #

甚至還可以零引數呼叫

2122

#如果有乙個list或者tuple要呼叫可變引數怎麼搞

23 nums=[1,2,3]24#

print(calc1(nums)) 這句報錯: unsupported operand type(s) for +: 'int' and 'list'25#

像下面這樣呼叫就可以

26print(calc1(nums[0],nums[1],nums[2]))27#

也可以這樣呼叫,表示把nums這個list的所有元素做為乙個可變引數傳遞進去

28print(calc1(*nums))

2930

#下面演示關鍵字引數31#

關鍵字引數允許你傳入0個或任意個含引數名的引數,32#

這些關鍵字引數在內部自動裝為乙個dict

33def person(name,age,**kw):

34print('

name:

',name,'

age:

',age,'

other:

',kw)

3536

print(person('

劉小勇',30))

37print(person('

劉小勇',35,city='

北京',job='

軟體工程師'))

3839 data1=

40print(person('

劉小能',45,city=data1['

city

'],job=data1['

job'

]))41

print(person('

劉小勇',45,**data1))

4243

#命名關鍵字引數

44def person1(name,age,*,city,job):

45print

(name,age,city,job)

4647

print(person1("

劉小勇",45,city="

武漢",job="**"

))48

#命令關鍵字引數只接受city,job,下面的呼叫因此會報錯49#

person1() got an unexpected keyword argument 'bby'50#

print(person1("lxy",32,bby="kkk",job2="kkk2"))

5152

#命名關鍵勃引數還可以有預設值

53def person2(name,age,*,city="

wuhan

",job):

54print

(name,age,city,job)

5556

print(person2('

xly2

',23,job='

222'

))5758#

引數組合59#

5種引數組合,必須按以下列順序組合60#

必選引數、預設引數、可變引數/命名關鍵字引數和關鍵字引數

6162

def f1(a,b,c=0,*args,**kw):

63print('

a=',a,'

b=',b,'

c=',c,'

args=

',args,'

kw='

,kw)

64def f2(a,b,c=0,*,d,**kw):

65print('

a=',a,'

b=',b,'

c=',c,'

d=',d,'

kw='

,kw)

6667

print(f1(1,2))

68print(f1(1,2,c=3))

69print(f1(1,2,3,'

a','b'

))70

print(f1(1,2,3,'

a','

b',x=33))

71print(f2(1,2,d=99,ext=none))

7273

#你甚至可以通過乙個tuple和dict呼叫上面的函式

74 args=(1,2,3,4)

75 kw=

76print(f1(*args,**kw))

7778 args=(1,2,3)

79 kw=

80print(f2(*args,**kw))81#

所以,對於任意函式,都可以通過類似fun(*args,**kw)的形式呼叫它,無論它的引數82#

是如何定義的

8384

#幾點總結85#

預設引數一定要用不可變的物件86#

*args是可變引數,接受乙個tuple或list87#

**kw是關鍵字引數,接受乙個dict

Python語法總結

場景 去重 集合方法 s.add x s.remove x 移除x,沒有x就產生keyerror異常 s.clear 移除所有元素 s.pop 隨機返回乙個元素,並且更新s s.copy s.len x in s x not in s 集合的遍歷與定義的順序不一定一樣 應用 包含關係比較。去重複元素...

Python 基礎語法總結

預設情況下,python3原始檔以utf 8編碼,所有字串都是unicode字串 當然也可以為原始檔指定不同的編碼 第乙個字母必須是字母表中字母或 識別符號的其他部分由字母 數字和下劃線組成 識別符號對大小寫敏感 在python3中,可以用中文作為變數名,非ascll識別符號也是允許的 保留字即關鍵...

Python定義函式

1.1 定義函式基礎 參考 define the function def fib n print the fibonacci series up to n.a,b 0,1 while a n print a a,b b,a b 1.2 函式預設引數 default arguments def as...