马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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))
代码中的 `p` 是局部变量,它只在 `pv` 函数内部存在,并被用于存储计算的结果。在函数外部直接调用 `p` 是不可行的,因为它在外部不存在。
在最后一行中,你尝试用 `p`,会导致错误是因为 `p` 没在这个作用域中定义。如果想在 `print` 中直接使用 `p`,需要在调用 `pv` 函数时先将它的返回值赋给一个变量,如下:
存入金额 = pv(fv, i, age_n, age_r)
print("现在需要存入的金额:", 存入金额)
这样你就可以使用 `存入金额` 变量代替函数调用。最初设置 `p` 作为 `pv` 函数内部的局部变量是为了清晰地表示该值的用途。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
|