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

python3函数基础知识一

2016-12-09 22:20 519 查看
函数就是一种具有高健狀性、高使用率的代码块。Python自带了非常多的优秀的内置函数。同时允许用户自定义函数,这样大大的提高了编程的灵活性,这是每一种高级编程语言都带有的特性。内置函数可以通过查看工具指南即可达到使用的效果。这里将探讨Python自定义函数的使用技巧和关键点。1、Python自定义函数的框架def  function_name (formal parameters):       function body return [expressions]def 是定义函数的关键字,函数名和一对小括号是必须的。参数可以非必选,参数列表可以自由定制,可以传入几个参数或者多个参数。2、Python函数参数的特殊传入(普通传入与其他语言无异,不赘述)函数在定义时可以根据需求传入灵活的参数设置。通过在形参前加一个星号(*)或两个星号(**)来指定函数可以接收任意数量的实参。例如:>>> def parameter(*args):print(type(args))print(args)>>> parameter(1,2,3,4)<class 'tuple'>(1, 2, 3, 4)def parameter(**args):print(type(args))print(args)parameter(a=1,b=4,c=4,g=6)<class 'dict'>{'a': 1, 'b': 4, 'c': 4, 'g': 6}有上述可知,使用一个星号传入的参数,被按照元组图tuple的形式存储起来,而是用两个星号的形参,则采用字典dictionary(键值对)。在使用两个星号形参的时候,调用参数得使用键值对keyword-value的形式传入。3、普通参数列表也可采用键值对方式传递实参,此时的参数的顺序可以乱序。def parameter1(name,age,gender):    print(name,age,gender)>>> parameter1('jack','20','man')jack 20 man>>> parameter1(age=20,name='jack',gender='man')jack 20 man函数也同样可以作为参数传入到函数体中,在函数体中照样可以接收参数。def call_func(func,para):    print(func(para))if __name__=='__main__':    call_func(lambda x:x+2,5)   4、函数的调用Python中在调用函数时,需要给定和形参相同个数的实参并按顺序一一对应即可。5、针对第2点,使用*或**来表示形参接收的个数。其实使用*表示将所有参数打包成列表list的形式传入函数体,**表示将所有的参数打包成字典dictionary的形传入函数体。既然有打包必然有解包。故而在函数的调用的过程中,可以事先定义好列表或者字典。作为参数传入。函数会自动将解包,将一一对应传给形参。def fib(a,b,c):    print(a+b+c)>>> list=[1,2,3]>>> dict={'a':20,'b':30,'c':40}>>> fib(*list)6>>> fib(**dict)906、匿名函数lambda(anonymousinline function)表达式lambda [arg1 [,arg2,.....argn]] : expression。lambda表达式可以在任何需要函数对象的地方使用,它们在语法上被限制为单一的表达式。lambda函数能接收任何数量的参数但只能返回一个表达式的值>>> f=lambda x: x**2>>> f(10)100>>> f=lambda x: x>10>>> f(5)False其返回结果的结果要么是定义好的表达式,要么就是bool值。7、函数中使用文本字符串函式体的第一个语句可以是三引号括起来的字符串, 这个字符串就是函数的文档字符串,或称为docstring 。我们可以使用print(function.__doc__)输出文档:def fib():    """ synchronized translation for 90 languages, predictive typing"""   return  >>>print(fib.__doc__)synchronized translation for 90 languages, predictive typing 文档字符串主要用于描述一些关于函数的信息,让用户交互地浏览和输出。建议养成在代码中添加文档字符串的好习惯。

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