1. 函数的理解和定义

① 是什么 函数是一段具有特定功能、可重用的语句组,是一种功能的抽象。
② 作用 降低编程难度和代码复用
③ 怎么用
def <函数名>(<参数(0个或多个)>):
<函数体>
return <返回值>

说明:
-函数定义时,所指定的参数是一种占位符
-函数定义后,不经调用,不会被执行
-函数定义时,参数是输入、函数体是处理、结果是输出(IPO)

2. 函数的使用及调用过程

调用:运行函数代码的方式
调用时要给出实际参数,替换定义中的参数
调用后得到实际参数运行的返回值

3. 函数的参数传递

① 无参数
函数可以无参数,但定义时括号不可省略
② 可选参数
函数定义时可以为某些参数指定默认值,构成可选参数(即调用函数时,可以不提供的参数)
注意:Python强制约定所有可选参数必须放在必选参数之后
例:

def fact(n,m=1):s = 1for i in range(1,n+1):s *= ireturn s//ma = fact(4)
print(a)b = fact(4,2)
print(b)

③ 可变参数
格式

def <函数名>(<参数>,*b):
<函数体>
return <返回值>

例
def fact(n,*b):s = 1for i in range(1,n+1):s *= ifor item in b:s *= itemreturn sa = fact(10,3)
print(a)
b = fact(10,3,5,8)
print(b)

④ 参数传递的两种方式
默认:按照位置传递
另:按照名称传递

def fact(n,m=1):s = 1for i in range(1,n+1):s *= ireturn s//ma = fact(10,5)#位置传递
print(a)
b = fact(m=5,n=10)#名称传递
print(b)

4. 函数的返回值

函数可以返回0个或多个结果
-return后面可以不加任何返回信息,也可以不使用return

def fact(n,m=1):s = 1for i in range(1,n+1):s *= ireturn s//m,n,ma,b,c = fact(10,5)
print(a,b,c)
d = fact(10,5)
print(d)
输出
725760 10 5
(725760, 10, 5) (该类型为元组类型)

5. 局部变量和全局变量

全局变量:函数之外的变量
局部变量:函数内部的变量

记住如下两条规则:

① 局部变量和全局变量是不同变量
-局部变量是函数内部的占位符,可能与全局变量重名,但一定不同
-函数运算结束后,局部变量被释放
-可以使用global保留字在函数内部使用全局变量

n,s = 10,100def fact(n):global s#之后函数内出现的s全都是全局变量for i in range(1,n+1):s *= ireturn sprint(fact(n),s)
输出
362880000 362880000

② 局部变量如果是组合数据类型且未在函数内部创建,等同于全局变量
例1 组合数据类型+未创建

ls = ["F","f"]
#通过使用[]真实创建了一个全局变量列表ls
def func(a):ls.append(a)#此处ls是列表类型,未真实创建则等同于全局变量return
func("C")
#全局变量ls被修改
print(ls)
输出
['F', 'f', 'C']

例2 组合数据类型+已创建

ls = ["F","f"]
#通过使用[]真实创建了一个全局变量列表ls
def func(a):ls = []#此处ls是列表类型,真实创建,ls是局部变量ls.append(a)return ls
ls1 = func("C")
#局部变量ls被修改
print(ls,ls1)
输出
['F', 'f'] ['C']

6. lambda函数

是一种匿名函数,即没有名字
-使用lambda保留字定义,返回函数名作为结果
-用于定义简单的、可以在一行内表示的函数

<函数名> = lambda <参数>:<表达式>
等价于
def <函数名>(<参数>):
<函数体>
return <返回值>
不同的是,只能使用表达式而不能使用
例1

f = lambda x,y:x+y
print(f(5,10))
输出 15

例2

f = lambda : "lambda函数"
print(f())
输出 lambda函数

建议:
lambda函数要谨慎使用,主要用作一些特定函数或方法的参数,建议使用def定义普通函数
lambda函数有一些固定使用方式,建议逐渐掌握

出处:北理工Python慕课

