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 ))
原文地址:https://www.cnblogs.com/lanjianhappy/p/6872715.html