鱼C论坛

 找回密码
 立即注册
查看: 87|回复: 1

[已解决]大神请指教!

[复制链接]
发表于 2024-10-10 09:06:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

请教大神,以下代码中,最后一行的print("现在需要存入的金额:",pv(fv,i,age_n,age_r))为什么不能换成print("现在需要存入的金额:",p)?
这样最初设置P这个变量就没有用了。

def pv(fv,i,age_n,age_r):
    p = round(fv*(1+i)**(age_n-age_r),2)
    return p

while True:
    try:
        fv = float(input("请输入退休时的养老金额:"))
        i = float(input("请输入利率:"))
        age_n = float(input("请输入您现在的年龄:"))
        age_r = float(input("请输入您退休时的年龄:"))
        break
    except:
        print("您的输入有误,请重新输入数值!")
        continue

print("现在需要存入的金额:",pv(fv,i,age_n,age_r))
最佳答案
2024-10-10 09:11:40
代码中的 `p` 是局部变量,它只在 `pv` 函数内部存在,并被用于存储计算的结果。在函数外部直接调用 `p` 是不可行的,因为它在外部不存在。

在最后一行中,你尝试用 `p`,会导致错误是因为 `p` 没在这个作用域中定义。如果想在 `print` 中直接使用 `p`,需要在调用 `pv` 函数时先将它的返回值赋给一个变量,如下:
存入金额 = pv(fv, i, age_n, age_r)
print("现在需要存入的金额:", 存入金额)

这样你就可以使用 `存入金额` 变量代替函数调用。最初设置 `p` 作为 `pv` 函数内部的局部变量是为了清晰地表示该值的用途。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-10-10 09:11:40 | 显示全部楼层    本楼为最佳答案   
代码中的 `p` 是局部变量,它只在 `pv` 函数内部存在,并被用于存储计算的结果。在函数外部直接调用 `p` 是不可行的,因为它在外部不存在。

在最后一行中,你尝试用 `p`,会导致错误是因为 `p` 没在这个作用域中定义。如果想在 `print` 中直接使用 `p`,需要在调用 `pv` 函数时先将它的返回值赋给一个变量,如下:
存入金额 = pv(fv, i, age_n, age_r)
print("现在需要存入的金额:", 存入金额)

这样你就可以使用 `存入金额` 变量代替函数调用。最初设置 `p` 作为 `pv` 函数内部的局部变量是为了清晰地表示该值的用途。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 17:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表