Python学习笔记函数之返回值和return语句
随笔记录方便自己和同路人查阅。
#------------------------------------------------我是可耻的分割线-------------------------------------------
如果调用len()函数,并向它传入向'Hello'这样的参数,函数调用就求值为整数5。这是传入的字符串的长度。一般来说,函数调用
求值的结果,称为函数的“返回值”。
用def语句创建函数时,可以用return语句指定应该返回什么值。return语句包含以下部分:
(1)return关键字
(2)函数应该的值或表达式
如果在return语句中使用了表达式,返回值就是该表达式求值的结果。
#------------------------------------------------我是可耻的分割线-------------------------------------------
例如,下面的程序定义了一个函数,它根据传入的数字参数,返回一个不同的字符串。在文件编辑器中输入一下代码,
并保存为magic8Ball.py:

1 # 2 # -*- coding:utf-8 -*- 3 # Autor: Li Rong Yang 4 import random 5 6 def getAnswer(answerNumber): 7 if answerNumber == 1: 8 return 'It is certain' 9 elif answerNumber == 2: 10 return 'It is decidedly so' 11 elif answerNumber == 3: 12 return 'Yes' 13 elif answerNumber == 4: 14 return 'Reply hazy try again' 15 elif answerNumber == 5: 16 return 'Ask again later' 17 elif answerNumber == 6: 18 return 'Concentrate and ask again' 19 elif answerNumber == 7: 20 return 'My reply is no' 21 elif answerNumber == 8: 22 return 'Outlook not so good' 23 elif answerNumber == 9: 24 return 'Very doubtful' 25 26 r = random.randint(1,9) 27 fortune = getAnswer(r) 28 print(fortune) 29
运行结果:
在这个程序开始时,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)))
记住,表达式是值和操作符的组合。函数调用可以用在表达式中,因为它求值为它的返回值。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)