您的位置:首页 > 编程语言 > Python开发

Python学习笔记七:函数

2016-08-04 20:42 281 查看
转自:Python学习笔记七:函数,保存在此以学习。

1. 定义一个函数
任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。参数值和参数名称是按函数声明中定义的的顺序匹配起来的。
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
函数内容以冒号起始,并且缩进。
Return[expression]结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

1 def functionname( parameters ):
2    "函数_文档字符串"
3    function_suite
4    return [expression]


2. 函数调用

1 #coding=utf-8
2 #!/usr/bin/python
3
4 # Function definition is here
5 def printme( str ):
6    "打印任何传入的字符串"
7    print str;
8    return;
9
10 # Now you can call printme function
11 printme("我要调用用户自定义函数!");
12 printme("再次调用同一函数");


3. 参数
按值传递和按引用传递参数
所有参数(自变量)在Python里都是按引用传递。如果你在函数里修改了参数,那么在调用这个函数的函数里,原始的参数也被改变了。

1 #coding=utf-8
2 #!/usr/bin/python
3
4 # 可写函数说明
5 def changeme( mylist ):
6    "修改传入的列表"
7    mylist.append([1,2,3,4]);
8    print "函数内取值: ", mylist
9    return
10
11 # 调用changeme函数
12 mylist = [10,20,30];
13 changeme( mylist );
14 print "函数外取值: ", mylist


Python解释器能够用参数名匹配参数值,命名参数顺序不重要

1 #coding=utf-8
2 #!/usr/bin/python
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 #coding=utf-8
2 #!/usr/bin/python
3
4 # 可写函数说明
5 def printinfo( arg1, *vartuple ):
6    "打印任何传入的参数"
7    print "输出: "
8    print arg1
9    for var in vartuple:
10       print var
11    return;
12
13 # 调用printinfo 函数
14 printinfo( 10 );
15 printinfo( 70, 60, 50 );
16
17 >
18 输出:
19 10
20 输出:
21 70
22 60
23 50


匿名函数,lambda函数只能写一行,
匿名函数不能直接调用print,因为lambda需要一个表达式。
Lambda函数能接收任何数量的参数但只能返回一个表达式的值

1 #coding=utf-8
2 #!/usr/bin/python
3
4 #可写函数说明
5 sum = lambda arg1, arg2: arg1 + arg2;
6
7 #调用sum函数
8 print "Value of total : ", sum( 10, 20 )
9 print "Value of total : ", sum( 20, 20 )


定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域

1 #coding=utf-8
2 #!/usr/bin/python
3
4 total = 0; # This is global variable.
5 # 可写函数说明
6 def sum( arg1, arg2 ):
7    #返回2个参数的和."
8    total = arg1 + arg2; # total在这里是局部变量.
9    print "Inside the function local total : ", total
10    return total;
11
12 #调用sum函数
13 sum( 10, 20 );
14 print "Outside the function global total : ", total
>30,30


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: