博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
函数相关内容
阅读量:7248 次
发布时间:2019-06-29

本文共 1612 字,大约阅读时间需要 5 分钟。

1、什么是函数
- 函数就是一个代码块
2、为什么要用函数(定义函数)
- 为了实现代码的重用性
- 函数即变量,必须先定义,后饮用
3、函数的分类:
内置函数:如:print,list,tuple,dict等python内置好的函数,在python内部任何地方都可以调用
自定义函数:假如内置函数不能满足我们对于某些功能的需求,就需要自定义一些函数
4、如何定义函数
定义函数都干了什么事?
- 只检测语法,不执行代码
语法 def func():pass def 关键字,func函数名,() :
定义有参函数,以及有参函数的应用场景
def func(name):pass - 根据外部传进来的数据进行逻辑判断
定义无参函数,以及无参函数的应用场景
def func():pass - 仅仅执行一些操作,比如用户交互,打印等
定义空函数,以及空函数的应用场景
- 设计代码结构
5、调用函数
如何调用函数
- 先找到名字,然后根据名字调用↓
- 函数名()
函数的返回值
- 不写默认返回None
- return其它(一个值|元组)
函数的返回值必须有吗?
- 有:调用函数,经过一系列的操作,最后要拿到一个明确的结果,则必须要有返回值
- 无:···,不需要得到什么结果,则不需要有返回值
函数参数的应用:形参和实参,位置参数,关键字参数,默认参数,*arg,**kwargs
函数调用的三种形式:
- 1、语句形式:foo()
- 2、表达式形式:3*len("hello")
- 3、当另一个函数的参数:range(len("hello"))
函数的参数:
- 形参和实参定义
- 形参即变量名,实参即变量值,函数调用将值绑定到名字上,函数调用结束,接触绑定
注意:
- 默认参数只在定义的时候赋值一次
6、高阶函数(函数对象)
- 函数时第一类对象,即函数可以当做数据传递
- 可以被引用
- 可以作为返回值
- 可以当做容器类元素
7、函数嵌套
- 函数里面的函数
8、作用域与名称空间
- golbal
- local
- 名称空间:存放名字的地方,三种名称空间(x=1,1存放在内存,x存放的地方就是名称空间)
- 加载顺序:函数内的名字空间→外部嵌套的函数→全局→内置模块的名字空间
9、装饰器
- 闭包函数:内部函数包含对外部作用域而非全局作用域的引用
- 闭包的意义:返回的函数对象,不仅仅是一个函数对象,在该函数外还包裹了一层作用域
- 应用领域:延迟计算
- 本质(闭包函数),
- 调用方式 (语法)
- @函数名 =====>语法糖
- 为何要用装饰器
- 开放封闭原则:对修改封闭,对扩展开放
- 在不修改源代码的前提下增加新功能
10、迭代器、生成器以及协程函数
- 概念:重复的过程称之为迭代,没重复一次即一次迭代,本次的迭代结束值是下次的初始值
- 有__iter__方法
- 优点:惰性计算,节省内存;缺点:无法获取长度,只能往后走
11、三元运算,列表解析,生成器表达式
- 三元运算:result='gt' if 1>3 else 'lt' print(result) # lt

- 列表解析:[(i*i) for i in range(10)]

- 生成器表达式(用的时候才给);语法与列表推倒式一样,只是[] 变为()
- 节省内存,一次只产生一个值
- 应用:读取大的文件慢慢读取,而不是一下子吧内存撑爆
12、函数的递归调用
- 递归和回溯
- 递归的效率低
在一个函数内部再次调用这个函数,递归函数一定要有结束条件
13、内置函数
- python内部就有的函数
14、面向过程编程与函数式编程
- 面向过程:机械师思维,流水线式编程
- 函数式编程:垒代码

转载于:https://www.cnblogs.com/jassin-du/p/9003837.html

你可能感兴趣的文章
代码规范的重要性,我已经放弃治疗
查看>>
笨办法学C 练习30:自动化测试
查看>>
mui初级入门教程(五)— 聊聊即时通讯(IM),基于环信 web im SDK
查看>>
[vs2008]Visual Studio 2008 SP1添加或删除功能提示查找SQLSysClrTypes.msi文件
查看>>
JS 设计模式二(封装)
查看>>
JavaScript “跑马灯”抽奖活动代码解析与优化(一)
查看>>
为什么我们选择 segmentfault 写作?
查看>>
多模型融合推荐算法在达观数据的运用
查看>>
JDK 11 马上就要来了!JDK 12 还会远吗?
查看>>
Kali Linux 2019.1 发布,Metasploit 更新到 5.0 版本
查看>>
【mysql的设计与优化专题(1)】ER图,数据建模与数据字典
查看>>
Jibo’s Name: How did we pick it?
查看>>
device's media capture mechanism,利用input:file调用设备的照相机/相册、摄像机、录音机...
查看>>
BroadLink:三款新品力求无障碍人机交互,三大平台分三期对外开放 ...
查看>>
掌门1对1获3.5亿美元E-1轮融资,华人文化产业基金、中金甲子基金等投资 ...
查看>>
Unity中的通用对象池
查看>>
ORA-00600: internal error code, arguments: [16703], [1403], [28], [...
查看>>
忆芯科技发布新一代国产主控芯片STAR1000P!4月完成量产版本 ...
查看>>
如何用条码标签打印软件实现商品价签制定会员价 ...
查看>>
如何轻松实现个性化推荐系统
查看>>