- 内容提要
- 作者简介
- 技术评审者简介
- 致谢
- 译者序 会编程的人不一样
- 前言
- 本书的读者对象
- 编码规范
- 什么是编程
- 本书简介
- 下载和安装 Python
- 启动 IDLE
- 如何寻求帮助
- 聪明地提出编程问题
- 小结
- 第一部分 Python 编程基础
- 第1章 Python 基础
- 第2章 控制流
- 第3章 函数
- 第4章 列表
- 第5章 字典和结构化数据
- 第6章 字符串操作
- 第二部分 自动化任务
- 第7章 模式匹配与正则表达式
- 第8章 读写文件
- 第9章 组织文件
- 第10章 调试
- 第11章 从 Web 抓取信息
- 第12章 处理 Excel 电子表格
- 第13章 处理 PDF 和 Word 文档
- 第14章 处理 CSV 文件和 JSON 数据
- 第15章 保持时间、计划任务和启动程序
- 第16章 发送电子邮件和短信
- 第17章 操作图像
- 第18章 用 GUI 自动化控制键盘和鼠标
- 附录A 安装第三方模块
- 附录B 运行程序
- 附录C 习题答案
3.2 返回值和 return 语句
如果调用len()函数,并向它传入像'Hello'这样的参数,函数调用就求值为整数5。这是传入的字符串的长度。一般来说,函数调用求值的结果,称为函数的“返回值”。
用def语句创建函数时,可以用return语句指定应该返回什么值。return语句包含以下部分:
· return关键字;
· 函数应该返回的值或表达式。
如果在return语句中使用了表达式,返回值就是该表达式求值的结果。例如,下面的程序定义了一个函数,它根据传入的数字参数,返回一个不同的字符串。在文件编辑器中输入以下代码,并保存为magic8Ball.py:
❶ import random ❷ def getAnswer(answerNumber): ❸ if answerNumber == 1: return 'It is certain' elif answerNumber == 2: return 'It is decidedly so' elif answerNumber == 3: return 'Yes' elif answerNumber == 4: return 'Reply hazy try again' elif answerNumber == 5: return 'Ask again later' elif answerNumber == 6: return 'Concentrate and ask again' elif answerNumber == 7: return 'My reply is no' elif answerNumber == 8: return 'Outlook not so good' elif answerNumber == 9: return 'Very doubtful' ❹ r = random.randint(1, 9) ❺ fortune = getAnswer(r) ❻ print(fortune)
在这个程序开始时,Python首先导入random模块❶。然后getAnswer()函数被定义❷。因为函数是被定义(而不是被调用),所以执行会跳过其中的代码。接下来,random.randint()函数被调用,带两个参数,1和9❹。它求值为1和9之间的一个随机整数(包括1和9),这个值被存在一个名为r的变量中。
getAnswer()函数被调用,以r作为参数❺。程序执行转移到getAnswer()函数的顶部❸,r的值被保存到名为answerNumber的变元中。然后,根据answerNumber中的值,函数返回许多可能字符串中的一个。程序执行返回到程序底部的代码行,即原来调用getAnswer()的地方❺。返回的字符串被赋给一个名为fortune变量,然后它又被传递给print()调用❻,并被打印在屏幕上。
请注意,因为可以将返回值作为参数传递给另一个函数调用,所以你可以将下面3行代码
r = random.randint(1, 9) fortune = getAnswer(r) print(fortune)
缩写成一行等价的代码:
print(getAnswer(random.randint(1, 9)))
记住,表达式是值和操作符的组合。函数调用可以用在表达式中,因为它求值为它的返回值。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论