Python运行出现'return' outside function错误,求折扣代码修正帮助
解决'return' outside function及代码逻辑问题
嘿,我来帮你梳理下代码里的问题,一步步解决你的报错和需求~
你代码里的几个核心问题:
- 列表创建语法错误:你写的
nondis=float[1.10,2.40,5.20,6.30,6.70]完全不对,不需要用float包裹列表,直接用方括号[]创建即可,里面的数值本身就是浮点数类型了。 - return的位置和逻辑错误:你把
return放在了for循环内部,这会导致函数在第一次循环时就直接终止并返回,而且nondis/10是试图让整个列表除以10,普通Python列表不支持这种操作,你需要对每个元素单独计算折扣。另外,这里要确认下:你说的“10%折扣”是指支付原价的90%(即减10%),还是只支付原价的10%?我默认按前者来修正,你可以根据需求调整。 - 无效代码:
print(nondis)写在return之后,函数执行return就会直接结束,这行代码永远不会运行。
修正后的代码
def discount_ten(): # 创建原始浮点数列表 nondis = [1.10, 2.40, 5.20, 6.30, 6.70] # 生成10%折扣后的新列表(即原价的90%) discounted_list = [item * 0.9 for item in nondis] # 返回折扣后的新列表 return discounted_list # 调用函数并打印结果 final_result = discount_ten() print(final_result)
代码说明:
- 用列表推导式快速生成折扣后的列表,比普通
for循环更简洁高效; return放在函数末尾,确保所有元素都处理完后再返回整个新列表;- 如果你的需求是“只支付原价的10%”(也就是打1折),只需要把
item * 0.9改成item / 10就可以了。
运行这段代码后,你就能得到每个元素都享受10%折扣的新列表啦~
内容的提问来源于stack exchange,提问作者TFX
相关产品推荐
相关产品推荐