Python 函数知识汇总相关推荐

  1. python基础知识资料-Python基础知识汇总

    原标题:Python基础知识汇总 1.Anaconda的安装 百度Anaconda的官网,下载左边的Python3.X版本 然后是设置路径,最后给出Jupyter notebook.具体参考: 猴子: ...

  2. Python基础知识汇总和应用示例

    Python基础知识汇总和应用示例 文章内容 链接 python库下载网站 python库下载网站 python读取csv文件 python读取csv文件 Python3基础知识:三元表达式.元祖.s ...

  3. Python列表知识汇总

    Python列表知识汇总 创建列表 #列表的创建#空列表---------------Start--------- List_NULL = [] print(type(List_NULL)) #输出: ...

  4. Python函数知识总结

    小白如何成为python数据分析师 第 十三天 ---->函数知识点总结 ​ 几天没有更新啦!因为没人催更,主要是时间来不及,今天就将这几天所学关于函数知识做个梳理,总结.如有不足,还请指出,谢 ...

  5. python 基础知识汇总

    hellow 一. 填空题 1. Python安装扩展库常用的是_工具.(pip) 2. Python标准库math中用来计算平方根的函数是____.(sqrt) 3. Python程序文件扩展名主要 ...

  6. 最全面的Python重点知识汇总,建议收藏!

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源丨网络,由法纳斯特整理 这是一份来自于 SegmentFault ...

  7. Python数据分析知识汇总

    数据分析 什么是数据分析? 数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,提取有用信息和形成结论而对数据加以详细研究和概括总结的过程. 使用python做数据分析的常用库 numpy 基 ...

  8. 最全面的Python重点知识汇总,建议码住

    这是一份来自于 SegmentFault 上的开发者 @二十一 总结的 Python 重点.由于总结了太多的东西,所以篇幅有点长,这也是博主"缝缝补补"总结了好久的东西. Py2 ...

  9. 你见过的最全面的Python重点知识汇总

    原文链接: https://segmentfault.com/a/1190000018737045 这是一份来自于 SegmentFault 上的开发者 @二十一 总结的 Python 重点.由于总结 ...

最新文章

  1. Maven中如何禁止插件(plugin)在子模块(module)上执行
  2. 记Thoughtworks一次糟糕的面试
  3. php fpm 日志记录,如何解决nginx下php-fpm不记录php报错日志的问题
  4. 博客那些用到极致的推广方式
  5. 【STM32】定时器相关函数和类型
  6. pico park无法连接至远程服务器,pico park怎么联机玩?pico park怎么邀请朋友一起玩?[多图]...
  7. 如何使用go打出hell word
  8. CMU Bomblab 答案
  9. 取色器——TakeColor绿色安全简单
  10. STM32利用Flymcu进行烧录
  11. JBoss下载and安装
  12. 优化网站提高打开速度
  13. OpenCVcv2.imread传入灰度图像,shape还是3通道
  14. WatchGuard 防火墙封 Msn qq icq
  15. 百万用户同时在线游戏服务器架构实现.doc 基于epoll 通信模型
  16. 怎么申请企业邮箱账号?企业邮箱怎么注册申请?
  17. SpringMVC在web.xml中配置DispatcherServlet拦截了静态资源访问
  18. 【流程挖掘的四个质量维度】简单度、拟合度、精确度和泛化度介绍
  19. 在MPLAB X IDE下用SEGGER J-LINK调试PIC32
  20. 月工资5k,除去生活每个月怎样存钱?

热门文章

  1. 悬浮球 / 悬浮按钮 / 辅助按钮
  2. SQL SERVER中什么情况会导致索引查找变成索引扫描
  3. MYSQL体系结构-来自期刊
  4. 亿级PV请求的三种负载均衡技术
  5. 【Kubernetes】两篇文章 搞懂 K8s 的 fannel 网络原理
  6. MD5与Base64的思考
  7. wpa_supplicant学习
  8. CENTOS6.4 IBUS输入法不显示候选词解决办法
  9. 七喜携手AMD,摆脱英特尔“潜规则”
  10. JAVA游戏编程之二----j2me MIDlet 手机游戏入门开发--贪吃蛇