没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
3页
上一天看到第四章的一半,介绍了一些常用的流程控制工具,也就是常用语句,主要是if、for、range()、break、continue、else和pass。今天把第四章剩下的看完,讲的是如何在python中定义和使用函数。函数其实就是一种对代码的封装,对于一段完成某种功能的代码,如果需要在程序中多次用到这个功能,不使用函数的话,就要写多次相同的代码,很麻烦;如果使用函数的话,定义函数只需要一次,往后每次需要使用这个函数的话调用就行了,即实现了代码重用,简便很多。 4.6. 定义函数 python中,我们使用关键字 def 引入一个函数定义。它必须后跟函数名称和带括号的形式参数列表。构成函数体的
资源详情
资源评论
资源推荐
每天一小时每天一小时python官方文档学习(三)官方文档学习(三)
上一天看到第四章的一半,介绍了一些常用的流程控制工具,也就是常用语句,主要
是if、for、range()、break、continue、else和pass。今天把第四章剩下的看完,讲的是如何在python中定义和使用函数。函数其实
就是一种对代码的封装封装,对于一段完成某种功能的代码,如果需要在程序中多次用到这个功能,不使用函数的话,就要写多次
相同的代码,很麻烦;如果使用函数的话,定义函数只需要一次,往后每次需要使用这个函数的话调用就行了,即实现了代码代码
重用重用,简便很多。
4.6. 定义函数定义函数
python中,我们使用关键字 def 引入一个函数定义函数定义。它必须后跟函数名称函数名称和带括号的形式参数列表带括号的形式参数列表。构成函数体的语句从下一
行开始,并且必须缩进必须缩进。
函数体的第一个语句通常是注释注释或者帮助文档帮助文档,用三引号‘’‘ ’‘’括起来,里面应该写上函数的功能和各参数的意义等等,是面向
用户的。在notebook里面使用help()就可以查看到这些信息。写帮助文档是一个应该养成的好习惯。
函数调用函数调用(执行执行)则是直接运行函数名,如果有参数则写在括号内,一个用于输出斐波拉契数列的函数例子如下:
>>> def fib(n): # 函数定义
... """函数功能:打印n以内的斐波拉契数列"""
... a, b = 0, 1
... while a >> # 函数调用
... fib(2000)
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597
定义了的函数是一个特定的类型,它也支持重命名重命名,如下f和fib就是同一个函数了:
>>> fib
>>> f = fib
>>> f(100)
0 1 1 2 3 5 8 13 21 34 55 89
学过其他语言的人可能会问,python的函数有返回值返回值吗?答案是肯定的,我们可以用return语句返回指定的值,如果像上面的
例子一样没有return呢?实际上也有返回值,只不过是一个None而已,使用print()就可以看到它了。
总结一句:return 语句会从函数内部返回一个值。 不带表达式参数的 return 会返回 None。 函数执行完毕退出也会返回 None。
>>> fib(0)
>>> print(fib(0))
None
最后我们改写上面的斐波拉契函数,不是直接打印print(),而是先调用函数返回return一个列表,再打印这个列表:
>>> def fib2(n): # 函数定义
... """函数功能:返回一个列表,里面包含了n以内的斐波拉契数列"""
... result = [] ... a, b = 0, 1
... while a >> f100 = fib2(100) # 函数调用
>>> f100 # 打印结果
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
4.7. 函数定义的更多形式函数定义的更多形式
4.7.1. 参数默认值参数默认值
最有用的形式是对一个或多个参数指定一个默认值默认值。这样创建的函数,可以用比定义时允许的更少的参数更少的参数调用,比如:
def ask_ok(prompt, retries=4, reminder='Please try again!'):
while True:
ok = input(prompt)
if ok in ('y', 'ye', 'yes'): # in关键字可以测试一个序列是否包含某个值
return True
if ok in ('n', 'no', 'nop', 'nope'):
return False
retries = retries - 1
if retries < 0:
raise ValueError('invalid user response')
print(reminder)
这个函数可以通过几种方式调用:
只给出必需的参数(参数prompt):ask_ok('Do you really want to quit?')
给出一个可选的参数(参数prompt和retries):ask_ok('OK to overwrite the file?', 2)
或者给出所有的参数(参数prompt、retries和reminder):ask_ok('OK to overwrite the file?', 2, 'Come on, only yes or no!')
有两点需要注意!!有两点需要注意!!
weixin_38601103
- 粉丝: 7
- 资源: 945
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于flask和echarts融合交易策略的bitfinex可视化微服务.zip
- 包含了wvp-assist.tar wvp-talk.tar zlmediakit.tar .
- 3r4efgh53wgrf43tw
- 2024新版Java基础从入门到精通全套视频+资料下载
- Spring AI大模型视频教程+ChatGPT视频教程+OpenAI大模型视频教程(资料+视频教程)
- ABB工业机器人教程PDF版本
- 123321123323211
- yolov8实战第八天-pyqt5-yolov8实现车牌识别系统(论文(约7000字)+数据集+完整部署代码+代码使用说明)
- 三相桥式全桥整流电路MATALB Simulink仿真文件
- ABB机器人操作培训文档
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0