返回值

自学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("合计金额:", money[0], "应付金额:", money[1]) # 显示应付金额

运行结果如图13所示。

图13 模拟顾客结账功能

相关推荐
天天扭码6 分钟前
五天SpringCloud计划——DAY2之单体架构和微服务架构的选择和转换原则
java·spring cloud·微服务·架构
程序猿进阶6 分钟前
堆外内存泄露排查经历
java·jvm·后端·面试·性能优化·oom·内存泄露
FIN技术铺11 分钟前
Spring Boot框架Starter组件整理
java·spring boot·后端
彭世瑜15 分钟前
ts: TypeScript跳过检查/忽略类型检查
前端·javascript·typescript
FØund40416 分钟前
antd form.setFieldsValue问题总结
前端·react.js·typescript·html
Backstroke fish17 分钟前
Token刷新机制
前端·javascript·vue.js·typescript·vue
小五Five18 分钟前
TypeScript项目中Axios的封装
开发语言·前端·javascript
小曲程序18 分钟前
vue3 封装request请求
java·前端·typescript·vue
临枫54118 分钟前
Nuxt3封装网络请求 useFetch & $fetch
前端·javascript·vue.js·typescript
前端每日三省20 分钟前
面试题-TS(八):什么是装饰器(decorators)?如何在 TypeScript 中使用它们?
开发语言·前端·javascript