python 函数
函数规则:
1.函数代码块以def关键字开头,后接函数标识符名称和圆括号
2.任何传入参数和自变量必须放在阔括号中间,圆括号之间可以用于定义参数
3.函数的第一行语句可以选择性的使用文档字符串-用于存放函数说明
4.函数内容以冒号开始,并且缩进
5.return 结束函数,选择性的返回一个值给调用方,不带表达式的return相当于返回none
语法
def functionname(parameters):
'函数说明文档字符串'
function_suite
return [expression]
函数参数:
1.必备参数
2.关键字参数:可以无顺序,根据参数名对应(str='string')
3.默认参数:函数参数设置设置默认值(name,age=35)
4.不定长参数基本语法
def funcName([formal_args,]*var_args_tuple):
'函数文档字符串'
function_suite
return [expression]
//加了星号(*)的变量名会存放所有未命名的变量参数
#实例
def printinfo(arg1,*vartuple):
'打印任何传入的参数'
print '输出:'
print arg1
for var in vartuple
print var
return
#调用printinfo函数
printinfo(10)
printinfo(10,60,50)
#输出结果
10,
70,60,50
匿名函数:
Python使用lambda来创建匿名函数
1.lambda只是一个表达式,函数体比def简单很多。
2.lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
3.lambda函数拥有自己的命名空间,且不能访问自由参数列表之外或全局命名空间里的参数。
4.虽然lambda函数看起来只能写一行,却不等同于c的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。
语法
lambda函数的语法只包含一个语句
lambda [arg1 [,arg2…argn]]:expression
#实例
sum= lambda arg1,arg2:arg1+arg2
#调用
print '相加后的值:',sum(10,20)
#输出
30
return语句
return语句[表达式]退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回none。
#函数实例
def sum(arg1,arg2):
#返回2个参数的和
total=arg1+arg2
print '函数内:',total
return total
#调用函数
total=sum(10,20)
#输出
函数内:30
全局变量和局部变量
定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。
局部变量只能在其被声明的函数内部访问,而全局变量可以整个范围内访问。调用函数时,所有在函数内部声明的变量名称都将被加入到作用域中。
total=0 #这是一个全局变量
#实例
def sum(arg1,arg2):
total=arg1+arg2 #tatal局部变量
print '函数内部是局部变量',total
return total
#调用sum
sum(10,20)
print '函数外是全局变量',total
#输出
函数内部是局部变量:30
函数外部是全局变量:0