見下面**及注釋:
1defcalc(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...