Python学习笔记七:函数
2016-08-04 20:42
281 查看
转自:Python学习笔记七:函数,保存在此以学习。
1. 定义一个函数
任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。参数值和参数名称是按函数声明中定义的的顺序匹配起来的。
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
函数内容以冒号起始,并且缩进。
Return[expression]结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
2. 函数调用
3. 参数
按值传递和按引用传递参数
所有参数(自变量)在Python里都是按引用传递。如果你在函数里修改了参数,那么在调用这个函数的函数里,原始的参数也被改变了。
Python解释器能够用参数名匹配参数值,命名参数顺序不重要
不定长参数,你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数。加了星号(*)的变量名会存放所有未命名的变量参数,选择不多传参数也可。
匿名函数,lambda函数只能写一行,
匿名函数不能直接调用print,因为lambda需要一个表达式。
Lambda函数能接收任何数量的参数但只能返回一个表达式的值
定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域
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
相关文章推荐
- Python函数学习笔记
- Python学习笔记整理(十二)Python的函数
- Python3.3 学习笔记8 - 函数
- python学习笔记--探索函数
- python 学习笔记 -- 函数
- Python 学习笔记:需要仔细阅读一个函数
- Python 学习笔记 - 9.函数(Function)
- python函数缺省值与引用学习笔记分享
- Python3.3 学习笔记4 - 函数 - input & print
- python学习笔记之open函数的用法
- Python 学习笔记(一)语句,变量,函数
- python学习笔记: 一些有用的文件操作函数
- Python2.7 学习笔记 (二)—— 函数,模块,正则
- python函数缺省值与引用学习笔记分享
- Python学习笔记(函数)
- python_模块与函数学习笔记
- python简明教程学习笔记2--函数
- python学习笔记8-函数整理
- python学习笔记(六)——函数
- Python学习笔记:函数与类