简介本文介绍了python中函数的基础知识。文章目录0×1。自定义函数0×2。向函数0×3添加文档。函数范围0×4。参数为0×1的函数。自定义函数在任何编程语言中,函数的功能都是一样的。它可以将一些需要重复执行的语句组合起来,以便在需要的时候调用。def关键字在python中用于创建函数。请看下面的例子:#!/usr/bin/envpython3#coding=utf-8dect={"one":1,"two":2,"three":3}#创建一个函数,函数名是in_dect,括号中的空格表示没有接收到传入参数,函数执行过程中如果遇到return,则执行结束,return后的值返回给调用者#------defin_dect():"""根据字典输入key返回值"""try:count=dect[num]exceptKeyErroraserr:count=0returncount#------#Setnum到dect字典中不同的key,调用print中刚刚创建的函数,in_dect()函数会根据num个key的值返回对应的key,如果传入的key不存在,会触发KeyError异常and0num="one"print(in_dect())num="two"print(in_dect())num="xxx"print(in_dect())#会返回#程序输出为1200×2。向函数添加文档。我们可以使用“三重引号”为每个函数添加一个函数描述。在python中,这个描述可以通过“函数名.__doc__”打印出来,请看下面的例子:#!/usr/bin/envpython3#coding=utf-8#------defsayhello():"""打印helloworld""""""www.qingsword.com"""print("helloworld!")#------sayhello()#直接调用函数print(sayhello.__doc__)#打印出函数中的描述信息#程序输出helloworld!打印出helloworld#注意上面的Output,__doc__只能打印出函数中第一个“三引号”中包含的描述信息0×3。函数作用域function中的变量名和global中的变量名称可以相同,函数的变量名只在函数内部使用,请看下面的例子:#!/usr/bin/envpython3#coding=utf-8#------defre_list():lst=[1,2,3]returnlst#---lst=["a","b","c"]print(lst,re_list())#在上面的程序中,在re_list()函数中包含一个变量名lst,全局中也有一个同名变量,但两者互不干扰。函数中变量的作用域仅限于函数本身。在调用函数时创建,函数执行后回收。下面是程序输出['a','b','c'][1,2,3]0×4。带参数的函数可以在自定义函数括号中定义变量来接收传入的数据,见下例:#!/usr/bin/envpython3#coding=utf-8#------defre_dect_value(dect,k):returndect[k]#------d={"a":1,"b":2,"c":3}k="a"#调用函数时,将d和k传给函数.定义函数时,括号中包含两个参数,相当于传递函数参数中的dect指向d引用的内存区的数据(列表数据),与k相同,所以取值这个函数的return语句返回的其实相当于d[k]print(re_dect_value(d,k))#程序输出:1可以用判断语句来判断传递给函数的参数的数据类型,以及通过数据类型判断调用不同的功能块执行。如果不带参数,使用默认值指向的块执行,请看下面的例子:#!/usr/bin/envpython3#coding=utf-8#choose_def函数,用于判断类型传入的数据,根据不同的类型调用不同的函数,如果没有传入参数,则使用默认值(即typ="default",idx=0)defchoose_def(typ="default",idx=0):iftype(typ)==type([]):print(c_dect(typ,idx))eliftype(typ)==type(""):print(c_str(typ,idx))#------defc_dect(d,idx):返回urnd[idx]#------defc_str(s,idx):returns[idx]#------lst=[1,2,3,4]s="www.qingsword.com"i=2choose_def(lst,i)choose_def(s,i)choose_def()#程序输出3wd#上面程序中最后一次调用选择函数不带参数,python定义时会使用默认设置函数Value(如果有的话),程序判断“default”是一个字符串,所以调用字符串函数c_str(),因为默认idx为0,所以打印出“default”的第一个字符d#likechoose_def()对于有默认值参数的函数,如果我们只想修改其中一个参数,其他参数沿用默认值,我们可以使用下面的方法调用choose_def(idx=3)#这个调用方法只指定idx和typ的值不设置,将使用默认值。除了使用类型判断,还可以使用字符串判断,通过每次类型判断返回的字符串来判断传入参数的类型。对上面程序中的choose_def函数稍作修改,执行结果相同:#将type()判断后的返回值转换为字符串,并与对应的字符串值进行比较defchoose_def(typ="default",idx=0):ifstr(type(typ))=="
