__author__ = 'shenyao' def power(x,n):#ä½ç½®åæ° s=1 while n>0: n=n-1 s=s*x return s print(power(5,2))#ä½ç½®åæ° print(power(5,3))#ä½ç½®åæ° def power(x,n=2):#é»è®¤åæ°(å¿ éåæ°å¨å,é»è®¤åæ°å¨å) s=1 while n>0: n=n-1 s=s*x return s print(power(5)) print(power(5,3)) def enroll(name,gender,age=6,city='beijing'): print("name",name) print("gender",gender) print("age",age) print("city",city) enroll('Sarah','F') enroll('Bob','M',7) enroll('Sheldon','M',city="shenzhen") #æ¼ç¤ºé»è®¤åæ°çå def add_end(L=[]): L.append('END') return L print(add_end([1,2,3])) print(add_end(['x','y','z'])) #print(add_end()) #--------pitfall---------------- print(add_end()) print(add_end()) print(add_end()) #-------pitfall---------------- #-------solution--------------- #é»è®¤åæ°å¿ é¡»æåä¸å对象 def add_end(L=None):#å©ç¨Noneè¿ä¸ªä¸å对象æ¥å®ç° if L is None: L=[] L.append('END') return L #-------solution--------------- print(add_end()) print(add_end()) print(add_end()) def calc(numbers): sum=0 for n in numbers: sum=sum+n*n return sum #å¯ååæ° def calc(*numbers):#æå½æ°åæ°æ¹ä¸ºå¯ååæ° sum=0 print(type(numbers)) #tuple for n in numbers:#numbers tuple sum=sum+n*n return sum # print(calc([1,2,3])) # print(calc((1,3,5,7))) print( calc(1, 2, 3)) print(calc(1,3,5,7)) print(calc()) nums=[1,2,3] print(calc(nums[0],nums[1],nums[2])) print(calc(*nums))#*num表示æè¿ä¸ªlistçææå ç´ ä½ä¸ºå¯ååæ°ä¼ è¿å»,è¿ç§åæ³ç¸å½æç¨ #å ³é®ååæ° #å¯ååæ°å¨å½æ°è°ç¨çæ¶åèªå¨ç»è£ 为ä¸ä¸ªtuple, #å ³é®ååæ°å é¨èªå¨ç»è£ 为ä¸ä¸ªdict def person(name,age,**kw): print('name:',name,'age:',age,'other:',kw) #kw {} person('sheldon',24) person('sheldon',24,city='beijing') person('sheldon',24,gender='M',job="Engineer") extra={'gender':'M','job':'softwar'} person('sheldon','M',**extra)#kwå°è·å¾extraåæ°çä¸ä»½æ·è´ #å ³é®ååæ° def person(name,age,**kw): if 'city' in kw: pass if 'job' in kw: pass print('name:',name,"age:",age,"other:",kw) person('jack',24,city='beijing',addr='chaoyang',zipcode=12345) #å½åå ³é®ååæ° #åå ³é®ååæ°**kwä¸å,å½åå ³é®ååæ°éè¦ä¸ä¸ªç¹è®¸çåé符*,*åé¢çåæ°è¢«è§ä¸ºå½åå ³é®ååæ° def person(name,age,*,city,job): print(name,age,city,job) person('jack',24,city="shenzhen",job="programmer") def person(name,age,*args,city,job): print(name,age,city,job) person('jack',24,city="shenzhen",job="programmer") def person(name,age,*args,city='shenzhen',job):#å½åå ³é®ååæ°å¯ä»¥æé»è®¤å¼ print(name,age,city,job) person('jack',24,job="programmer") def person(name, age, city, job): # ç¼ºå° *ï¼cityåjob被è§ä¸ºä½ç½®åæ° pass #ç»ååæ° #5ä¸åæ°çå®ä¹é¡ºåºå¿ é¡»æ¯å¿ éåæ°,é»è®¤åæ°,å¯ååæ°,å½åå ³é®ååæ°,å ³é®ååæ° def f1(a,b,c=0,*args,**kw): print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw) def f2(a,b,c=0,*,d,**kw): print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw) args=(1,2,3,4) kw={'d':99,'x':'#'} f1(*args,**kw) args=(1,2,3) kw={'d':88,'x':'#'} f2(*args,**kw) #æä»¥,对äºä»»æåæ°,é½å¯ä»¥éè¿ç±»ä¼¼func(*args,**kw)çå½¢å¼è°ç¨,æ 论ä»çåæ°æ¯å¦ä½å®ä¹ç #å°ç» #1 é»è®¤åæ°ä¸å®è¦ç¨ä¸å¯å对象,妿æ¯å¯ååæ°,ç¨åºè¿è¡æ¶ä¼æé»è¾é误 #2 *argsæ¯å¯ååæ°,argsæ¥æ¶çæ¯ä¸ä¸ªtuple #3 **kwæ¯å ³é®ååæ°,kwæ¥æ¶çæ¯ä¸ä¸ªdict #4 å¯ååæ°æ¢å¯ä»¥ç´æ¥ä¼ å ¥ï¼func(1, 2, 3)ï¼åå¯ä»¥å ç»è£ listætupleï¼åéè¿*argsä¼ å ¥ï¼func(*(1, 2, 3)) #5 å ³é®ååæ°æ¢å¯ä»¥ç´æ¥ä¼ å ¥ï¼func(a=1, b=2)ï¼åå¯ä»¥å ç»è£ dictï¼åéè¿**kwä¼ å ¥ï¼func(**{'a': 1, 'b': 2}) #6 å½åçå ³é®ååæ°æ¯ä¸ºäºéå¶è°ç¨è å¯ä»¥ä¼ å ¥çåæ°åï¼åæ¶å¯ä»¥æä¾é»è®¤å¼ #7 å®ä¹å½åçå ³é®å忰卿²¡æå¯ååæ°çæ åµä¸ä¸è¦å¿äºååé符*ï¼å¦åå®ä¹çå°æ¯ä½ç½®åæ°