定义函数:
1、函数代码块以def关键字开头,后接函数标识符名称和圆括号()
2、任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数
3、函数的第一行语句可以选择性的使用文档字符串,用于存放函数说明
4、函数内容以冒号开始,并且缩进
5、return[表达式] 结束函数,选择性的返回一个值给调用方。不带表达式的return相当于返回none
语法:
def functionA(parameters):
”函数_文档字符串“
function_suite
return[expression]
默认情况下,参数值和参数名称是按照声明中定义的顺序匹配起来的。
实例:
def printme( str ):
"打印传入的字符串到标准显示设别上 "
print str
return
函数调用
定义一个函数只给了函数一个名称,指定了函数里包含的参数和代码结构
6、在python中,类型属于对象,变量是没有类型的
a=[1,2,3]
a="hahahha"
在以上代码中,【1,2,3】是list类型,”hahhaha“是string类型,而变量a是没有类型的,仅仅是一个对象的引用,可以是list类型对象,也可以是string类型对象
7、可更改(mutable)对象和不可更改(immutable)对象
在python中,string,tuples和number是不可更改的对象,而list,dict等则是可以修改的对象
8、参数
调用函数时可以使用的正式参数类型:
必备参数、关键字参数、默认参数、不定长参数
必备参数:需以正确的顺序传入函数。调用时的数量必须和声明时的一样。
关键字参数:关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值
缺省参数:调用函数时,缺省参数的值如果没有传入,则被认为是默认值
不定长参数:你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,基本语法如下:
9、匿名函数
python使用lambda来创建匿名函数
a、lambda只是一个表达式,函数体比def简单的多
b、lambda的主体是一个表达式,而不是一个代码块,仅仅能在lambda表达式中封装有限的逻辑进去
c、lambda函数拥有自己的命名空间,且不能访问自有参数列表以外的或命名全局命名空间里的参数
d、虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率
实例如下:
10、return语句
return语句【表达式】退出函数,选择性的向调用方法返回一个表达式。不带参数值的return语句返回None。实例如下:
11、变量作用域
一个程序的所有变量并不是在哪个位置都可以被访问。访问权限决定于这个变量在哪里被赋值的。变量的作用域决定了在哪一部分程序你可以访问哪个特定的变量名称,最基本的两种是:全局变量和局部变量
全局变量和局部变量
定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域
定义在函数外的 拥有全局作用域
局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。调用函数时,所有在函数内声明的变量名称都将被加到作用域中。