GoCrypto Token中文网

Python学习笔记(九)—— 函数

WHY中文网

你的位置:GoCrypto Token中文网 > WHY中文网 > Python学习笔记(九)—— 函数


Python学习笔记(九)—— 函数

发布日期:2025-01-04 11:29    点击次数:69

一、函数调用: 1、python内部函数查询:#abs 2、注意调用函数的参数个数和类型。   3、函数名其实就是指向一个函数对象的引用,完全可以把函数名赋给一个变量,相当于给这个函数起了一个“别名”:   二、定义函数 1、语法(以abs为例子) (1)函数一定有返回值:为NONE (2)在Python交互环境中定义函数时,注意Python会出现...的提示。函数定义结束后需要按两次回车重新回到>>>提示符下:   2、函数封装成文件 (1)第一步将函数写在一个python文件中 (2)使用命令:   (3)demo   3、空函数 (1)概念:      如果想定义一个什么事也不做的空函数,可以用pass语句:     (2)作用:      比如现在还没想好怎么写函数的代码,就可以先放一个pass,让代码能运行起来   4、参数检查 (1)个数检查     个数不对,python解释器会自动检查出来,幷报错。   (2)参数类型检查     类型出错,不会报出错误类型,需要自己手动添加。     其中isinstance是自带检测函数。   5、返回多个值 一个demo (1)import math语句表示导入math包,并允许后续代码引用math包里的sin、cos等函数 (2)然后,我们就可以同时获得返回值:       但其实这只是一种假象,Python函数返回的仍然是单一值:        原来返回值是一个tuple!但是,在语法上,返回一个tuple可以省略括号,而多个变量可以同时接收一个tuple,按位置赋给对应的值,所以,Python的函数返回多值其实就是返回一个tuple,但写起来更方便。   三、函数的参数 1、位置参数     其中的  x  便是位置参数。   2、默认参数   书写函数的时候可以将位置参数设置默认值,称为默认参数。 (1)好处:简化函数的调用方式,不需要修改参数n 的时候不需要赋值,简化函数的调用。 (2)规则:         A、必选参数在前,默认参数在后,否则Python的解释器会报错(思考一下为什么默认参数不能放在必选参数前面);         B、如何设置默认参数。当函数有多个参数时,把变化大的参数放前面,变化小的参数放后面。变化小的参数就可以作为默认参数。 (3)调用小结     有多个默认参数时,调用的时候,既可以按顺序提供默认参数,比如调用enroll('Bob', 'M', 7),意思是,除了name,gender这两个参数外,最后1个参数应用在参数age上,city参数由于没有提供,仍然使用默认值。     也可以不按顺序提供部分默认参数。当不按顺序提供部分默认参数时,需要把参数名写上。比如调用enroll('Adam', 'M', city='Tianjin'),意思是,city参数用传进去的值,其他默认参数继续使用默认值。 (4)默认参数必须指向不可变对象     一个Demo       默认参数L的值一开始就被计算出来了,即[],因为默认参数L也是一个变量,它指向对象[],每次调用该函数,如果改变了L的内容,则下次调用时,默认参数的内容就变了,不再是函数定义时的[]了。       修改方法:指向NONE    3、可变参数 (1)格式   即类似C语言指针的格式方法    (2)调用 A、list调用   B、正常调用   4、关键字参数 (1)定义:      关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict (2)格式: (3)调用: A、正常调用     B、dict调用   (4)命名关键字参数     对于关键字参数,函数的调用者可以传入任意不受限制的关键字参数。至于到底传入了哪些,就需要在函数内部通过kw检查。仍以person()函数为例,我们希望检查是否有city和job参数:    四、递归函数 1、尾递归 (1)概念       解决递归调用栈溢出的方法是通过尾递归优化,尾递归是指,在函数返回的时候,调用自身本身,并且,return语句不能包含表达式。这样,编译器或者解释器就可以把尾递归做优化,使递归本身无论调用多少次,都只占用一个栈帧,不会出现栈溢出的情况。 (2)但是:       python解释器没有实现这样的功能  

Powered by GoCrypto Token中文网 @2013-2022 RSS地图 HTML地图

Copyright Powered by站群系统 © 2013-2024