返回值

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501

到目前为止,我们创建的函数都只是为我们做一些事,做完了就结束。但实际上,有时还需要对事情的结果进行获取。这类似于主管向下级职员下达命令,职员去做,最后需要将结果报告给主管。为函数设置返回值的作用就是将函数的处理结果返回给调用它的程序。

在Python中,可以在函数体内使用return语句为函数指定返回值,该返回值可以是任意类型,并且无论return语句出现在函数的什么位置,只要得到执行,就会直接结束函数的执行。

return语句的语法格式如下:

return value

参数说明:

value:可选参数,用于指定要返回的值,可以返回一个值,也可返回多个值。

为函数指定返回值后,在调用函数时,可以把它赋给一个变量(如result),用于保存函数的返回结果。如果返回一个值,那么result中保存的就是返回的一个值,该值可以为任意类型。如果返回多个值,那么result中保存的是一个元组。

说明:当函数中没有return语句时,或者省略了return语句的参数时,将返回None,即返回空值。

场景模拟:某商场年中促销,优惠如下:

l 满500可享受9折优惠

l 满1000可享受8折优惠

l 满2000可享受7折优惠

l 满3000可享受6折优惠

根据以上商场促销活动,计算优惠后的实付金额。

实例04 模拟结账功能―计算实付金额

在IDLE中创建一个名称为checkout.py的文件,然后在该文件中定义一个名称为fun_checkout的函数,该函数包括一个列表类型的参数,用于保存输入的金额,在该函数中计算合计金额和相应的折扣,并将计算结果返回,最后在函数体外通过循环输入多个金额保存到列表中,并且将该列表作为fun_checkout()函数的参数调用,代码如下:

def fun_checkout(money):

'''功能:计算商品合计金额并进行折扣处理

money:保存商品金额的列表

返回商品的合计金额和折扣后的金额

'''

money_old = sum(money) # 计算合计金额

money_new = money_old

if 500 <= money_old < 1000: # 满500可享受9折优惠

money_new = '{:.2f}'.format(money_old * 0.9)

elif 1000 <= money_old <= 2000: # 满1000可享受8折优惠

money_new = '{:.2f}'.format(money_old * 0.8)

elif 2000 <= money_old <= 3000: # 满2000可享受7折优惠

money_new = '{:.2f}'.format(money_old * 0.7)

elif money_old >= 3000: # 满3000可享受6折优惠

money_new = '{:.2f}'.format(money_old * 0.6)

return money_old, money_new # 返回总金额和折扣后的金额

*****************************调用函数***********************************

print("\n开始结算......\n")

list_money = \[\] # 定义保存商品金额的列表

while True:

请不要输入非法的金额,否则将抛出异常

inmoney = float(input("输入商品金额(输入0表示输入完毕):"))

if int(inmoney) == 0:

break # 退出循环

else:

list_money.append(inmoney) # 将金额添加到金额列表中

money = fun_checkout(list_money) # 调用函数

print("合计金额:", money0, "应付金额:", money1) # 显示应付金额

运行结果如图13所示。

图13 模拟顾客结账功能

相关推荐
心中有你02143 分钟前
Java实现Dijkstra最短路径算法(邻接表 + 优先队列)
java·数据库·算法
2601_9679801112 分钟前
python之用scapy分层解析pcap报文(Ethernet帧、IP数据包、TCP数据包、UDP数据包、Raw数据包)
python·scapy·pcap·协议分析·网络数据包
龙亘川18 分钟前
综合素质评价业务建模:从过程性评价到成长档案全链路闭环
数据库·智慧城市·数据可视化
心疼你的一切19 分钟前
Python自动发邮件实战定时发报表
大数据·开发语言·python
数据库小组23 分钟前
NineData 实战教程:MySQL 5.5 数据迁移同步到 MySQL 8.0(跨版本升级)
数据库·mysql·mysql优化·数据库开发·数据库迁移·版本升级·数据复制
步行cgn36 分钟前
Spring MVC + Thymeleaf 模板解析失败:从 500 错误到页面正常显示
java·spring·mvc
hkNaruto1 小时前
【AI】基于大模型的AI游戏地图生成、控制方案:AI Native Game Harness 迁移操作手册
前端·人工智能·游戏
zhangjw341 小时前
1-5 PostgreSQL 数据类型全集:基础类型、字符串、数值、时间类型
数据库·postgresql
IT_陈寒1 小时前
Java序列化踩坑记:对象循环引用让我加班两小时
前端·人工智能·后端
lgcgkCQ1 小时前
【AI 转型实战 1】SpringAI 入门:搭建基础大模型对话能力
java·ai·agent·rag·spring ai·mcp·langchain4j