python基础学习 -- 函数高级用法
2023-03-14 22:44:13 时间
一、局部变量
只能在函数内部调用,b是局部变量,只能在aiyou函数体使用,所以第二个print会报错
a=1; def aiyou(): b=2; print(a,b) aiyou() print(a,b)#报错
二、局部函数
只能再函数内部调用,ay是内部函数,只能在aiyou函数体内部使用,所以第二个ay()调用报错
a=1; def aiyou(): def ay(): print("ay") ay() aiyou() ay()#报错
三、全局变量
全局变量是相对的,a是全局变量,任何地方都可以调用,b是aiyou()函数里面的全局函数,除了函数及就不能调用,
a=1; def aiyou(): b=2; def ay(): print(b) print(a) ay() aiyou() print(a) print(b)#报错
四、global关键字
当全局变量和局部变量名字相同时,互不影响,打印结果是3和123
如果给局部变量加上关键字global,说明里面的局部变量和全局变量一样,打印结果相同,都是3
i=123; def aiyou(a,b): i=a+b print(i) aiyou(1,2) print(i) 运行结果: 3 123
i=123; def aiyou(a,b): global i i=a+b print(i) aiyou(1,2) print(i) 运行结果: 3 3
五、range()函数
1、获取几个数字,就在range()的参数里写几
for i in range(10): print(i) 运行结果: 0 1 2 3 4 5 6 7 8 9
2、从a开始取数值,到b-1结束
for i in range(5,10): print(i) 运行结果: 5 6 7 8 9
3、从a开始取数值,到b-1结束,每次步长为c
for i in range(5,10,2): print(i) 运行结果: 5 7 9
六、匿名函数
1、普通函数
如果a>b返回他们的差值,否则返回他们的和
def aiyou(a,b): if a>b: return a-b else: return a+b c=aiyou(3,2) print(c)
2、匿名函数,实现效果和上面的一样
c=lambda a,b:a-b if a>b else (a+b) print(c(4,3))
3、实际应用
匿名函数一般当做参数传递给函数使用
def aiyou(ay): print(ay(5,4)) aiyou(lambda a,b:a-b if a>b else a+b)
七、递归函数
1、普通函数实现1+2+3+...+n的求和
def aiyou(a): b=0 for i in range(1,a+1): b=b+i return b print(aiyou(100)) 运行结果: 5050
2、递归函数实现1+2+3+...+n的求和
def aiyou(a): if a==1: return 1 return a+aiyou(a-1) print(aiyou(100))
相关文章
- 图像处理工具Python扩展库,你了解吗?
- 十个常用的损失函数解释以及Python代码实现
- 30 个数据科学工作中必备的 Python 包
- 如何在 Windows 上安装 Python
- 几行 Python 代码就可以提取数百个时间序列特征
- 使用Python快速搭建接口自动化测试脚本实战总结
- 哪种编程语言最适合开发网页抓取工具?
- 不要在 Python 中使用循环,这些方法其实更棒!
- 震惊!用Python探索《红楼梦》的人物关系!
- 如何最简单、通俗地理解Python模块?
- 酷炫,Python实现交通数据可视化!
- 为什么急于寻找Python的替代者?
- 30 个数据工程必备的Python 包
- 去字节面试被面这题能答上来吗?谈谈你对时间轮的理解?
- 火山引擎在行为分析场景下的 ClickHouse JOIN 优化
- 用Python爬取了某宝1166家月饼数据进行可视化分析,终于找到最好吃的月饼~
- 在 Linux 上试试这个基于 Python 的文件管理器
- Python列表解析式到底该怎么用?
- 如何快速把你的 Python 代码变为 API
- 十个Python初学者常犯的错误