python学习笔记5-自定义函数
1 自定义函数
(1)函数代码块以def关键字开头,然后函数标识符名称和圆括号
(2)任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数
(3)函数的第一行语句可以选择性的使用文档字符串用于存放函数说明
(4)函数内容以冒号开始 并且缩进
(5)return[expression]结束函数 选择性的返回一个值给调用方 不带
表达式的return相当于返回none
2 基本的定义和调用
1 #自定义函数 2 ''' 3 def functionname( parameters ): 4 "函数_文档字符串" 5 function_suite 6 return [expression] 7 ''' 8 9 def printme( str ): 10 "打印传入的字符串到标准显示设备上" 11 print (str) 12 return 13 14 #函数调用 15 printme("我要调用用户自定义函数!"); 16 printme("再次调用同一函数"); 17 18 19 # 可写函数说明 20 def changeme( mylist ): 21 "修改传入的列表" 22 mylist.append([1,2,3,4]); 23 print ("函数内取值: ", mylist) 24 return 25 26 # 调用changeme函数 27 mylist = [10,20,30]; 28 changeme( mylist ); 29 print ("函数外取值: ", mylist) 30 31 32 #参数 调用的时候没有传导致错误 33 def printme( str ): 34 "打印任何传入的字符串" 35 print (str); 36 return; 37 38 #调用printme函数 39 printme();
2.1 参数可以不按照顺序传 但是要有命名
1 #调用printme函数 2 printme( str = "My string"); 3 4 #命名参数 即使顺序不一样 仍然可以自动匹配到 5 def printinfo( name, age ): 6 "打印任何传入的字符串" 7 print ("Name: ", name); 8 print ("Age ", age); 9 return; 10 11 #调用printinfo函数 12 printinfo( age=50, name="miki" );
1 #调用printinfo函数 2 printinfo( age=50, name="miki" ); 3 4 5 def printinfo( name, age = 35 ): 6 "打印任何传入的字符串" 7 print ("Name: ", name); 8 print ("Age ", age); 9 return; 10 11 #调用printinfo函数 12 printinfo( age=50, name="miki" ); 13 printinfo( name="miki" );
2.2不定长参数
1 #不定长参数 2 ''' 3 def functionname([formal_args,] *var_args_tuple ): 4 "函数_文档字符串" 5 function_suite 6 return [expression] 7 ''' 8 def printinfo( arg1, *vartuple ): 9 "打印任何传入的参数" 10 print ("输出: ") 11 print (arg1) 12 for var in vartuple: 13 print (var) 14 return; 15 16 # 调用printinfo 函数 17 printinfo( 10 ); 18 printinfo( 70, 60, 50 );
2.3匿名函数
1 #匿名函数 2 ''' 3 lambda [arg1 [,arg2,.....argn]]:expression 4 ''' 5 6 sum = lambda arg1, arg2: arg1 + arg2; 7 # 调用sum函数 8 print ("相加后的值为 : ", sum( 10, 20 )) 9 print ("相加后的值为 : ", sum( 20, 20 ))